diff options
| author | Ethan Furman <ethan@stoneleaf.us> | 2020-09-22 20:00:07 (GMT) |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-09-22 20:00:07 (GMT) |
| commit | d986d1657e1e7b50807d0633cb31d96a2d866d42 (patch) | |
| tree | 2565f560e2ccacd2655c9e1fcbeff429c27750de /Lib/test/test_enum.py | |
| parent | 947adcaa13080790167757664912c3a6c2d4c201 (diff) | |
| download | cpython-d986d1657e1e7b50807d0633cb31d96a2d866d42.zip cpython-d986d1657e1e7b50807d0633cb31d96a2d866d42.tar.gz cpython-d986d1657e1e7b50807d0633cb31d96a2d866d42.tar.bz2 | |
bpo-41816: `StrEnum.__str__` is `str.__str__` (GH-22362)
use `str.__str__` for `StrEnum` so that `str(StrEnum.member)` is the same as directly accessing the string value of the `StrEnum` member
Diffstat (limited to 'Lib/test/test_enum.py')
| -rw-r--r-- | Lib/test/test_enum.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/Lib/test/test_enum.py b/Lib/test/test_enum.py index 8e84d92..3431040 100644 --- a/Lib/test/test_enum.py +++ b/Lib/test/test_enum.py @@ -2036,6 +2036,37 @@ class TestEnum(unittest.TestCase): two = '2' three = b'3', 'ascii' four = b'4', 'latin1', 'strict' + self.assertEqual(GoodStrEnum.one, '1') + self.assertEqual(str(GoodStrEnum.one), '1') + self.assertEqual(GoodStrEnum.one, str(GoodStrEnum.one)) + self.assertEqual(GoodStrEnum.one, '{}'.format(GoodStrEnum.one)) + # + class DumbMixin: + def __str__(self): + return "don't do this" + class DumbStrEnum(DumbMixin, StrEnum): + five = '5' + six = '6' + seven = '7' + self.assertEqual(DumbStrEnum.seven, '7') + self.assertEqual(str(DumbStrEnum.seven), "don't do this") + # + class EnumMixin(Enum): + def hello(self): + print('hello from %s' % (self, )) + class HelloEnum(EnumMixin, StrEnum): + eight = '8' + self.assertEqual(HelloEnum.eight, '8') + self.assertEqual(HelloEnum.eight, str(HelloEnum.eight)) + # + class GoodbyeMixin: + def goodbye(self): + print('%s wishes you a fond farewell') + class GoodbyeEnum(GoodbyeMixin, EnumMixin, StrEnum): + nine = '9' + self.assertEqual(GoodbyeEnum.nine, '9') + self.assertEqual(GoodbyeEnum.nine, str(GoodbyeEnum.nine)) + # with self.assertRaisesRegex(TypeError, '1 is not a string'): class FirstFailedStrEnum(StrEnum): one = 1 |
