mirror of
https://github.com/python/cpython
synced 2024-10-14 17:56:08 +00:00
gh-103186: assert in tests that UnsafeMailcapInput warnings are provided (#103217)
This commit is contained in:
parent
52e9b389a8
commit
1724553e6e
|
@ -127,7 +127,6 @@ def test_subst(self):
|
|||
(["", "audio/*", "foo.txt"], ""),
|
||||
(["echo foo", "audio/*", "foo.txt"], "echo foo"),
|
||||
(["echo %s", "audio/*", "foo.txt"], "echo foo.txt"),
|
||||
(["echo %t", "audio/*", "foo.txt"], None),
|
||||
(["echo %t", "audio/wav", "foo.txt"], "echo audio/wav"),
|
||||
(["echo \\%t", "audio/*", "foo.txt"], "echo %t"),
|
||||
(["echo foo", "audio/*", "foo.txt", plist], "echo foo"),
|
||||
|
@ -210,9 +209,6 @@ def test_findmatch(self):
|
|||
([c, "audio/basic"],
|
||||
{"key": "description", "filename": fname},
|
||||
('"An audio fragment"', audio_basic_entry)),
|
||||
([c, "audio/*"],
|
||||
{"filename": fname},
|
||||
(None, None)),
|
||||
([c, "audio/wav"],
|
||||
{"filename": fname},
|
||||
("/usr/local/bin/showaudio audio/wav", audio_entry)),
|
||||
|
@ -245,6 +241,30 @@ def test_test(self):
|
|||
]
|
||||
self._run_cases(cases)
|
||||
|
||||
def test_unsafe_mailcap_input(self):
|
||||
with self.assertWarnsRegex(mailcap.UnsafeMailcapInput,
|
||||
'Refusing to substitute parameter.*'
|
||||
'into a shell command'):
|
||||
unsafe_param = mailcap.subst("echo %{total}",
|
||||
"audio/wav",
|
||||
"foo.txt",
|
||||
["total=*"])
|
||||
self.assertEqual(unsafe_param, None)
|
||||
|
||||
with self.assertWarnsRegex(mailcap.UnsafeMailcapInput,
|
||||
'Refusing to substitute MIME type'
|
||||
'.*into a shell'):
|
||||
unsafe_mimetype = mailcap.subst("echo %t", "audio/*", "foo.txt")
|
||||
self.assertEqual(unsafe_mimetype, None)
|
||||
|
||||
with self.assertWarnsRegex(mailcap.UnsafeMailcapInput,
|
||||
'Refusing to use mailcap with filename.*'
|
||||
'Use a safe temporary filename.'):
|
||||
unsafe_filename = mailcap.findmatch(MAILCAPDICT,
|
||||
"audio/wav",
|
||||
filename="foo*.txt")
|
||||
self.assertEqual(unsafe_filename, (None, None))
|
||||
|
||||
def _run_cases(self, cases):
|
||||
for c in cases:
|
||||
self.assertEqual(mailcap.findmatch(*c[0], **c[1]), c[2])
|
||||
|
|
Loading…
Reference in a new issue