diff options
author | Ethan Furman <ethan@stoneleaf.us> | 2013-10-07 00:19:54 (GMT) |
---|---|---|
committer | Ethan Furman <ethan@stoneleaf.us> | 2013-10-07 00:19:54 (GMT) |
commit | 648f860c227187d01f00934e2e9453b32241bdaf (patch) | |
tree | ab61715c93a51bf30082a4704ad234d73da22677 /Lib/test/test_enum.py | |
parent | ab5a58d82732d94314160407112d8c609b7ad86b (diff) | |
download | cpython-648f860c227187d01f00934e2e9453b32241bdaf.zip cpython-648f860c227187d01f00934e2e9453b32241bdaf.tar.gz cpython-648f860c227187d01f00934e2e9453b32241bdaf.tar.bz2 |
Close #19156: add tests and fix for Enum helper edge cases. Patch from CliffM.
Diffstat (limited to 'Lib/test/test_enum.py')
-rw-r--r-- | Lib/test/test_enum.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/Lib/test/test_enum.py b/Lib/test/test_enum.py index d59c5e3..3d962f9 100644 --- a/Lib/test/test_enum.py +++ b/Lib/test/test_enum.py @@ -58,6 +58,35 @@ try: except Exception: pass + +class TestHelpers(unittest.TestCase): + # _is_descriptor, _is_sunder, _is_dunder + + def test_is_descriptor(self): + class foo: + pass + for attr in ('__get__','__set__','__delete__'): + obj = foo() + self.assertFalse(enum._is_descriptor(obj)) + setattr(obj, attr, 1) + self.assertTrue(enum._is_descriptor(obj)) + + def test_is_sunder(self): + for s in ('_a_', '_aa_'): + self.assertTrue(enum._is_sunder(s)) + + for s in ('a', 'a_', '_a', '__a', 'a__', '__a__', '_a__', '__a_', '_', + '__', '___', '____', '_____',): + self.assertFalse(enum._is_sunder(s)) + + def test_is_dunder(self): + for s in ('__a__', '__aa__'): + self.assertTrue(enum._is_dunder(s)) + for s in ('a', 'a_', '_a', '__a', 'a__', '_a_', '_a__', '__a_', '_', + '__', '___', '____', '_____',): + self.assertFalse(enum._is_dunder(s)) + + class TestEnum(unittest.TestCase): def setUp(self): class Season(Enum): |