@@ -31,6 +31,11 @@ def load_tests(loader, tests, ignore):
3131 '../../Doc/library/enum.rst' ,
3232 optionflags = doctest .ELLIPSIS | doctest .NORMALIZE_WHITESPACE ,
3333 ))
34+ if os .path .exists ('Doc/howto/enum.rst' ):
35+ tests .addTests (doctest .DocFileSuite (
36+ '../../Doc/howto/enum.rst' ,
37+ optionflags = doctest .ELLIPSIS | doctest .NORMALIZE_WHITESPACE ,
38+ ))
3439 return tests
3540
3641MODULE = __name__
@@ -66,6 +71,7 @@ class FlagStooges(Flag):
6671 LARRY = 1
6772 CURLY = 2
6873 MOE = 4
74+ BIG = 389
6975except Exception as exc :
7076 FlagStooges = exc
7177
@@ -74,17 +80,20 @@ class FlagStoogesWithZero(Flag):
7480 LARRY = 1
7581 CURLY = 2
7682 MOE = 4
83+ BIG = 389
7784
7885class IntFlagStooges (IntFlag ):
7986 LARRY = 1
8087 CURLY = 2
8188 MOE = 4
89+ BIG = 389
8290
8391class IntFlagStoogesWithZero (IntFlag ):
8492 NOFLAG = 0
8593 LARRY = 1
8694 CURLY = 2
8795 MOE = 4
96+ BIG = 389
8897
8998# for pickle test and subclass tests
9099class Name (StrEnum ):
@@ -1942,14 +1951,17 @@ class NEI(NamedInt, Enum):
19421951 __qualname__ = 'NEI'
19431952 x = ('the-x' , 1 )
19441953 y = ('the-y' , 2 )
1945-
19461954 self .assertIs (NEI .__new__ , Enum .__new__ )
19471955 self .assertEqual (repr (NEI .x + NEI .y ), "NamedInt('(the-x + the-y)', 3)" )
19481956 globals ()['NamedInt' ] = NamedInt
19491957 globals ()['NEI' ] = NEI
19501958 NI5 = NamedInt ('test' , 5 )
19511959 self .assertEqual (NI5 , 5 )
19521960 self .assertEqual (NEI .y .value , 2 )
1961+ with self .assertRaisesRegex (TypeError , "name and value must be specified" ):
1962+ test_pickle_dump_load (self .assertIs , NEI .y )
1963+ # fix pickle support and try again
1964+ NEI .__reduce_ex__ = enum .pickle_by_enum_name
19531965 test_pickle_dump_load (self .assertIs , NEI .y )
19541966 test_pickle_dump_load (self .assertIs , NEI )
19551967
@@ -3252,11 +3264,17 @@ def test_pickle(self):
32523264 test_pickle_dump_load (self .assertEqual ,
32533265 FlagStooges .CURLY & ~ FlagStooges .CURLY )
32543266 test_pickle_dump_load (self .assertIs , FlagStooges )
3267+ test_pickle_dump_load (self .assertEqual , FlagStooges .BIG )
3268+ test_pickle_dump_load (self .assertEqual ,
3269+ FlagStooges .CURLY | FlagStooges .BIG )
32553270
32563271 test_pickle_dump_load (self .assertIs , FlagStoogesWithZero .CURLY )
32573272 test_pickle_dump_load (self .assertEqual ,
32583273 FlagStoogesWithZero .CURLY | FlagStoogesWithZero .MOE )
32593274 test_pickle_dump_load (self .assertIs , FlagStoogesWithZero .NOFLAG )
3275+ test_pickle_dump_load (self .assertEqual , FlagStoogesWithZero .BIG )
3276+ test_pickle_dump_load (self .assertEqual ,
3277+ FlagStoogesWithZero .CURLY | FlagStoogesWithZero .BIG )
32603278
32613279 test_pickle_dump_load (self .assertIs , IntFlagStooges .CURLY )
32623280 test_pickle_dump_load (self .assertEqual ,
@@ -3266,11 +3284,19 @@ def test_pickle(self):
32663284 test_pickle_dump_load (self .assertEqual , IntFlagStooges (0 ))
32673285 test_pickle_dump_load (self .assertEqual , IntFlagStooges (0x30 ))
32683286 test_pickle_dump_load (self .assertIs , IntFlagStooges )
3287+ test_pickle_dump_load (self .assertEqual , IntFlagStooges .BIG )
3288+ test_pickle_dump_load (self .assertEqual , IntFlagStooges .BIG | 1 )
3289+ test_pickle_dump_load (self .assertEqual ,
3290+ IntFlagStooges .CURLY | IntFlagStooges .BIG )
32693291
32703292 test_pickle_dump_load (self .assertIs , IntFlagStoogesWithZero .CURLY )
32713293 test_pickle_dump_load (self .assertEqual ,
32723294 IntFlagStoogesWithZero .CURLY | IntFlagStoogesWithZero .MOE )
32733295 test_pickle_dump_load (self .assertIs , IntFlagStoogesWithZero .NOFLAG )
3296+ test_pickle_dump_load (self .assertEqual , IntFlagStoogesWithZero .BIG )
3297+ test_pickle_dump_load (self .assertEqual , IntFlagStoogesWithZero .BIG | 1 )
3298+ test_pickle_dump_load (self .assertEqual ,
3299+ IntFlagStoogesWithZero .CURLY | IntFlagStoogesWithZero .BIG )
32743300
32753301 def test_contains_tf (self ):
32763302 Open = self .Open
0 commit comments