gh-103186: assert in tests that UnsafeMailcapInput warnings are provided (#103217)

This commit is contained in:
Ijtaba Hussain 2023-04-06 23:13:33 +05:00 committed by GitHub
parent 52e9b389a8
commit 1724553e6e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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])