summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_uuid.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_uuid.py')
-rwxr-xr-xLib/test/test_uuid.py58
1 files changed, 58 insertions, 0 deletions
diff --git a/Lib/test/test_uuid.py b/Lib/test/test_uuid.py
index 411eec0..61ae256 100755
--- a/Lib/test/test_uuid.py
+++ b/Lib/test/test_uuid.py
@@ -675,6 +675,64 @@ class BaseTestUUID:
weak = weakref.ref(strong)
self.assertIs(strong, weak())
+ @mock.patch.object(sys, "argv", ["", "-u", "uuid3", "-ns", "NAMESPACE_DNS"])
+ def test_cli_namespace_required_for_uuid3(self):
+ 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)
+
+ @mock.patch.object(sys, "argv", ["", "-u", "uuid3", "-n", "python.org"])
+ def test_cli_name_required_for_uuid3(self):
+ 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)
+
+ @mock.patch.object(sys, "argv", [""])
+ def test_cli_uuid4_outputted_with_no_args(self):
+ stdout = io.StringIO()
+ with contextlib.redirect_stdout(stdout):
+ self.uuid.main()
+
+ output = stdout.getvalue().strip()
+ uuid_output = self.uuid.UUID(output)
+
+ # Output uuid should be in the format of uuid4
+ self.assertEqual(output, str(uuid_output))
+ self.assertEqual(uuid_output.version, 4)
+
+ @mock.patch.object(sys, "argv",
+ ["", "-u", "uuid3", "-ns", "NAMESPACE_DNS", "-n", "python.org"])
+ def test_cli_uuid3_ouputted_with_valid_namespace_and_name(self):
+ stdout = io.StringIO()
+ with contextlib.redirect_stdout(stdout):
+ self.uuid.main()
+
+ output = stdout.getvalue().strip()
+ uuid_output = self.uuid.UUID(output)
+
+ # Output should be in the form of uuid5
+ self.assertEqual(output, str(uuid_output))
+ self.assertEqual(uuid_output.version, 3)
+
+ @mock.patch.object(sys, "argv",
+ ["", "-u", "uuid5", "-ns", "NAMESPACE_DNS", "-n", "python.org"])
+ def test_cli_uuid5_ouputted_with_valid_namespace_and_name(self):
+ stdout = io.StringIO()
+ with contextlib.redirect_stdout(stdout):
+ self.uuid.main()
+
+ output = stdout.getvalue().strip()
+ uuid_output = self.uuid.UUID(output)
+
+ # Output should be in the form of uuid5
+ self.assertEqual(output, str(uuid_output))
+ self.assertEqual(uuid_output.version, 5)
+
+
class TestUUIDWithoutExtModule(BaseTestUUID, unittest.TestCase):
uuid = py_uuid