| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -152,12 +152,12 @@ def __new__(metacls, cls, bases, classdict): | |||
| 152 | 152 | args = (args, ) # wrap it one more time | |
| 153 | 153 | if not use_args: | |
| 154 | 154 | enum_member = __new__(enum_class) | |
| 155 | - original_value = value | ||
| 155 | + if not hasattr(enum_member, '_value_'): | ||
| 156 | + enum_member._value_ = value | ||
| 156 | 157 | else: | |
| 157 | 158 | enum_member = __new__(enum_class, *args) | |
| 158 | - original_value = member_type(*args) | ||
| 159 | - if not hasattr(enum_member, '_value_'): | ||
| 160 | - enum_member._value_ = original_value | ||
| 159 | + if not hasattr(enum_member, '_value_'): | ||
| 160 | + enum_member._value_ = member_type(*args) | ||
| 161 | 161 | value = enum_member._value_ | |
| 162 | 162 | enum_member._member_type_ = member_type | |
| 163 | 163 | enum_member._name_ = member_name | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -934,6 +934,22 @@ class ColorInAList(AutoNumberInAList): | |||
| 934 | 934 | self.assertEqual(ColorInAList.red.value, [1]) | |
| 935 | 935 | self.assertEqual(ColorInAList([1]), ColorInAList.red) | |
| 936 | 936 | ||
| 937 | + def test_conflicting_types_resolved_in_new(self): | ||
| 938 | + class LabelledIntEnum(int, Enum): | ||
| 939 | + def __new__(cls, *args): | ||
| 940 | + value, label = args | ||
| 941 | + obj = int.__new__(cls, value) | ||
| 942 | + obj.label = label | ||
| 943 | + obj._value_ = value | ||
| 944 | + return obj | ||
| 945 | + | ||
| 946 | + class LabelledList(LabelledIntEnum): | ||
| 947 | + unprocessed = (1, "Unprocessed") | ||
| 948 | + payment_complete = (2, "Payment Complete") | ||
| 949 | + | ||
| 950 | + self.assertEqual(list(LabelledList), [LabelledList.unprocessed, LabelledList.payment_complete]) | ||
| 951 | + self.assertEqual(LabelledList.unprocessed, 1) | ||
| 952 | + self.assertEqual(LabelledList(1), LabelledList.unprocessed) | ||
| 937 | 953 | ||
| 938 | 954 | ||
| 939 | 955 | class TestUnique(unittest.TestCase): | |
| Back | FazBrowse Home | New Git URL |
0 commit comments