@@ -13,15 +13,24 @@ def test_unscoped_enum():
13
13
14
14
# name property
15
15
assert m .UnscopedEnum .EOne .name == "EOne"
16
+ assert m .UnscopedEnum .EOne .value == 1
16
17
assert m .UnscopedEnum .ETwo .name == "ETwo"
17
- assert m .EOne .name == "EOne"
18
- # name readonly
18
+ assert m .UnscopedEnum .ETwo .value == 2
19
+ assert m .EOne is m .UnscopedEnum .EOne
20
+ # name, value readonly
19
21
with pytest .raises (AttributeError ):
20
22
m .UnscopedEnum .EOne .name = ""
21
- # name returns a copy
22
- foo = m .UnscopedEnum .EOne .name
23
- foo = "bar"
23
+ with pytest .raises (AttributeError ):
24
+ m .UnscopedEnum .EOne .value = 10
25
+ # name, value returns a copy
26
+ # TODO: Neither the name nor value tests actually check against aliasing.
27
+ # Use a mutable type that has reference semantics.
28
+ nonaliased_name = m .UnscopedEnum .EOne .name
29
+ nonaliased_name = "bar" # noqa: F841
24
30
assert m .UnscopedEnum .EOne .name == "EOne"
31
+ nonaliased_value = m .UnscopedEnum .EOne .value
32
+ nonaliased_value = 10 # noqa: F841
33
+ assert m .UnscopedEnum .EOne .value == 1
25
34
26
35
# __members__ property
27
36
assert m .UnscopedEnum .__members__ == {
@@ -33,8 +42,8 @@ def test_unscoped_enum():
33
42
with pytest .raises (AttributeError ):
34
43
m .UnscopedEnum .__members__ = {}
35
44
# __members__ returns a copy
36
- foo = m .UnscopedEnum .__members__
37
- foo ["bar" ] = "baz"
45
+ nonaliased_members = m .UnscopedEnum .__members__
46
+ nonaliased_members ["bar" ] = "baz"
38
47
assert m .UnscopedEnum .__members__ == {
39
48
"EOne" : m .UnscopedEnum .EOne ,
40
49
"ETwo" : m .UnscopedEnum .ETwo ,
0 commit comments