From 91bc6f9615eabb10090e2e4f0fe5913885a29c8c Mon Sep 17 00:00:00 2001 From: Nikita Sobolev Date: Wed, 5 Jan 2022 03:11:06 +0300 Subject: bpo-46262: [Enum] test error path in `Flag._missing_` (GH-30408) add tests that exercise the `_missing_` error path for `Flag` and `IntFlag` Co-authored-by: Alex Waygood Co-authored-by: Ethan Furman --- Lib/test/test_enum.py | 26 ++++++++++++++++++++++ .../Tests/2022-01-05-01-38-45.bpo-46262.MhiLWP.rst | 1 + 2 files changed, 27 insertions(+) create mode 100644 Misc/NEWS.d/next/Tests/2022-01-05-01-38-45.bpo-46262.MhiLWP.rst diff --git a/Lib/test/test_enum.py b/Lib/test/test_enum.py index eecb9fd..51a31e5 100644 --- a/Lib/test/test_enum.py +++ b/Lib/test/test_enum.py @@ -3414,6 +3414,19 @@ class TestFlag(unittest.TestCase): self.assertFalse(NeverEnum.__dict__.get('_test1', False)) self.assertFalse(NeverEnum.__dict__.get('_test2', False)) + def test_default_missing(self): + with self.assertRaisesRegex( + ValueError, + "'RED' is not a valid TestFlag.Color", + ) as ctx: + self.Color('RED') + self.assertIs(ctx.exception.__context__, None) + + P = Flag('P', 'X Y') + with self.assertRaisesRegex(ValueError, "'X' is not a valid P") as ctx: + P('X') + self.assertIs(ctx.exception.__context__, None) + class TestIntFlag(unittest.TestCase): """Tests of the IntFlags.""" @@ -3975,6 +3988,19 @@ class TestIntFlag(unittest.TestCase): 'at least one thread failed while creating composite members') self.assertEqual(256, len(seen), 'too many composite members created') + def test_default_missing(self): + with self.assertRaisesRegex( + ValueError, + "'RED' is not a valid TestIntFlag.Color", + ) as ctx: + self.Color('RED') + self.assertIs(ctx.exception.__context__, None) + + P = IntFlag('P', 'X Y') + with self.assertRaisesRegex(ValueError, "'X' is not a valid P") as ctx: + P('X') + self.assertIs(ctx.exception.__context__, None) + class TestEmptyAndNonLatinStrings(unittest.TestCase): diff --git a/Misc/NEWS.d/next/Tests/2022-01-05-01-38-45.bpo-46262.MhiLWP.rst b/Misc/NEWS.d/next/Tests/2022-01-05-01-38-45.bpo-46262.MhiLWP.rst new file mode 100644 index 0000000..456d135 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2022-01-05-01-38-45.bpo-46262.MhiLWP.rst @@ -0,0 +1 @@ +Cover ``ValueError`` path in tests for :meth:`enum.Flag._missing_`. -- cgit v0.12