summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_uuid.py
diff options
context:
space:
mode:
authorIjtaba Hussain <ijtabahussain@live.com>2023-07-10 20:29:03 (GMT)
committerGitHub <noreply@github.com>2023-07-10 20:29:03 (GMT)
commit9d582250d8fde240b8e7299b74ba888c574f74a3 (patch)
treec0cc6bbbf9fcc97e5279c2ff39fa7d3680db053f /Lib/test/test_uuid.py
parenta840806d338805fe74a9de01081d30da7605a29f (diff)
downloadcpython-9d582250d8fde240b8e7299b74ba888c574f74a3.zip
cpython-9d582250d8fde240b8e7299b74ba888c574f74a3.tar.gz
cpython-9d582250d8fde240b8e7299b74ba888c574f74a3.tar.bz2
gh-103186: Fix or catch 'extra' stderr output from unittests (#103196)
Reduce test noise by fixing or catching and testing stderr messages from individual tests. test_cmd_line_script.test_script_as_dev_fd calls spawn_python and hence subprocess.Popen with incompatible arguments. On POSIX, pass_fds forces close_fds to be True (subprocess.py line 848). Correct the call. test_uuid.test_cli_namespace_required_for_uuid3: when the namespace is omitted, uuid.main calls argparse.Argument_Parser.error, which prints to stderr before calling sys.exit, which raises SystemExit. Unittest assertRaises catches the exception but not the previous output. Catch the output and test it. test_warnings.test_catchwarnings_with_simplefilter_error similarly prints before raising. Catch the output and test it. --------- Co-authored-by: Oleg Iarygin <oleg@arhadthedev.net>
Diffstat (limited to 'Lib/test/test_uuid.py')
-rwxr-xr-xLib/test/test_uuid.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/Lib/test/test_uuid.py b/Lib/test/test_uuid.py
index a178e94..9cec1e8 100755
--- a/Lib/test/test_uuid.py
+++ b/Lib/test/test_uuid.py
@@ -706,20 +706,23 @@ class BaseTestUUID:
self.assertIs(strong, weak())
@mock.patch.object(sys, "argv", ["", "-u", "uuid3", "-n", "@dns"])
- def test_cli_namespace_required_for_uuid3(self):
+ @mock.patch('sys.stderr', new_callable=io.StringIO)
+ def test_cli_namespace_required_for_uuid3(self, mock_err):
with self.assertRaises(SystemExit) as cm:
self.uuid.main()
# Check that exception code is the same as argparse.ArgumentParser.error
self.assertEqual(cm.exception.code, 2)
+ self.assertIn("error: Incorrect number of arguments", mock_err.getvalue())
@mock.patch.object(sys, "argv", ["", "-u", "uuid3", "-N", "python.org"])
- def test_cli_name_required_for_uuid3(self):
+ @mock.patch('sys.stderr', new_callable=io.StringIO)
+ def test_cli_name_required_for_uuid3(self, mock_err):
with self.assertRaises(SystemExit) as cm:
self.uuid.main()
-
# Check that exception code is the same as argparse.ArgumentParser.error
self.assertEqual(cm.exception.code, 2)
+ self.assertIn("error: Incorrect number of arguments", mock_err.getvalue())
@mock.patch.object(sys, "argv", [""])
def test_cli_uuid4_outputted_with_no_args(self):