diff --git a/Lib/test/test_enum.py b/Lib/test/test_enum.py index eecb9fd4835..51a31e5ebf8 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 00000000000..456d1359e47 --- /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_`.