summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_enum.py
diff options
context:
space:
mode:
authorEthan Furman <ethan@stoneleaf.us>2020-09-22 20:00:07 (GMT)
committerGitHub <noreply@github.com>2020-09-22 20:00:07 (GMT)
commitd986d1657e1e7b50807d0633cb31d96a2d866d42 (patch)
tree2565f560e2ccacd2655c9e1fcbeff429c27750de /Lib/test/test_enum.py
parent947adcaa13080790167757664912c3a6c2d4c201 (diff)
downloadcpython-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.py31
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