Uname: Linux web3.us.cloudlogin.co 5.10.226-xeon-hst #2 SMP Fri Sep 13 12:28:44 UTC 2024 x86_64
Software: Apache
PHP version: 8.1.31 [ PHP INFO ] PHP os: Linux
Server Ip: 162.210.96.117
Your Ip: 18.116.49.66
User: edustar (269686) | Group: tty (888)
Safe Mode: OFF
Disable Function:
NONE

name : test_enum.cpython-310.pyc
o

`b���
@s�ddlZddlZddlZddlZddlZddlZddlmZddlmZm	Z	m
Z
mZmZm
Z
mZddlmZddlmZmZmZmZddlmZmZmZddlmZejdd�Zz
Gd	d
�d
e�ZWneywZ ze ZWYdZ [ ndZ [ wwzGdd�de!e�Z"Wney�Z ze Z"WYdZ [ ndZ [ wwzGd
d�de#e�Z$Wney�Z ze Z$WYdZ [ ndZ [ wwz
Gdd�de�Z%Wney�Z ze Z%WYdZ [ ndZ [ wwzGdd�de&e�Z'Gdd�de'�Z(Wney�Z ze Z(WYdZ [ ndZ [ wwz	edde)d�Z*Wne�yZ ze Z*WYdZ [ ndZ [ wwzedd�Z+Wne�y:Z ze Z+WYdZ [ ndZ [ wwz	edddd�Z,Wne�yYZ ze Z,WYdZ [ ndZ [ wwz
Gdd�de�Z-Wn
e�ynYnwd?d d!�Z.d"d#�Z/Gd$d%�d%ej0�Z1Gd&d'�d'�Z2Gd(d)�d)ej0�Z3Gd*d+�d+ej0�Z4Gd,d-�d-ej0�Z5Gd.d/�d/ej0�Z6Gd0d1�d1ej0�Z7Gd2d3�d3ej0�Z8d4Z9d5Z:Gd6d7�d7ej0�Z;Gd8d9�d9ej0�Z<d:Z=d:Z>d:Z?d:Z@d:ZAd:ZBGd;d<�d<ej0�ZCGd=d%�d%ej0�Z1e)d>k�r�e�D�dSdS)@�N)�OrderedDict)�Enum�IntEnum�EnumMeta�Flag�IntFlag�unique�auto)�StringIO)�dumps�loads�
PicklingError�HIGHEST_PROTOCOL)�	ALWAYS_EQ�check__all__�threading_helper)�	timedelta�c@�eZdZdZdZdZdS)�Stooges�r�N��__name__�
__module__�__qualname__ZLARRY�CURLY�MOE�rr�7/usr/local/python-3.10/lib/python3.10/test/test_enum.pyr�rc@r)�
IntStoogesrrrNrrrrrr!r r!c@r)�FloatStoogesg=
ףp=�?g�(\��@g�R$_	$	@Nrrrrrr""r r"c@r)�FlagStoogesrrrNrrrrrr#*r r#c@�eZdZdZdS)�StrEnumzaccepts only string valuesN)rrr�__doc__rrrrr%3�r%c@�eZdZdZdZdS)�Name�Guido van RossumzBarry WarsawN)rrr�BDFLZFLUFLrrrrr)5�r)�Questionzwho what when where why��module�Answerzhim this then there because�Theoryzrule law supposition�spanish_inquisition)�qualnamec@r)�FruitrrrN)rrrZTOMATOZBANANAZCHERRYrrrrr4Lr r4cCs8|dur|}ttd�D]
}|tt||d��|�qdS�Nr)�protocol)�rangerrr)�	assertion�source�targetr6rrr�test_pickle_dump_loadSs
�r;c	CsJttd�D]}||��t||d�Wd�n1swYqdSr5)r7rr)r8�	exception�objr6rrr�test_pickle_exceptionYs
���r>c@�$eZdZdd�Zdd�Zdd�ZdS)�TestHelperscCsNGdd�d�}dD]}|�}|�t�|��t||d�|�t�|��q	dS)Nc@�eZdZdS)z+TestHelpers.test_is_descriptor.<locals>.fooN�rrrrrrr�foob�rC)�__get__�__set__�
__delete__r)�assertFalse�enum�_is_descriptor�setattr�
assertTrue)�selfrC�attrr=rrr�test_is_descriptoras�zTestHelpers.test_is_descriptorcC�8dD]
}|�t�|��qdD]
}|�t�|��qdS)N)�_a_Z_aa_)
�a�a_�_a�__a�a__�__a__�_a__�__a_�_�__�___�____�_____)rLrI�
_is_sunderrH�rM�srrr�test_is_sunderjs
�zTestHelpers.test_is_sundercCrP)N)rWZ__aa__)
rRrSrTrUrVrQrXrYrZr[r\r]r^)rLrI�
_is_dunderrHr`rrr�test_is_dunderrs
�zTestHelpers.test_is_dunderN)rrrrOrbrdrrrrr@^s	r@c@seZdZddd�Zdd�ZdS)�
classpropertyNcCs2||_||_||_|dur|dur|j}||_dS�N)�fget�fset�fdelr&)rMrgrhri�docrrr�__init__}s
zclassproperty.__init__cCs
|�|�Srf)rg)rM�instance�
ownerclassrrrrE��
zclassproperty.__get__)NNNN)rrrrkrErrrrre{s
rec@s2eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Ze�ed#kd$�d%d&��Ze�ed#kd'�d(d)��Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zd8d9�Z d:d;�Z!d<d=�Z"d>d?�Z#d@dA�Z$dBdC�Z%dDdE�Z&dFdG�Z'dHdI�Z(dJdK�Z)dLdM�Z*dNdO�Z+dPdQ�Z,dRdS�Z-dTdU�Z.dVdW�Z/dXdY�Z0dZd[�Z1d\d]�Z2d^d_�Z3d`da�Z4dbdc�Z5ddde�Z6dfdg�Z7dhdi�Z8djdk�Z9dldm�Z:dndo�Z;dpdq�Z<drds�Z=dtdu�Z>dvdw�Z?dxdy�Z@dzd{�ZAd|d}�ZBd~d�ZCd�d��ZDd�d��ZEd�d��ZFd�d��ZGd�d��ZHd�d��ZId�d��ZJd�d��ZKd�d��ZLd�d��ZMd�d��ZNd�d��ZOd�d��ZPd�d��ZQd�d��ZRd�d��ZSd�d��ZTd�d��ZUd�d��ZVd�d��ZWd�d��ZXd�d��ZYd�d��ZZd�d��Z[d�d��Z\d�d��Z]d�d��Z^d�d��Z_d�d��Z`d�d��Zad�d��Zbd�d��Zcd�d��Zdd�dÄZed�dńZfd�dDŽZgd�dɄZhd�d˄Zid�d̈́Zjd�dτZkd�dфZld�dӄZmd�dՄZnd�dׄZod�dلZpd�dۄZqd�d݄Zrd�d߄Zsd�d�Ztd�d�Zud�d�Zvd�d�Zwd�d�Zxd�d�Zyd�d�Zzd�d�Z{d�d�Z|d�d�Z}d�d��Z~d�d��Zd�d��Z�d�d��Z�d�d��Z�e��ed�kd���d�d��Z��dS(�TestEnumcCs�Gdd�dt�}||_Gdd�dtt�}||_Gdd�dt�}||_Gdd�dtt�}||_d	d
lm	}Gdd�d|t�}||_
dS)
Nc@�eZdZdZdZdZdZdS)zTestEnum.setUp.<locals>.Seasonrrr�N)rrr�SPRING�SUMMER�AUTUMN�WINTERrrrr�Season��
rvc@seZdZdZdZdeZdS)z!TestEnum.setUp.<locals>.KonstantsgB�
�@�J�M�!	@rN)rrr�EZPI�TAUrrrr�	Konstants��r{c@� eZdZdZdZdZdZdZdS)zTestEnum.setUp.<locals>.Grades�rqrrrN�rrr�A�B�C�D�Frrrr�Grades��r�c@rp)z#TestEnum.setUp.<locals>.DirectionalZeastZwestZnorthZsouthN)rrrZEAST�WESTZNORTHZSOUTHrrrr�Directional�rwr�r)�datec@r()zTestEnum.setUp.<locals>.Holiday)��rr)r�r�N)rrrZNEW_YEAR�
IDES_OF_MARCHrrrr�Holiday�r,r�)rrv�floatr{rr��strr��datetimer�r�)rMrvr{r�r�r�r�rrr�setUp�s
zTestEnum.setUpcCs&|j}|�tt|��tgd���dS)N)�	__class__r&�__members__rrrrsrtru)rv�assertEqual�set�dir�rMrvrrr�test_dir_on_class�s


�zTestEnum.test_dir_on_classcCs(|j}|�tt|j��tgd���dS)N)r�r&r�name�value)rvr�r�r�rur�rrr�test_dir_on_item�s

�zTestEnum.test_dir_on_itemcCsNGdd�dt�}|�tt|��tgd���|�tt|j��tgd���dS)Nc@�eZdZdZdZdd�ZdS)z3TestEnum.test_dir_with_added_behavior.<locals>.Test�that�thosecS�
d|jS)NzWowser! I'm %s!�r��rMrrr�wowser�rnz:TestEnum.test_dir_with_added_behavior.<locals>.Test.wowserN)rrr�this�theser�rrrr�Test�r|r�)r�r&r�rr�r�)r�r&rr�r�r�)rr�r�r�r�)rMr�rrr�test_dir_with_added_behavior�s

�
�z%TestEnum.test_dir_with_added_behaviorcCsBGdd�dt�}Gdd�d|�}|�tt|j��tgd���dS)Nc@�eZdZdd�ZdS)zBTestEnum.test_dir_on_sub_with_behavior_on_super.<locals>.SuperEnumcS�dS)Nzdid you see me?rr�rrr�	invisible��zLTestEnum.test_dir_on_sub_with_behavior_on_super.<locals>.SuperEnum.invisibleN)rrrr�rrrr�	SuperEnum��r�c@r$)z@TestEnum.test_dir_on_sub_with_behavior_on_super.<locals>.SubEnumr~N�rrr�samplerrrr�SubEnum�r'r�)r�r&rr�r�r�)rr�r�r�r��rMr�r�rrr�&test_dir_on_sub_with_behavior_on_super�s
�z/TestEnum.test_dir_on_sub_with_behavior_on_supercCs>Gdd�dt�}Gdd�d|�}|�dhtt|j��k�dS)Nc@seZdZddd�ZdS)zZTestEnum.test_dir_on_sub_with_behavior_including_instance_dict_on_super.<locals>.SuperEnum�cS�t�||�}||_||_|Srf)�int�__new__�_value_�description)�clsr�r�r=rrrr���zbTestEnum.test_dir_on_sub_with_behavior_including_instance_dict_on_super.<locals>.SuperEnum.__new__N)r��rrrr�rrrrr���r�c@r$)zXTestEnum.test_dir_on_sub_with_behavior_including_instance_dict_on_super.<locals>.SubEnumr~Nr�rrrrr��r'r�r�)rrLr�r�r�r�rrr�>test_dir_on_sub_with_behavior_including_instance_dict_on_super�szGTestEnum.test_dir_on_sub_with_behavior_including_instance_dict_on_supercCs|j}|�||j�|j�dSrf)rv�assertIsrur�rrr�test_enum_in_enum_out�szTestEnum.test_enum_in_enum_outcCs|j}|�|jjd�dS�Nr)rvr�rrr�r�rrr�test_enum_value��zTestEnum.test_enum_valuecCs|�tjjd�dS)Nr)r�r!rr�r�rrr�test_intenum_value��zTestEnum.test_intenum_valuecCs|j}t|�}|�t|�t|��|�t|�d|�|�|j|j|j|jg|�td�	�d�D]O\}}||�}|�|t
||��|�|j|�|�||�|�|j
|�|�||�|�t|�|�|�||�|�t|�d|�|�t|�d�||��q/dS)NrqzSPRING SUMMER AUTUMN WINTERrzSeason.z<Season.{0}: {1}>)rv�listr��lenrrrsrtru�	enumerate�split�getattrr��assertNotEqualr��assertInr��type�assertIsInstancer��repr�format)rMrv�lst�iZseason�errr�	test_enum�s,�
��zTestEnum.test_enumcCs�|j}|�|jjd�|�|jjd�|�t��d|j_Wd�n1s'wY|�t��
d|j_Wd�dS1sAwYdS)NrrrZinviernor)rvr�rrr�r��assertRaises�AttributeErrorr�rrr�test_value_names
�
"�zTestEnum.test_value_namecCs<|j}|�t��d|_Wd�dS1swYdS)Nzreally cold)rvr�r�rur�rrr�test_changing_members"�zTestEnum.test_changing_membercCs�Gdd�dt�}|�t|d��|`|�t|d��|�t��
|`Wd�n1s,wY|�t��
|`Wd�n1sCwY|�t��|j`	Wd�dS1s\wYdS)Nc@s$eZdZdZdZdZdZdd�ZdS)z0TestEnum.test_attribute_deletion.<locals>.SeasonrrrrqcS�dSrfr)r�rrr�spamr�z5TestEnum.test_attribute_deletion.<locals>.Season.spamN)rrrrrrsrtrur�rrrrrvsrvr�)
rrL�hasattrr�rHr�r�rrZDRYr�r�rrr�test_attribute_deletions	��"�z TestEnum.test_attribute_deletioncCs"Gdd�dt�}|�t|��dS)Nc@rA)z*TestEnum.test_bool_of_class.<locals>.EmptyNrBrrrr�Empty,rDr��rrL�bool)rMr�rrr�test_bool_of_class+szTestEnum.test_bool_of_classcCs,Gdd�dt�}|D]	}|�t|��q
dS)Nc@r)z+TestEnum.test_bool_of_member.<locals>.CountrrrN)rrrZzero�one�tworrrr�Count1r r�r�)rMr��memberrrr�test_bool_of_member0s�zTestEnum.test_bool_of_membercCs(|�t��Gdd�dt�}Wd�n1swY|�t��Gdd�dt�}Wd�n1s5wY|�t��Gdd�dt�}Wd�n1sRwY|�t��Gdd�dt�}Wd�n1sowY|�t��Gdd�dt�}Wd�dS1s�wYdS)Nc@r$��*TestEnum.test_invalid_names.<locals>.Wrong�	N)rrr�mrorrrr�Wrong:r'r�c@r$)r��N)rrr�_create_rrrrr�=r'c@r$r�)rrr�_get_mixins_rrrrr�@r'c@r$)r�rN)rrr�
_find_new_rrrrr�Cr'c@r$r�)rrrZ
_any_name_rrrrr�Fr'�r��
ValueErrorr�rMr�rrr�test_invalid_names8s����"�zTestEnum.test_invalid_namescCs~Gdd�dt�}|�|j�|�|j�Gdd�dt�}|�|j�|�|j�Gdd�dtt�}|�|j�|�|j�dS)Nc@r()z!TestEnum.test_bool.<locals>.LogicTFN�rrr�true�falserrrr�LogicKr,r�c@r�)z%TestEnum.test_bool.<locals>.RealLogicTFcS�
t|j�Srf)r�r�r�rrr�__bool__Trnz.TestEnum.test_bool.<locals>.RealLogic.__bool__N)rrrr�r�r�rrrr�	RealLogicQr|r�c@r()z$TestEnum.test_bool.<locals>.IntLogicrrNr�rrrr�IntLogicYr,r�)rrLr�r�rHr�)rMr�r�r�rrr�	test_boolIszTestEnum.test_bool�r��2__contains__ now returns True/False for all inputsc	Cs|j}|�|j|�|�t��!|�t��d|vWd�n1s$wYWd�n1s3wY|�t��!|�t��d|vWd�n1sRwYWd�n1sawY|d�}|�||�Gdd�dt�}|�|j	|�dS)Nrrtc@r()z,TestEnum.test_contains_er.<locals>.OtherEnumrrN�rrrr�r�rrrr�	OtherEnumor�r�)
rvr�rtr��	TypeError�assertWarns�DeprecationWarningr�assertNotInr��rMrv�valr�rrr�test_contains_er_s$
���
���zTestEnum.test_contains_er�6__contains__ only works with enum memmbers before 3.12cCsf|j}|�|j|�|�d|v�|�d|v�|d�}|�||�Gdd�dt�}|�|j|�dS)Nrrtc@r()z,TestEnum.test_contains_tf.<locals>.OtherEnumrrNr�rrrrr�r�r�)rvr�rtrLrHrrr�rrrr�test_contains_tfsszTestEnum.test_contains_tfcCs�|j}|�t��|j|jkWd�n1swY|�t��
|jdkWd�n1s3wY|�|jd�Gdd�dt�}|�|j|j�|�t��|j|jkWd�dS1sfwYdS)Nrqrc@r)z'TestEnum.test_comparisons.<locals>.PartrrrN)rrrrr�CLIPZBARRELrrrr�Part�r r	)rvr�r�rrrur�rr)rMrvr	rrr�test_comparisons�s��"�zTestEnum.test_comparisonscCs�Gdd�dt�}t|�}|�||j|j|j|jg�|�|j|j�|�|jj	d�|�|jj	d�|�|d�|j�|�|d�|j�|�|jj
d�|�dd�|j��D�dd	g�dS)
Nc@s$eZdZdZdZdZZdZdZdS)z-TestEnum.test_enum_duplicates.<locals>.SeasonrrrrqN)	rrrrrrsrt�FALLru�ANOTHER_SPRINGrrrrrv�srvrrrtcS�g|]\}}|j|kr|�qSrr���.0�k�vrrr�
<listcomp>�sz1TestEnum.test_enum_duplicates.<locals>.<listcomp>rr)
rr�r�rrrsrtrur�rr�r�r��items)rMrvr�rrr�test_enum_duplicates�s$���zTestEnum.test_enum_duplicatescCs�|�t��Gdd�dt�}Wd�n1swY|�t��Gdd�dt�}Wd�n1s5wY|�t��Gdd�dt�}Wd�dS1sSwYdS)Nc@seZdZdZdZdZdZdS)�+TestEnum.test_duplicate_name.<locals>.ColorrrrrqN�rrr�red�green�bluerrrr�Color�rwrc@s eZdZdZdZdZdd�ZdS)rrrrcSr�)Nrrr�rrrr�r��/TestEnum.test_duplicate_name.<locals>.Color.redNrrrrrr��
c@s$eZdZedd��ZdZdZdZdS)rcSr�)NZredderrr�rrrr��rrrrN)rrr�propertyrrrrrrrr�s
�r�r�r�rMrrrr�test_duplicate_name�s��"�zTestEnum.test_duplicate_namecCs^Gdd�dt�}|�t|�|j|jg�|�t|j�|�|�|jjd�|�|jjd�dS)Nc@r()z/TestEnum.test_enum_with_value_name.<locals>.HuhrrN)rrrr�r�rrrr�Huh�r,r"r�r)rr�r�r�r�r�r�)rMr"rrr�test_enum_with_value_name�s
�z"TestEnum.test_enum_with_value_namecCs�|j}|�d�|j�d�t|j���|�d�|j�d�t|j���|�d�|j�d�t|j���|�d�|j�d�t|j���|�d�|j�d�t|j���|�d�|j�d�t|j���dS�N�{}�{:}�{:20}�{:^20}�{:>20}�{:<20})rvr�r�rrr�r�rrr�test_format_enum�s&������zTestEnum.test_format_enumcCs:Gdd�dt�}|�t|j�d�|�d�|j�d�dS)Nc@s eZdZe�Ze�Zdd�ZdS)z=TestEnum.test_str_override_enum.<locals>.EnumWithStrOverridescSr��N�Str!rr�rrr�__str__�r�zETestEnum.test_str_override_enum.<locals>.EnumWithStrOverrides.__str__N)rrrr	r�r�r.rrrr�EnumWithStrOverrides�sr/r-r%�rr�r�r�r�)rMr/rrr�test_str_override_enum�szTestEnum.test_str_override_enumcC�:Gdd�dt�}|�t|j�d�|�d�|j�d�dS)Nc@r�)zBTestEnum.test_format_override_enum.<locals>.EnumWithFormatOverride��?�@cSr�)N�Format!!r�rM�specrrr�
__format__�r�zMTestEnum.test_format_override_enum.<locals>.EnumWithFormatOverride.__format__N�rrrr�r�r8rrrr�EnumWithFormatOverride�r|r:zEnumWithFormatOverride.oner%r5r0)rMr:rrr�test_format_override_enum�sz"TestEnum.test_format_override_enumcCr2)Nc@s(eZdZe�Ze�Zdd�Zdd�ZdS)zNTestEnum.test_str_and_format_override_enum.<locals>.EnumWithStrFormatOverridescSr�r,rr�rrrr.�r�zVTestEnum.test_str_and_format_override_enum.<locals>.EnumWithStrFormatOverrides.__str__cSr��N�Format!rr6rrrr8�r�zYTestEnum.test_str_and_format_override_enum.<locals>.EnumWithStrFormatOverrides.__format__N)rrrr	r�r�r.r8rrrr�EnumWithStrFormatOverrides�s
r>r-r%r=r0)rMr>rrr�!test_str_and_format_override_enum�sz*TestEnum.test_str_and_format_override_enumcCs<Gdd�dtt�}|�t|j�d�|�d�|j�d�dS)Nc@r�)zBTestEnum.test_str_override_mixin.<locals>.MixinEnumWithStrOverrider3r4cSr�)N�Overridden!rr�rrrr.r�zJTestEnum.test_str_override_mixin.<locals>.MixinEnumWithStrOverride.__str__N)rrrr�r�r.rrrr�MixinEnumWithStrOverrider|rAr@r%�r�rr�r�r�r�)rMrArrr�test_str_override_mixin�z TestEnum.test_str_override_mixincC�<Gdd�dtt�}|�t|j�d�|�d�|j�d�dS)Nc@s$eZdZdZdZdd�Zdd�ZdS)zPTestEnum.test_str_and_format_override_mixin.<locals>.MixinWithStrFormatOverridesr3r4cSr�r,rr�rrrr.
r�zXTestEnum.test_str_and_format_override_mixin.<locals>.MixinWithStrFormatOverrides.__str__cSr�r<rr6rrrr8r�z[TestEnum.test_str_and_format_override_mixin.<locals>.MixinWithStrFormatOverrides.__format__N)rrrr�r�r.r8rrrr�MixinWithStrFormatOverrides
s
rFr-r%r=rB)rMrFrrr�"test_str_and_format_override_mixin	sz+TestEnum.test_str_and_format_override_mixincCrE)Nc@r�)z6TestEnum.test_format_override_mixin.<locals>.TestFloatr3r4cSr�)N�TestFloat success!rr6rrrr8r�zATestEnum.test_format_override_mixin.<locals>.TestFloat.__format__Nr9rrrr�	TestFloatr|rIz
TestFloat.oner%rHrB)rMrIrrr�test_format_override_mixinrDz#TestEnum.test_format_override_mixincCs|�|�|�|�|j��dSrf)r�r�r�)rMr7r�rrr�assertFormatIsValueszTestEnum.assertFormatIsValuecCsz|j}|�d|j�|�d|j�|�d|j�|�d|j�|�d|j�|�d|j�|�d|j�|�d|j�dS)	Nr%r&r'r(r)r*z{:%Y %m}z{:%Y %m %M:00})r�rKr�)rMr�rrr�test_format_enum_date szTestEnum.test_format_enum_datecC�|j}|�d|j�|�d|j�|�d|j�|�d|j�|�d|j�|�d|j�|�d|j�|�d|j�|�d	|j�dS)
Nr%r&r'r(r)r*z{:n}z{:5.2}z{:f})r{rKrz)rMr{rrr�test_format_enum_float+�zTestEnum.test_format_enum_floatcCrM)
Nr%r&r'r(r)r*z{:+}z{:08X}z{:b})r�rKr�)rMr�rrr�test_format_enum_int7rOzTestEnum.test_format_enum_intcCs^|j}|�d|j�|�d|j�|�d|j�|�d|j�|�d|j�|�d|j�dSr$)r�rKr�)rMr�rrr�test_format_enum_strCszTestEnum.test_format_enum_strcC�&Gdd�dt�}|�t|j�d�dS)Nc@s$eZdZd\ZZZdd�ZejZdS)z1TestEnum.test_object_str_override.<locals>.Colors�rrrcSsd|jfS)Nztest.%s)�_name_r�rrr�__repr__O�z:TestEnum.test_object_str_override.<locals>.Colors.__repr__N)	rrr�RED�GREEN�BLUErU�objectr.rrrr�ColorsMs

r[ztest.RED)rr�r�rW)rMr[rrr�test_object_str_overrideLsz!TestEnum.test_object_str_overridecCs�Gdd�dt�}Gdd�dt�}Gdd�d|t|�}|�|jtu�|�t|j�d�|�t|jd�d�Gd	d
�d
||�}|�t|j�d�|�t|jd�d�dS)Nc@r�)z2TestEnum.test_enum_str_override.<locals>.MyStrEnumcSr�)N�MyStrrr�rrrr.Vr�z:TestEnum.test_enum_str_override.<locals>.MyStrEnum.__str__N�rrrr.rrrr�	MyStrEnumUr�r_c@r�)z5TestEnum.test_enum_str_override.<locals>.MyMethodEnumcSr�)NzHello!  My name is %sr�r�rrr�helloYrnz;TestEnum.test_enum_str_override.<locals>.MyMethodEnum.helloN�rrrr`rrrr�MyMethodEnumXr�rbc@r()z2TestEnum.test_enum_str_override.<locals>.Test1EnumrrN�rrr�OneZTworrrr�	Test1Enum[r,rer]r�c@r()z2TestEnum.test_enum_str_override.<locals>.Test2EnumrrNrcrrrr�	Test2Enumbr,rf)rr�rL�
_member_type_r�r�rdr�)rMr_rbrerfrrr�test_enum_str_overrideTszTestEnum.test_enum_str_overridecCs<Gdd�dt�}Gdd�d|tj�}|�t|j�d�|t�d<|t�d<t|j|j�t|j|�Gdd�d|�}Gdd	�d	|tj�}|�|j	|�|t�d<|t�d	<t|j|j
�t|j|�Gd
d�dt�}Gdd
�d
|t�}|�|j	|�|�|d�|j�|t�d<|t�d
<t|j
t|j�t|j
t|�dS)Nc@�eZdZdZdd�ZdS)z1TestEnum.test_inherited_data_type.<locals>.HexInt�HexIntcS�t|�Srf��hexr�rrrrUk�z:TestEnum.test_inherited_data_type.<locals>.HexInt.__repr__N�rrrrUrrrrrji�rjc@�eZdZdZdZdZdZdS)z1TestEnum.test_inherited_data_type.<locals>.MyEnum�MyEnumrrrN)rrrr�r�r�rrrrrrmrwrrz<MyEnum.A: 0x1>c@seZdZdZdS)z3TestEnum.test_inherited_data_type.<locals>.SillyInt�SillyIntNrBrrrrrsxsrsc@rq)z6TestEnum.test_inherited_data_type.<locals>.MyOtherEnum�MyOtherEnumrqr~�N)rrrr�ryr�rrrrrt{rwrtc@ri)z4TestEnum.test_inherited_data_type.<locals>.BrokenInt�	BrokenIntcSst�||�Srf)r�r��r�r�rrrr��rVz<TestEnum.test_inherited_data_type.<locals>.BrokenInt.__new__Nr�rrrrrv�rprvc@rq)z7TestEnum.test_inherited_data_type.<locals>.MyBrokenEnum�MyBrokenEnum��r�N)rrr�G�H�Irrrrrx�rwrxry)r�rIrr�r�r��globalsr;r�rgryr{r>r�r�r
)rMrjrrrsrtrvrxrrr�test_inherited_data_typehs,





z!TestEnum.test_inherited_data_typecCs�|�td��Gdd�dttt�}Wd�n1swYGdd�dt�}Gdd�dt�}|�td��Gdd�d||t�}Wd�dS1sLwYdS)	Nztoo many data typesc@r$�z.TestEnum.test_too_many_data_types.<locals>.HuhrN�rrrrdrrrrr"�r'r"c@r�)z0TestEnum.test_too_many_data_types.<locals>.MyStrcSsd|S)Nz	hello, %srr�rrrr`�rnz6TestEnum.test_too_many_data_types.<locals>.MyStr.helloNrarrrrr]�r�r]c@r�)z0TestEnum.test_too_many_data_types.<locals>.MyIntcSrkrfrlr�rrrr��rnz5TestEnum.test_too_many_data_types.<locals>.MyInt.reprN)rrrr�rrrr�MyInt�r�r�c@r$r�r�rrrrr"�r')�assertRaisesRegexr�r�r�r)rMr"r]r�rrr�test_too_many_data_types�s�"�z!TestEnum.test_too_many_data_typescCsH|j}i}d||j<d||j<d||j<d||j<|�||jd�dS)NZ1225Z0315Z0704Z1031)rvrurrrsrtr�)rMrvZdatesrrr�	test_hash�s



zTestEnum.test_hashcC�(Gdd�dtt�}|�|j|jk�dS)Nc@�eZdZdZdeZdS)z/TestEnum.test_intenum_from_scratch.<locals>.phyrrN�rrr�pi�taurrrr�phy�rpr��r�rrLr�r��rMr�rrr�test_intenum_from_scratch��z"TestEnum.test_intenum_from_scratchcC�8Gdd�dtt�}Gdd�d|�}|�|j|jk�dS)Nc@rA)z0TestEnum.test_intenum_inherited.<locals>.IntEnumNrBrrrrr�rDrc@r�)z,TestEnum.test_intenum_inherited.<locals>.phyrrNr�rrrrr��rpr�r�)rMrr�rrr�test_intenum_inherited��zTestEnum.test_intenum_inheritedcCr�)Nc@r�)z1TestEnum.test_floatenum_from_scratch.<locals>.phyrxrNr�rrrrr��rpr��r�rrLr�r�r�rrr�test_floatenum_from_scratch�r�z$TestEnum.test_floatenum_from_scratchcCr�)Nc@rA)z4TestEnum.test_floatenum_inherited.<locals>.FloatEnumNrBrrrr�	FloatEnum�rDr�c@r�)z.TestEnum.test_floatenum_inherited.<locals>.phyrxrNr�rrrrr��rpr�r�)rMr�r�rrr�test_floatenum_inherited�r�z!TestEnum.test_floatenum_inheritedcCr�)Nc@r()z/TestEnum.test_strenum_from_scratch.<locals>.phy�Pi�TauNr�rrrrr��r,r��r�rrLr�r�r�rrr�test_strenum_from_scratch�r�z"TestEnum.test_strenum_from_scratchcCr�)Nc@rA)z0TestEnum.test_strenum_inherited.<locals>.StrEnumNrBrrrrr%�rDr%c@r()z,TestEnum.test_strenum_inherited.<locals>.phyr�r�Nr�rrrrr��r,r�r�)rMr%r�rrr�test_strenum_inherited�r�zTestEnum.test_strenum_inheritedcCs0Gdd�dt�}|�gd�|jd�|�dd�t|j�D�gd��t|�}|�t|�t|��|�t|�d�d	}|��}t|d
�D]Q\}}||�}|�||�|�t	|�|�|�|j
|�|�||�|�|�|�d
|�|�
d|ko}dkn�|�t|�|�|�|t	�|�|t�qDdS)
Nc@s(eZdZdZdZdZdZdZdZdZ	dS)	z&TestEnum.test_intenum.<locals>.WeekDayrrrrqr~ruryN)
rrr�SUNDAY�MONDAY�TUESDAY�	WEDNESDAY�THURSDAY�FRIDAY�SATURDAYrrrr�WeekDay�sr�)rR�b�cr�cSsg|]}|�qSrr)rr�rrrr�sz)TestEnum.test_intenum.<locals>.<listcomp>)rrrryz8SUNDAY MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY SATURDAYrrrz)rr�r�r7r�r�r�r�r�r�r�r��indexrLr�r�r�r)rMr�r�r:r�Zweekdayr�rrr�test_intenum�s(	 �zTestEnum.test_intenumcCsTGdd�dt�}|�|j|j�|�|d�jd�|�dd�|j��D�dg�dS)Nc@s,eZdZdZdZdZZdZdZdZ	dZ
dS)	z1TestEnum.test_intenum_duplicates.<locals>.WeekDayrrrrqr~ruryN)rrrr�r�r��TEUSDAYr�r�r�r�rrrrr��sr�rr�cSr
rr�rrrrrs
�z4TestEnum.test_intenum_duplicates.<locals>.<listcomp>r�)rr�r�r�r�r�r�r)rMr�rrr�test_intenum_duplicates�s�z TestEnum.test_intenum_duplicatescCsR|�t�dd�tj�|�t��t�dd�Wd�dS1s"wYdS)Ns�bigs)r�r!�
from_bytesrr�r�r�rrr�test_intenum_from_bytess"�z TestEnum.test_intenum_from_bytescCsnt�tjj�}|�t�|�tj�t�tjjd�}|�t��t�|�Wd�dS1s0wYdS)Ng{�G�z�?)	r�rmr"rr�r��fromhexr�r�)rM�hrrr�test_floatenum_fromhex
s"�zTestEnum.test_floatenum_fromhexcC�,ttt�rt�t|jtj�t|jt�dSrf)�
isinstancer�	Exceptionr;r�rr�rrr�test_pickle_enum�
zTestEnum.test_pickle_enumcCr�rf)r�r!r�r;r�rr�rrr�test_pickle_intr�zTestEnum.test_pickle_intcCr�rf)r�r"r�r;r�rr�rrr�test_pickle_floatr�zTestEnum.test_pickle_floatcCr�rf)r�r0r�r;r�Zhimr�rrr�test_pickle_enum_function#r�z"TestEnum.test_pickle_enum_functioncCr�rf)r�r-r�r;r�Zwhor�rrr�%test_pickle_enum_function_with_module)r�z.TestEnum.test_pickle_enum_function_with_modulecCs ttt�rt�|�tjd�dS)Nr2)r�r1r�r�rr�rrr� test_enum_function_with_qualname/s
z)TestEnum.test_enum_function_with_qualnamecCs<Gdd�dt�}||j_d|jj|j_t|j|jj�dS)Nc@r()zLTestEnum.test_class_nested_enum_and_pickle_protocol_four.<locals>.NestedEnum�commonZrareN)rrr�twigsZshinyrrrr�
NestedEnum6r,r�z
%s.NestedEnum)rr�r�rrr;r�r�)rMr�rrr�/test_class_nested_enum_and_pickle_protocol_four4sz8TestEnum.test_class_nested_enum_and_pickle_protocol_fourcCs>Gdd�dt�}tj|_tt�D]}|�|j�|�d�qdS)Nc@r()z6TestEnum.test_pickle_by_name.<locals>.ReplaceGlobalIntrrN)rrr�ONE�TWOrrrr�ReplaceGlobalInt?r,r�r�)rrI�_reduce_ex_by_name�
__reduce_ex__r7rr�r�)rMr��protorrr�test_pickle_by_name>s
�zTestEnum.test_pickle_by_namecCsDtddtd�}|t�d<t�|�t|jt|j�t|jt	|�dS)N�	BadPicklezdill sweet bread-n-butterr.)
rrr~rI�_make_class_unpicklabler>r�r�Zdillr
)rMr�rrr�test_exploding_pickleFs�

zTestEnum.test_exploding_picklecCs$Gdd�dtt�}|�|jd�dS)Nc@r)z-TestEnum.test_string_enum.<locals>.SkillLevelz'what is the sound of one hand clapping?z#why did the chicken cross the road?�
knock, knock!N)rrrZmasterZ
journeyman�
apprenticerrrr�
SkillLevelPr r�r�)r�rr�r�)rMr�rrr�test_string_enumOszTestEnum.test_string_enumcCsLGdd�dt�}|�|d�|j�|�t|d�|j�|�|d|j�dS)Nc@rp)z-TestEnum.test_getattr_getitem.<locals>.PeriodrrrrqN)rrr�morning�noonZevening�nightrrrr�PeriodWrwr�rr�r�)rr�r�r�r�r��rMr�rrr�test_getattr_getitemVszTestEnum.test_getattr_getitemcCs|j}|�t|d��dS)N�__eq__)rvrLr�r�rrr�test_getattr_dunder`r�zTestEnum.test_getattr_dundercCs4Gdd�dt�}|�t|�|j|j|j|jg�dS)Nc@rp)z-TestEnum.test_iteration_order.<locals>.SeasonrrqrrN)rrrrsrurtrrrrrrrverwrv)rr�r�rsrurtrrr�rrr�test_iteration_orderds
�zTestEnum.test_iteration_ordercCs2|�tt|j��|jj|jj|jj|jjg�dSrf)r�r��reversedrvrurtrsrrr�rrr�test_reversed_iteration_orderos��z&TestEnum.test_reversed_iteration_ordercCs�tdd�}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�td��d�D],\}}||�}|�t	|j
�|�|�||�|�|j|�|�
||�|�t|�|�q/dS�N�SummerMonth�june july augustrr�rr�r�r��june�july�augustr�r�r�r�r�r�r�r�r��rMr�r�r��monthr�rrr�!test_programmatic_function_stringvs 
��z*TestEnum.test_programmatic_function_stringcCs�tdddd�}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�td��d�D],\}}||�}|�t	|j
�|�|�||�|�|j|�|�
||�|�t|�|�q1dS)Nr�r��
��startrr�r�rrr�,test_programmatic_function_string_with_start�� ��z5TestEnum.test_programmatic_function_string_with_startcCs�tdgd��}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�td��d�D],\}}||�}|�t	|j
�|�|�||�|�|j|�|�
||�|�t|�|�q1dS)Nr��r�r�r�rr�rr�r�rrr�&test_programmatic_function_string_list�r�z/TestEnum.test_programmatic_function_string_listcCs�tdgd�dd�}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�td��d�D],\}}||�}|�t	|j
�|�|�||�|�|j|�|�
||�|�t|�|�q3dS)Nr�r��r�rr�r�r�rrr�1test_programmatic_function_string_list_with_start�s ��z:TestEnum.test_programmatic_function_string_list_with_startcCs�tdd�}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�td��d�D],\}}||�}|�t	|j
�|�|�||�|�|j|�|�
||�|�t|�|�q/dS�Nr�))r�r)r�r)r�rrr�rr�r�rrr�#test_programmatic_function_iterable�s&���z,TestEnum.test_programmatic_function_iterablecCs�tdtd��}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�td�	�d�D],\}}||�}|�t
|j�|�|�||�|�|j
|�|�||�|�t|�|�q1dSr�)rrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr�$test_programmatic_function_from_dict�s&���z-TestEnum.test_programmatic_function_from_dictcCs�tddtd�}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�td�	�d�D]#\}}||�}|�||�|�|j
|�|�||�|�t
|�|�q1dS)Nr�r�)r�rr�rr�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr�test_programmatic_function_type����z(TestEnum.test_programmatic_function_typecCs�tddtdd�}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�td�	�d�D]#\}}||�}|�||�|�|j
|�|�||�|�t
|�|�q2dS)Nr�r��)r�r�rr�r�rrr�*test_programmatic_function_type_with_start�s��z3TestEnum.test_programmatic_function_type_with_startcCs�tdd�}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�td��d�D]#\}}||�}|�||�|�|j	|�|�
||�|�t|�|�q/dSr��
rr�r�r�r�r�r�r�r�r�r�r�r�r�rrr�-test_programmatic_function_type_from_subclasss
��z6TestEnum.test_programmatic_function_type_from_subclasscCs�tdddd�}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�td��d�D]#\}}||�}|�||�|�|j	|�|�
||�|�t|�|�q1dS)Nr�r��(r�rr�r�rrr�8test_programmatic_function_type_from_subclass_with_startr�zATestEnum.test_programmatic_function_type_from_subclass_with_startcCsTttt�rt�|�tjd�|�tjtd��|�tjttd��t|jtj�dS)Nr*r+)	r�r)r�r�r+rLr�r�r;r�rrr�test_subclassing"s
zTestEnum.test_subclassingcCs�Gdd�dt�}|�t��Gdd�d|�}Wd�n1s wY|�td��Gdd�d|t�}Wd�dS1s@wYdS)Nc@r)z&TestEnum.test_extending.<locals>.ColorrrrNrrrrrr+r rc@r)z*TestEnum.test_extending.<locals>.MoreColorrqr~ruN�rrrZcyan�magentaZyellowrrrr�	MoreColor0r r�z0EvenMoreColor: cannot extend enumeration 'Color'c@r$)z.TestEnum.test_extending.<locals>.EvenMoreColorryN)rrrZ
chartrueserrrr�
EvenMoreColor5r'r�)rr�r�r�r)rMrr�r�rrr�test_extending*s�"�zTestEnum.test_extendingcCs8Gdd�dt�}|�t|j�|�|�|j��d�dS)Nc@r�)z/TestEnum.test_exclude_methods.<locals>.whateverr�r�cSr�)Nz
no, not %s�r�r�rrr�really<rnz6TestEnum.test_exclude_methods.<locals>.whatever.reallyN)rrrr�r�r�rrrr�whatever9r|r�zno, not that)rZassertIsNotr�r�r�r�)rMr�rrr�test_exclude_methods8szTestEnum.test_exclude_methodscCsB|�t��Gdd�dtt�}Wd�dS1swYdS)Nc@r$)z4TestEnum.test_wrong_inheritance_order.<locals>.Wrongzerror before this pointN)rrrZNotHererrrrr�Cr'r�)r�r�rr�r�rrr�test_wrong_inheritance_orderAs"�z%TestEnum.test_wrong_inheritance_ordercCsTGdd�dt�}Gdd�dt�}|�|j|j�|�|j|j�|�|j|j�dS)Nc@r)z2TestEnum.test_intenum_transitivity.<locals>.numberrrrN)rrrr�r��threerrrr�numberGr rc@r)z2TestEnum.test_intenum_transitivity.<locals>.numerorrrN)rrr�uno�dos�tresrrrr�numeroKr r)rr�r�rr�rrr)rMrrrrr�test_intenum_transitivityFs
z"TestEnum.test_intenum_transitivitycCs4Gdd�dt�}Gdd�dt�}|�t||j�dS)Nc@r()z4TestEnum.test_wrong_enum_in_call.<locals>.MonochromerrN�rrr�black�whiterrrr�
MonochromeTr,rc@r()z0TestEnum.test_wrong_enum_in_call.<locals>.GenderrrN�rrr�male�femalerrrr�GenderWr,r)rr�r�r
�rMrrrrr�test_wrong_enum_in_callS�z TestEnum.test_wrong_enum_in_callcCs4Gdd�dt�}Gdd�dt�}|�t||j�dS)Nc@r()z:TestEnum.test_wrong_enum_in_mixed_call.<locals>.MonochromerrNrrrrrr]r,rc@r()z6TestEnum.test_wrong_enum_in_mixed_call.<locals>.GenderrrNrrrrrr`r,r)rrr�r�r
rrrr�test_wrong_enum_in_mixed_call\rz&TestEnum.test_wrong_enum_in_mixed_callcCs8Gdd�dt�}Gdd�dt�}|�||j�|j�dS)Nc@r()z6TestEnum.test_mixed_enum_in_call_1.<locals>.MonochromerrNrrrrrrfr,rc@r()z2TestEnum.test_mixed_enum_in_call_1.<locals>.GenderrrNrrrrrrir,r)rr�rr
rrrr�test_mixed_enum_in_call_1e�z"TestEnum.test_mixed_enum_in_call_1cCs8Gdd�dt�}Gdd�dt�}|�||j�|j�dS)Nc@r()z6TestEnum.test_mixed_enum_in_call_2.<locals>.MonochromerrNrrrrrror,rc@r()z2TestEnum.test_mixed_enum_in_call_2.<locals>.GenderrrNrrrrrrrr,r)rrr�r
r	rrrr�test_mixed_enum_in_call_2nrz"TestEnum.test_mixed_enum_in_call_2cCs6Gdd�dt�}Gdd�d|�}|�t|j�d�dS)Nc@r�)z*TestEnum.test_flufl_enum.<locals>.FluflnumcSr�rf)r�r�r�rrr�__int__yrnz2TestEnum.test_flufl_enum.<locals>.Fluflnum.__int__N)rrrrrrrr�Fluflnumxr�rc@r)z0TestEnum.test_flufl_enum.<locals>.MailManOptionsrrrN)rrr�option1Zoption2Zoption3rrrr�MailManOptions{r rr)rr�r�r)rMrrrrr�test_flufl_enumwszTestEnum.test_flufl_enumcCs�Gdd�dt�}|�|jjt�|�|jt�Gdd�dtt�}|�|jjt�|�|jt�Gdd�dt�}|�|jjt	�|�|jt	�dS)Nc@r()z+TestEnum.test_introspection.<locals>.Number�d��Nr�rrrr�Number�r,rc@r)z+TestEnum.test_introspection.<locals>.StringZsoftZroughZhardN)rrr�yarnZropeZwirerrrr�String�r r c@r()z*TestEnum.test_introspection.<locals>.Plainr
rN)rrr�vanillar�rrrr�Plain�r,r")
rr�r�rgr�r�rrr!rZ)rMrr r"rrr�test_introspection�szTestEnum.test_introspectioncCszGdd�dt�}|�t��|d�Wd�n1swY|�t��
|dWd�dS1s6wYdS)Nc@r)z0TestEnum.test_no_such_enum_member.<locals>.ColorrrrNrrrrrr�r rrqZ
chartreuse)rr�r��KeyErrorr rrr�test_no_such_enum_member�s
�
"�z!TestEnum.test_no_such_enum_membercCrR)Nc@s eZdZdZdZdZdd�ZdS)z%TestEnum.test_new_repr.<locals>.ColorrrrcSr�)Nz!don't you just love shades of %s?r�r�rrrrU�rnz.TestEnum.test_new_repr.<locals>.Color.__repr__N)rrrrrrrUrrrrr�rrz#don't you just love shades of blue?)rr�r�rr rrr�
test_new_repr�s
�zTestEnum.test_new_reprcCs8Gdd�dt�}Gdd�dt|�}|�t|j�d�dS)Nc@r�)z,TestEnum.test_inherited_repr.<locals>.MyEnumcSr�)NzMy name is %s.r�r�rrrrU�rnz5TestEnum.test_inherited_repr.<locals>.MyEnum.__repr__Nrorrrrrr�r�rrc@r)z/TestEnum.test_inherited_repr.<locals>.MyIntEnumrrrN)rrrr�r�Ztheotherrrrr�	MyIntEnum�r r'zMy name is that.)rr�r�r�r�)rMrrr'rrr�test_inherited_repr�szTestEnum.test_inherited_reprcsdG�fdd�dtt���Gdd�dt�d�}Gdd�dt�d�}Gdd	�d	|�}Gd
d�d|�}dS)Nc�eZdZ��fdd�Z�ZS)z3TestEnum.test_multiple_mixin_mro.<locals>.auto_enumc	s�t|��}||_t|j�}d}|jD]}||}|tur|}n|}|d7}|||<q|��D]\}}||vr:|||<q.t�|��||||�S�Nrr)r��	_cls_namer��
_member_names�Ellipsisr�superr�)	�metaclsr��bases�	classdict�temp�namesr�rr)r��	auto_enumrrr��s$



�
�z;TestEnum.test_multiple_mixin_mro.<locals>.auto_enum.__new__�rrrr��
__classcell__r�r4�r�rr4��r4c@rA)z:TestEnum.test_multiple_mixin_mro.<locals>.AutoNumberedEnumNrBrrrr�AutoNumberedEnum�rDr:)�	metaclassc@rA)z5TestEnum.test_multiple_mixin_mro.<locals>.AutoIntEnumNrBrrrr�AutoIntEnum�rDr<c@�eZdZdZdZdZdS)z8TestEnum.test_multiple_mixin_mro.<locals>.TestAutoNumber.rN�rrrrRr�r�rrrr�TestAutoNumber�r r?c@r=)z5TestEnum.test_multiple_mixin_mro.<locals>.TestAutoInt.rNr>rrrr�TestAutoInt�r r@)r�rr)rMr:r<r?r@rr7r�test_multiple_mixin_mro�s
z TestEnum.test_multiple_mixin_mroc�G�fdd�dt��Gdd�d�t�}|�|jtj�|�t|j|j�d��t�d<|t�d<�dd�}|�|d�t	|j|d�|�|jj
d�t	|j|j�t	|j|�dS)	Nc�HeZdZdZdd�Zdd�Zedd��Zdd	�Zd
d�Z�fdd
�ZdS)z:TestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt�NamedIntcW�B|}|^}}t|�dkrtd��tj|g|�R�}||_||_|S�Nrz name and value must be specified�r�r�r�r��_intname�_args�r��argsrIr�rMrrrr���zBTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__new__cS�|jSrf�rIr�rrr�__getnewargs__��zITestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__getnewargs__cSrMrf�rHr�rrrr��zCTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__name__cS�d�t|�j|jt�|��S�Nz{}({!r}, {})�r�r�rr�rUr�rrrrU���zCTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__repr__cS�&t}|j}|jtur|�|�S||�Srf�r�r.�__objclass__rZrU�rM�baseZbase_strrrrr.��


zBTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__str__c�>t|�t|�}t|��rt|��r�d�|j|j�|�S|S�Nz({0} + {1})�r�r�r�r�rM�otherr2�rDrr�__add__���zBTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__add__N)	rrrr�rOrrUr.rcrrbrrrD��	
	rDc@�eZdZdZdZdZdS)z5TestEnum.test_subclasses_with_getnewargs.<locals>.NEI�NEI�zthe-xr�zthe-yrN�rrr�x�yrrrrrgr rg�NamedInt('(the-x + the-y)', 3)�testr~r�r�rr�r�r�r�rkrlr~r;r��rMrgZNI5rrbr�test_subclasses_with_getnewargs��'


z(TestEnum.test_subclasses_with_getnewargscrB)	NcrC)z=TestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedIntrDcWrErFrGrJrrrr�rLzETestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__new__cSs
|jifSrfrNr�rrr�__getnewargs_ex__rnzOTestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__getnewargs_ex__cSrMrfrQr�rrrrrRzFTestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__name__cSrSrTrUr�rrrrU"rVzFTestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__repr__cSrWrfrXrZrrrr.'r\zETestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__str__cr]r^r_r`rbrrrc0rdzETestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__add__N)	rrrr�rsrrUr.rcrrbrrrDrerDc@rf)z8TestEnum.test_subclasses_with_getnewargs_ex.<locals>.NEIrgrhriNrjrrrrrg9r rgrmrnr~rrorprrbr�"test_subclasses_with_getnewargs_exrrz+TestEnum.test_subclasses_with_getnewargs_excrB)	NcrC)z6TestEnum.test_subclasses_with_reduce.<locals>.NamedIntrDcWrErFrGrJrrrr�MrLz>TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__new__cS�|j|jfSrf�r�rIr�rrr�
__reduce__VrVzATestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__reduce__cSrMrfrQr�rrrrXrRz?TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__name__cSrSrTrUr�rrrrU[rVz?TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__repr__cSrWrfrXrZrrrr.`r\z>TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__str__cr]r^r_r`rbrrrcirdz>TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__add__N)	rrrr�rwrrUr.rcrrbrrrDKrerDc@rf)z1TestEnum.test_subclasses_with_reduce.<locals>.NEIrgrhriNrjrrrrrgrr rgrmrnr~rrorprrbr�test_subclasses_with_reduceJrrz$TestEnum.test_subclasses_with_reducecrB)	NcrC)z9TestEnum.test_subclasses_with_reduce_ex.<locals>.NamedIntrDcWrErFrGrJrrrr��rLzATestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__new__cSrurfrv�rMr�rrrr��rVzGTestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__reduce_ex__cSrMrfrQr�rrrr�rRzBTestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__name__cSrSrTrUr�rrrrU�rVzBTestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__repr__cSrWrfrXrZrrrr.�r\zATestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__str__cr]r^r_r`rbrrrc�rdzATestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__add__N)	rrrr�r�rrUr.rcrrbrrrD�rerDc@rf)z4TestEnum.test_subclasses_with_reduce_ex.<locals>.NEIrgrhriNrjrrrrrg�r rgrmrnr~rrorprrbr�test_subclasses_with_reduce_ex�rrz'TestEnum.test_subclasses_with_reduce_excs�G�fdd�dt��Gdd�d�t�}|�|jtj�|�t|j|j�d��t�d<|t�d<�dd�}|�|d�|�|jj	d�t
|jt|j�t
|jt
|�dS)	Nc�@eZdZdZdd�Zedd��Zdd�Zdd	�Z�fd
d�ZdS)
zHTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedIntrDcWrErFrGrJrrrr��rLzPTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__new__cSrMrfrQr�rrrr�rRzQTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__name__cSrSrTrUr�rrrrU�rVzQTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__repr__cSrWrfrXrZrrrr.�r\zPTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__str__cr]r^r_r`rbrrrc�rdzPTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__add__N�rrrr�rrUr.rcrrbrrrD��	
	rDc@rf)zCTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NEIrgrhriNrjrrrrrg�r rgrmrnr~r)r�rr�r�r�r�rkrlr~r�r>r�r�r
rprrbr�-test_subclasses_without_direct_pickle_support�s%


z6TestEnum.test_subclasses_without_direct_pickle_supportcs�G�fdd�dt��Gdd�d�t�}|�|jtj�|�t|j|j�d��t�d<|t�d<�dd�}|�|d�|�|jj	d�t
|j|j�t
|j|�dS)	Ncr{)
zSTestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedIntrDcWrErFrGrJrrrr��rLz[TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__new__cSrMrfrQr�rrrr�rRz\TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__name__cSrSrTrUr�rrrrUrVz\TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__repr__cSrWrfrXrZrrrr.r\z[TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__str__cr]r^r_r`rbrrrcrdz[TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__add__Nr|rrbrrrD�r}rDc@s eZdZdZdZdZdd�ZdS)zNTestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NEIrgrhricSst|j|jffSrf)r�r�rTryrrrr�sz\TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NEI.__reduce_ex__N)rrrrkrlr�rrrrrgrrgrmrnr~r)r�rr�r�r�r�rkrlr~r�r;rprrbr�8test_subclasses_without_direct_pickle_support_using_name�s%


zATestEnum.test_subclasses_without_direct_pickle_support_using_namecCs\Gdd�dtt�}|�t|j�|�|�|jt�|�|jd�|t	�d<t
|j|j�dS)Nc@rq)z/TestEnum.test_tuple_subclass.<locals>.SomeTuple�	SomeTuple)rz
for the money)rzfor the show�rz
for the musicN)rrr�first�second�thirdrrrrr�)rwr�r�)�tuplerr�r�r�r�r�r�r�r~r;)rMr�rrr�test_tuple_subclass(s
zTestEnum.test_tuple_subclasscCsdGdd�dt�}|�t|�|j|j|jg�|�t|j�d�|�|jjd�|�|d�|j�dS)Nc@s(eZdZdZdZdZdd�Zdd�ZdS)zITestEnum.test_duplicate_values_give_unique_enum_items.<locals>.AutoNumberrcS�"t|j�d}t�|�}||_|Sr��r�r�rZr�r��r�r�r=rrrr�9�
zQTestEnum.test_duplicate_values_give_unique_enum_items.<locals>.AutoNumber.__new__cSr�rf�r�r�r�rrrr>rnzQTestEnum.test_duplicate_values_give_unique_enum_items.<locals>.AutoNumber.__int__N)rrrr�r�r�r�rrrrr�
AutoNumber5sr�rrr)	rr�r�r�r�r�r�r�r�)rMr�rrr�,test_duplicate_values_give_unique_enum_items4s�z5TestEnum.test_duplicate_values_give_unique_enum_itemscC�ZGdd�dt�}Gdd�d|�}|�t|�|j|j|jg�|�ttt|��gd��dS)Nc@�eZdZdd�Zdd�ZdS)zBTestEnum.test_inherited_new_from_enhanced_enum.<locals>.AutoNumbercSr�r�r�r�rrrr�Jr�zJTestEnum.test_inherited_new_from_enhanced_enum.<locals>.AutoNumber.__new__cSr�rfr�r�rrrrOrnzJTestEnum.test_inherited_new_from_enhanced_enum.<locals>.AutoNumber.__int__N)rrrr�rrrrrr�Isr�c@�eZdZdZdZdZdS)z=TestEnum.test_inherited_new_from_enhanced_enum.<locals>.ColorrNrrrrrrQr rrS)rr�r�rrr�mapr��rMr�rrrr�%test_inherited_new_from_enhanced_enumHsz.TestEnum.test_inherited_new_from_enhanced_enumcCr�)Nc@r�)z?TestEnum.test_inherited_new_from_mixed_enum.<locals>.AutoNumbercSs$t|j�d}t�||�}||_|Sr�)r�r�r�r�r�r�rrrr�ZszGTestEnum.test_inherited_new_from_mixed_enum.<locals>.AutoNumber.__new__Nr�rrrrr�Yr�r�c@r�)z:TestEnum.test_inherited_new_from_mixed_enum.<locals>.ColorrNrrrrrr_r rrS)rr�r�rrrr�r�r�rrr�"test_inherited_new_from_mixed_enumXsz+TestEnum.test_inherited_new_from_mixed_enumcCs0Gdd�dt�}|�t|j�|�|jt�dS)Nc@r$)z,TestEnum.test_equality.<locals>.OrdinaryEnumrN)rrrrRrrrr�OrdinaryEnumgr'r�)rr�rrR)rMr�rrr�
test_equalityfszTestEnum.test_equalitycCs�Gdd�dt�}Gdd�d|�}|�|j|j�|�|j|j�|�|j|j�|�	|j|j�|�
|j|j�|�|j|j�dS)Nc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
z0TestEnum.test_ordered_mixin.<locals>.OrderedEnumcSs|j|jur|j|jkStSrf�r�r��NotImplemented�rMrarrr�__ge__n�z7TestEnum.test_ordered_mixin.<locals>.OrderedEnum.__ge__cSs|j|jur|j|jkStSrfr�r�rrr�__gt__rr�z7TestEnum.test_ordered_mixin.<locals>.OrderedEnum.__gt__cSs|j|jur|j|jkStSrfr�r�rrr�__le__vr�z7TestEnum.test_ordered_mixin.<locals>.OrderedEnum.__le__cSs|j|jur|j|jkStSrfr�r�rrr�__lt__zr�z7TestEnum.test_ordered_mixin.<locals>.OrderedEnum.__lt__N)rrrr�r�r�r�rrrr�OrderedEnumms
r�c@r})z*TestEnum.test_ordered_mixin.<locals>.Grader~rqrrrNrrrrr�Grade~r�r�)rZ
assertGreaterr�r�ZassertLessEqualr�r�Z
assertLessr�ZassertGreaterEqualr�r�)rMr�r�rrr�test_ordered_mixinlszTestEnum.test_ordered_mixincCs`Gdd�dt�}Gdd�d|�}|�t��Gdd�d|�}Wd�dS1s)wYdS)Nc@r�)z'TestEnum.test_extending2.<locals>.ShadecSst|j�dSrf)�printr�r�rrr�shade��z-TestEnum.test_extending2.<locals>.Shade.shadeN�rrrr�rrrr�Shade�r�r�c@r)z'TestEnum.test_extending2.<locals>.ColorrrrNrrrrrr�r rc@r)z+TestEnum.test_extending2.<locals>.MoreColorrqr~ruNr�rrrrr��r r�)rr�r��rMr�rr�rrr�test_extending2�s
"�zTestEnum.test_extending2cCsFGdd�dt�}Gdd�d|�}Gdd�d|�}|�|j��d�dS)Nc@r�)z'TestEnum.test_extending3.<locals>.ShadecSrMrfr�r�rrrr��rPz-TestEnum.test_extending3.<locals>.Shade.shadeNr�rrrrr��r�r�c@r�)z'TestEnum.test_extending3.<locals>.ColorcSr�)Nz
%s hexlified!r�r�rrrrm�rnz+TestEnum.test_extending3.<locals>.Color.hexN)rrrrmrrrrr�r�rc@r)z+TestEnum.test_extending3.<locals>.MoreColorrqr~ruNr�rrrrr��r r�z5 hexlified!)rr�r�rmr�rrr�test_extending3�szTestEnum.test_extending3cCs6Gdd�dt�}Gdd�d|�}|�t|j�|�dS)Nc@r�)z3TestEnum.test_subclass_duplicate_name.<locals>.BasecSr�rfrr�rrrrn�r�z8TestEnum.test_subclass_duplicate_name.<locals>.Base.testN�rrrrnrrrr�Base�r�r�c@r$)z3TestEnum.test_subclass_duplicate_name.<locals>.TestrNr�rrrrr��r'r�)rr�r�rn�rMr�r�rrr�test_subclass_duplicate_name�sz%TestEnum.test_subclass_duplicate_namecsDddlm�G�fdd�dt�}Gdd�d|�}|�|jjd�dS)Nr��DynamicClassAttributecseZdZ�dd��ZdS)z;TestEnum.test_subclass_duplicate_name_dynamic.<locals>.BasecSr�)N�dynamicrr�rrrrn�rz@TestEnum.test_subclass_duplicate_name_dynamic.<locals>.Base.testNr�rr�rrr���r�c@r$)z;TestEnum.test_subclass_duplicate_name_dynamic.<locals>.TestrNr�rrrrr��r'r�r�)�typesr�rr�rnr�rr�r�$test_subclass_duplicate_name_dynamic�sz-TestEnum.test_subclass_duplicate_name_dynamiccCs`Gdd�dt�}Gdd�d|�}|�t��Gdd�d|�}Wd�dS1s)wYdS)Nc@r�)z/TestEnum.test_no_duplicates.<locals>.UniqueEnumcsB�j}t�fdd�|D��r�j}|�j�j}td||f��dS)Nc3s�|]	}�j|jkVqdSrfr�)rr�r�rr�	<genexpr>�s�zKTestEnum.test_no_duplicates.<locals>.UniqueEnum.__init__.<locals>.<genexpr>z-aliases not allowed in UniqueEnum:  %r --> %r)r��anyr�r�r�)rMrKr�rRr�rr�rrk�s���z8TestEnum.test_no_duplicates.<locals>.UniqueEnum.__init__N�rrrrkrrrr�
UniqueEnum�r�r�c@r�z*TestEnum.test_no_duplicates.<locals>.ColorrrrNrrrrrr�r rc@seZdZdZdZdZdZdSr�)rrrrrrZgrenerrrrr�rw)rr�r�)rMr�rrrr�test_no_duplicates�s

"�zTestEnum.test_no_duplicatescCs:Gdd�dt�}|�t|jjd�d�|�|jjd�dS)Nc@s@eZdZdZdZdZdZdZdZdZ	dZ
d	d
�Zedd��Z
d
S)z"TestEnum.test_init.<locals>.Planet)gI�Tf|�Dg
�BA)g�QX4Eg�WA�g�o��Eg�TXA)g���	��Dg(�IA)g�c�����Eg���A)g�[�\h}Eg,A)g#'?�T�QEg��_xA)g�J��-UEg��wAcSs||_||_dSrf��mass�radius)rMr�r�rrrrk�s
z+TestEnum.test_init.<locals>.Planet.__init__cSsd}||j|j|jS)Ng
yдW�=r�)rMr{rrr�surface_gravity�sz2TestEnum.test_init.<locals>.Planet.surface_gravityN)rrrZMERCURYZVENUS�EARTHZMARSZJUPITERZSATURNZURANUSZNEPTUNErkrr�rrrr�Planet�sr�rg������#@r�)rr��roundr�r�r�)rMr�rrr�	test_init�szTestEnum.test_initcCs|Gdd�dtt�}|�t|d��|�t|d��|�t|d��|�t|jt��|�|j|ju�|�|j	|j
u�dS)Nc@s�eZdZdZdd�ZdZe�Zed�D]Z	e	ddfede	<qed	�D]Z	e	d
dfede	<q$ed
�D]
Z	e	dfede	<q5e
ZeZ
eZdS)z$TestEnum.test_ignore.<locals>.Periodz3
            different lengths of time
            cSr�rf)rr�r��period)r�r�r�r=rrrr��r�z,TestEnum.test_ignore.<locals>.Period.__new__zPeriod i�
r�r�zmonth_%d�5ryZweekzweek_%d� Zdayzday_%dN)rrrr&r��_ignore_�varsr�r7r��day_1ZOneDayZweek_1ZOneWeek�month_1ZOneMonthrrrrr��sr�r�r�)rrrHr�rLr�r�r�Zday_30Zweek_4Zday_28r�rrr�test_ignore�szTestEnum.test_ignorecCs�Gdd�dt�}Gdd�d|�}|�t|�|j|j|jg�t|td��D]\}}|d7}|�|j|g�|�	||g�|�q%dS)Nc@r�)z6TestEnum.test_nonhash_value.<locals>.AutoNumberInAListcSs$t|j�dg}t�|�}||_|Sr�r�r�rrrr�s
z>TestEnum.test_nonhash_value.<locals>.AutoNumberInAList.__new__Nr�rrrr�AutoNumberInAListr�r�c@r�)z1TestEnum.test_nonhash_value.<locals>.ColorInAListrNrrrrr�ColorInAListr r�rr)
rr�r�rrr�zipr7r�r�)rMr�r�rIr�rrr�test_nonhash_value�s�zTestEnum.test_nonhash_valuecCs^Gdd�dtt�}Gdd�d|�}|�t|�|j|jg�|�|jd�|�|d�|j�dS)Nc@r�)zHTestEnum.test_conflicting_types_resolved_in_new.<locals>.LabelledIntEnumcWs$|\}}t�||�}||_||_|Srf)r�r��labelr�)r�rKr�r�r=rrrr�s
zPTestEnum.test_conflicting_types_resolved_in_new.<locals>.LabelledIntEnum.__new__Nr�rrrr�LabelledIntEnumr�r�c@r()zETestEnum.test_conflicting_types_resolved_in_new.<locals>.LabelledList)rZUnprocessed)rzPayment CompleteN)rrr�unprocessed�payment_completerrrr�LabelledListr,r�r)r�rr�r�r�r�)rMr�r�rrr�&test_conflicting_types_resolved_in_news
z/TestEnum.test_conflicting_types_resolved_in_newcC�`Gdd�dt�}|�t|�|j|j|jg�|�|jjd�|�|jjd�|�|jjd�dS)Nc@�eZdZe�Ze�Ze�ZdS)z(TestEnum.test_auto_number.<locals>.ColorN�rrrr	rrrrrrrr"�
rrrr�rr�r�rrrr�r rrr�test_auto_number!�
zTestEnum.test_auto_numbercCr�)Nc@s&eZdZdd�Ze�Ze�Ze�ZdS)z&TestEnum.test_auto_name.<locals>.ColorcS�|Srfr�r�r��countZlastrrr�_generate_next_value_.r�z<TestEnum.test_auto_name.<locals>.Color._generate_next_value_N)rrrr�r	rrrrrrrr-s

rrrrr�r rrr�test_auto_name,s
zTestEnum.test_auto_namecCspGdd�dt�}Gdd�d|�}|�t|�|j|j|jg�|�|jjd�|�|jjd�|�|jjd�dS)Nc@r�)z5TestEnum.test_auto_name_inherit.<locals>.AutoNameEnumcSr�rfrr�rrrr�;r�zKTestEnum.test_auto_name_inherit.<locals>.AutoNameEnum._generate_next_value_N)rrrr�rrrr�AutoNameEnum:r�r�c@r�)z.TestEnum.test_auto_name_inherit.<locals>.ColorNr�rrrrr=r�rrrrr�)rMr�rrrr�test_auto_name_inherit9szTestEnum.test_auto_name_inheritcCs$Gdd�dt�}|�|jjd�dS)Nc@�eZdZdZe�ZdS)z)TestEnum.test_auto_garbage.<locals>.ColorrN�rrrrr	rrrrrrH�
rr)rr�rr�r rrr�test_auto_garbageGszTestEnum.test_auto_garbagecCr�)Nc@seZdZdZdZe�ZdS)z3TestEnum.test_auto_garbage_corrected.<locals>.ColorrrN)rrrrrr	rrrrrrNs
rrrrr�r rrr�test_auto_garbage_correctedMr�z$TestEnum.test_auto_garbage_correctedcCs@|�t��Gdd�dt�}Wd�dS1swYdS)Nc@s&eZdZe�Ze�Ze�Zdd�ZdS)z'TestEnum.test_auto_order.<locals>.ColorcSr�rfrr�rrrr�^r�z=TestEnum.test_auto_order.<locals>.Color._generate_next_value_N)rrrr	rrrr�rrrrrZs
rrr rrr�test_auto_orderXs"�zTestEnum.test_auto_ordercs\t��d�_G�fdd�dt�}|�t|�|j|jg�|�|jjd�|�|jjd�dS)Nzpathological casecseZdZ�Zdd�Ze�ZdS)z-TestEnum.test_auto_order_wierd.<locals>.ColorcSr�rfrr�rrrr�fr�zCTestEnum.test_auto_order_wierd.<locals>.Color._generate_next_value_N)rrrrr�r	rr�Z
weird_autorrrds
rr)r	r�rr�r�rrr rr�r�test_auto_order_wierdaszTestEnum.test_auto_order_wierdcC�0Gdd�dt�}|�|j|j|jgt|��dS)Nc@�"eZdZe�ZZe�Ze�ZdS)z+TestEnum.test_duplicate_auto.<locals>.DupesN�rrrr	r�Zprimeror�r�rrrr�Dupesn�

r��rr�r�r�r�r��rMr�rrr�test_duplicate_autom� zTestEnum.test_duplicate_autoc
CsZGdd�dt�}z	|d�Wtd��ty,}z|�|jdu�WYd}~dSd}~ww)Nc@r)z,TestEnum.test_default_missing.<locals>.ColorrrrN)rrrrWrXrYrrrrrur rry�Exception not raised.)rr�rL�__context__r��rMr�excrrr�test_default_missingts
���zTestEnum.test_default_missingc
CsGdd�dt�}|�|d�|j�z	|d�Wtd��ty4}z|�|jdu�WYd}~nd}~wwz	|d�Wtd��tyY}z|�t|jt��WYd}~nd}~wwz	|d�Wtd��t	y}z|�t|jt��WYd}~dSd}~ww)Nc@s$eZdZdZdZdZedd��ZdS)z$TestEnum.test_missing.<locals>.ColorrrrcSs*|dkr|jS|dkr
dS|dkrt�dS)Nr�
bad returnr~�	error out)r�ZeroDivisionError)r��itemrrr�	_missing_�sz.TestEnum.test_missing.<locals>.Color._missing_N)rrrrrr�classmethodr�rrrrr�srrryr�r�r�)
rr�rr�rLr�r�r�r�r�r�rrr�test_missing�s.
���
���
� ��zTestEnum.test_missingcsrddl}Gdd�dtj��Gdd�d�}G�fdd�d�}|�|��}|�|��}|�|�d�|�|�d�dS)Nrc@r()z8TestEnum.test_missing_exceptions_reset.<locals>.TestEnumZval1Zval2N)rrrZVAL1ZVAL2rrrrro�r,roc@r�)z6TestEnum.test_missing_exceptions_reset.<locals>.Class1cSszt��ty
YdSwrf�r�r�rrrrk�s
�z?TestEnum.test_missing_exceptions_reset.<locals>.Class1.__init__Nr�rrrr�Class1�r�rcseZdZ�fdd�ZdS)z6TestEnum.test_missing_exceptions_reset.<locals>.Class2cs$z�d�WdStyYdSw)NZ
invalid_valuerr��rorrrk�s
�z?TestEnum.test_missing_exceptions_reset.<locals>.Class2.__init__Nr�rrrr�Class2�sr)�weakrefrIr�refr�)rMrrrZclass_1_refZclass_2_refrrr�test_missing_exceptions_reset�sz&TestEnum.test_missing_exceptions_resetcCs�Gdd�d�}Gdd�d�}Gdd�dt�}Gdd�dt�}Gd	d
�d
|t�}|�|jjd�|�|jjd�|�|jjd
�|�|jd
�|�t|j�d�Gdd
�d
||t�}|�|jjd�|�|jjd�|�|jjd
�|�|jd
�|�t|j�d�Gdd
�d
||t�}|�|jjd�|�|jjd�|�|jjd
�|�|jd
�|�t|j�d�Gdd�d||t�}|�|jjd�|�|jjd�|�|jjd
�|�t|j�d�|�|j��d�Gdd�d||t�}|�|jjd�|�|jjd�|�|jjd
�|�t|j�d�|�|j��d�|�|j�	�d�Gdd�d|||�}|�|jjd�|�|jjd�|�|jjd
�|�t|j�d�|�|j��d�|�|j�	�d�Gdd�d|||�}	|�|	jjd�|�|	jjd�|�|	jjd
�|�t|	j�d�|�|	j��d�|�|	j�	�d�Gdd�d|t
||�}
|�|
jjd�|�|
jjd�|�|
jjd
�|�t|
j�d�|�|
j��d�|�|	j�	�d�|�t|
t
��dS)Nc@�eZdZedd��ZdS)z.TestEnum.test_multiple_mixin.<locals>.MaxMixincSst|�}||_|Srf)r��MAX)r��maxrrrr	�sz2TestEnum.test_multiple_mixin.<locals>.MaxMixin.MAXN)rrrrer	rrrr�MaxMixin�r�rc@r�)z.TestEnum.test_multiple_mixin.<locals>.StrMixincS�
|j��Srf�rT�lowerr�rrrr.�rnz6TestEnum.test_multiple_mixin.<locals>.StrMixin.__str__Nr^rrrr�StrMixin�r�rc@r�)z.TestEnum.test_multiple_mixin.<locals>.SomeEnumcSr�)N�booyahrr�rrr�behavior�r�z7TestEnum.test_multiple_mixin.<locals>.SomeEnum.behaviorN)rrrrrrrr�SomeEnum�r�rc@r�)z1TestEnum.test_multiple_mixin.<locals>.AnotherEnumcSr�)N�nuhuh!rr�rrrr�r�z:TestEnum.test_multiple_mixin.<locals>.AnotherEnum.behaviorcSr�)N�
what's up?rr�rrr�social�r�z8TestEnum.test_multiple_mixin.<locals>.AnotherEnum.socialN)rrrrrrrrr�AnotherEnum�src@r��z+TestEnum.test_multiple_mixin.<locals>.ColorN�rrrr	rWrXrYrrrrr�r�rrrr�
Color.BLUEc@r�rrrrrrr�r�rc@r�rrrrrrr�r�c@r�)z/TestEnum.test_multiple_mixin.<locals>.CoolColorNrrrrr�	CoolColor�r�rrc@r�)z1TestEnum.test_multiple_mixin.<locals>.CoolerColorNrrrrr�CoolerColor�r�rrrc@r�)z2TestEnum.test_multiple_mixin.<locals>.CoolestColorNrrrrr�CoolestColorr�rc@r�)z3TestEnum.test_multiple_mixin.<locals>.ConfusedColorNrrrrr�
ConfusedColorr�rc@r�)z3TestEnum.test_multiple_mixin.<locals>.ReformedColorNrrrrr�
ReformedColorr�r)rr�rWr�rXrYr	r�rrrrL�
issubclassr�)rMrrrrrrrrrrrrr�test_multiple_mixin�srzTestEnum.test_multiple_mixincCsNGdd�dtt�}tGdd�d|��}Gdd�d|�}tGdd�d|��}dS)	Nc@r�)z7TestEnum.test_multiple_inherited_mixin.<locals>.StrEnumc_sB|D]}t|t�std|t|�jf��qtj|g|�Ri|��S)Nz%Enumeration '%s' (%s) is not a string)r�r�r�r�rr�)r�rK�kwargsrRrrrr�'s
��z?TestEnum.test_multiple_inherited_mixin.<locals>.StrEnum.__new__Nr�rrrrr%&r�r%c@r)z9TestEnum.test_multiple_inherited_mixin.<locals>.Decision1�REVERT�
REVERT_ALL�RETRYN�rrrr"r#r$rrrr�	Decision1-�r&c@rA)z6TestEnum.test_multiple_inherited_mixin.<locals>.MyEnumNrBrrrrrr2rDrrc@r)z9TestEnum.test_multiple_inherited_mixin.<locals>.Decision2r"r#r$Nr%rrrr�	Decision24r'r()r�rr)rMr%r&rrr(rrr�test_multiple_inherited_mixin%sz&TestEnum.test_multiple_inherited_mixincCs�Gdd�dt�}Gdd�d�}Gdd�d||tj�}Gdd�d|�}|�t|j|��|�t|j�d	�Gd
d�d|�}|�|jd�dS)
NcseZdZ�fdd�Z�ZS)z5TestEnum.test_multiple_mixin_inherited.<locals>.MyIntcst��||�Srf)r.r�rwr8rrr�<r�z=TestEnum.test_multiple_mixin_inherited.<locals>.MyInt.__new__r5rrr8rr�;sr�c@r�)z8TestEnum.test_multiple_mixin_inherited.<locals>.HexMixincSrkrfrlr�rrrrU@rnzATestEnum.test_multiple_mixin_inherited.<locals>.HexMixin.__repr__Nrorrrr�HexMixin?r�r*c@rA)z9TestEnum.test_multiple_mixin_inherited.<locals>.MyIntEnumNrBrrrrr'CrDr'c@r$)z3TestEnum.test_multiple_mixin_inherited.<locals>.FoorN)rrr�TESTrrrr�FooFr'r,Z0x1c@seZdZdZdd�ZdS)z3TestEnum.test_multiple_mixin_inherited.<locals>.FeercSs|d7}t�||�}||_|Sr�)r�r�r�)r�r�r�rrrr�Msz;TestEnum.test_multiple_mixin_inherited.<locals>.Fee.__new__N)rrrr+r�rrrr�FeeKrpr-r)r�rIrrLr�r+r�r�)rMr�r*r'r,r-rrr�test_multiple_mixin_inherited:sz&TestEnum.test_multiple_mixin_inheritedcCs(d}t|dd�}i}i}t|||�dS)Nz8from enum import Enum; Enum('Animal', 'ANT BEE CAT DOG')z<string>�exec)�compiler/)rM�codeZ	global_nsZlocal_lsrrr�test_empty_globalsTs
zTestEnum.test_empty_globals�rr�z+private variables are now normal attributescCs�|�t��Gdd�dt�}Wd�n1swY|�|jjd�z"|�t��Gdd�dt�}Wd�WdS1s@wYWdStyQYdSw)Nc@r$)�<TestEnum.test_warning_for_private_variables.<locals>.Private�RadarN)rrr�_Private__corporalrrrr�Privatecr'r7r5c@r$)r4ZHoolihanN)rrrZ_Private__major_rrrrr7hr')rrrr�r6r�r�)rMr7rrr�"test_warning_for_private_variables]s�&��z+TestEnum.test_warning_for_private_variablesN)�rrrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��unittest�skipIf�python_versionrrr
rr!r#r+r1r;r?rCrGrJrKrLrNrPrQr\rhrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrr#r%r&r(rArqrtrxrzr~rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr r)r.r2�
skipUnlessr8rrrrro�s#	�
�

				.		
	
	
				


%999957


	% `	�roc@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�	TestOrdercC�Gdd�dt�}dS)Nc@rp)z*TestOrder.test_same_members.<locals>.Color�red green bluerrrN�rrr�_order_rrrrrrrrqrwr�rr rrr�test_same_memberspr�zTestOrder.test_same_memberscCr>)Nc@� eZdZdZdZdZdZeZdS)z7TestOrder.test_same_members_with_aliases.<locals>.Colorr?rrrN�rrrrArrr�verderrrrrxr�rrBr rrr�test_same_members_with_aliaseswr�z(TestOrder.test_same_members_with_aliasescC�B|�td��Gdd�dt�}Wd�dS1swYdS)N�#member order does not match _order_c@rp)z6TestOrder.test_same_members_wrong_order.<locals>.Colorr?rrrN)rrrrArrrrrrrr�rwr�r�r�rr rrr�test_same_members_wrong_order�"�z'TestOrder.test_same_members_wrong_ordercCrH)NrIc@rp)z5TestOrder.test_order_has_extra_members.<locals>.Color�red green blue purplerrrNr@rrrrr�rwrrJr rrr�test_order_has_extra_members�rLz&TestOrder.test_order_has_extra_memberscCrH)NrIc@rD)zBTestOrder.test_order_has_extra_members_with_aliases.<locals>.ColorrMrrrNrErrrrr�r�rrJr rrr�)test_order_has_extra_members_with_aliases�rLz3TestOrder.test_order_has_extra_members_with_aliasescCrH)NrIc@r})z4TestOrder.test_enum_has_extra_members.<locals>.Colorr?rrrrqN)rrrrArrr�purplerrrrr�r�rrJr rrr�test_enum_has_extra_members�rLz%TestOrder.test_enum_has_extra_memberscCrH)NrIc@s$eZdZdZdZdZdZdZeZdS)zATestOrder.test_enum_has_extra_members_with_aliases.<locals>.Colorr?rrrrqN)	rrrrArrrrPrFrrrrr�srrJr rrr�(test_enum_has_extra_members_with_aliases�rLz2TestOrder.test_enum_has_extra_members_with_aliasesN)
rrrrCrGrKrNrOrQrRrrrrr=ns		r=c@s.eZdZdZGdd�de�ZGdd�de�ZGdd�de�Zdd	�Zd
d�Z	dd
�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Ze�ed$kd%�d&d'��Ze�ed$kd(�d)d*��Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Z d7d8�Z!e"j#d9d:��Z$d;d<�Z%d=S)>�TestFlagzTests of the Flags.c@seZdZd\ZZZdS)z
TestFlag.Perm)rqrrN)rrr�R�W�Xrrrr�Perm�r�rWc@r})z
TestFlag.Openrrrr�N�rrr�RO�WO�RW�AC�CErrrr�Open�r�r_c@�$eZdZdZdZdZdZeeBZdS)zTestFlag.ColorrrrrqN�rrr�BLACKrWrXrYZPURPLErrrrr��rcC��|j}|�t|j�d�|�t|j�d�|�t|j�d�|�t|j|jB�d�|�t|j|jB|jB�d�|�t|d��d�|�t|j�d�|�t|j�d	�|�t|j�d�|�t|j|jB�d�|�t|j|jB|jB�d�|�t|d
��d�|j}|�t|j�d�|�t|j�d�|�t|j	�d
�|�t|j|j
B�d�|�t|j|j
B�d�|�t|j�d�|�t|j�d�|�t|j	�d�|�t|j|j
B�d
�|�t|j|j
B�d�dS)N�Perm.R�Perm.W�Perm.X�Perm.R|W�
Perm.R|W|Xr�Perm.0�Perm.W|X�Perm.R|X����Open.RO�Open.WO�Open.AC�Open.CE�
Open.CE|WO�Open.CE|AC|RW|WO�
Open.CE|RW�Open.RW�rWr�r�rTrUrVr_rZr[r]r^�rMrWr_rrr�test_str��0 zTestFlag.test_strcCrd)N�<Perm.R: 4>�<Perm.W: 2>�<Perm.X: 1>�
<Perm.R|W: 6>�<Perm.R|W|X: 7>r�<Perm.0: 0>z
<Perm.W|X: 3>z
<Perm.R|X: 5>rm�<Open.RO: 0>�<Open.WO: 1>�<Open.AC: 3>�<Open.CE: 524288>�<Open.CE|WO: 524289>z<Open.CE|AC|RW|WO: 524291>z<Open.CE|RW: 524290>z<Open.RW: 2>�rWr�r�rTrUrVr_rZr[r]r^rwrrr�	test_repr�ryzTestFlag.test_reprcC�8|j}|�t|jd�d�|�t|j|jBd�d�dS)Nr�rerl�rWr�r�rTrV�rMrWrrr�test_format��zTestFlag.test_formatcCs�|j}|D],}|D]'}|�||B||j|jB��|�||Bj|j|jB�|�t||B�|�q	q|D]
}|�||B|�q4|j}|�|j|jB|j�dSrf�rWr�r�r�r�r_rZr^�rMrWr��jr_rrr�test_or�s�zTestFlag.test_orc
Cs�|j}|j|jB}|j|jB}|j|jB}|j|jB|jB}t|�|||||d�g}|D]}|D]}|�||@j|j|j@�|�t||@�|�q1q-|D]}|�||@|�|�||@|�|�||@|�qN|j	}	|�|	j
|	j@|	j
�dS�Nr)rWrTrUrVr�r�r�r�r�r_rZr^�
rMrWr\�RX�WX�RWX�valuesr�r�r_rrr�test_and	s"�zTestFlag.test_andcCs�|j}|D]}|D]}|�||Aj|j|jA�|�t||A�|�q	q|D]}|�||d�A|�|�|d�|A|�q&|j}|�|j|jA|j�|�|j|jA|j�dSr�r�r�rrr�test_xor	s�zTestFlag.test_xorc	Cs�|j}|j|jB}|j|jB}|j|jB}|j|jB|jB}t|�|||||d�g}|D]}|�t|�|�|�||�q-|D]
}|�||�qC|j}|�|j	|j	@|j
�|�|j	|jB|j	@|j�dSr�)rWrTrUrVr�r�r�r�r_r[rZr^�	rMrWr\r�r�r�r�r�r_rrr�test_invert&	s"zTestFlag.test_invertcC�D|j}|D]}|�|�q|j}|D]
}|�t|j�t|��qdSrf�rWrLr_r�r�r��rMrW�fr_rrrr�6	��zTestFlag.test_boolcCs�tdd�}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�td���D]1\}}d|>}||�}|�|j	|�|�t
|j	�t�|�|j|�|�
||�|�t
|�|�q.dS�NrW�R W Xrr�rr�r�r�rTrUrVr�r�r�r�r�r�r�r��rMrWr�r��nrr�rrr� test_programatic_function_string>	s
�z)TestFlag.test_programatic_function_stringcCs�tdddd�}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�td���D]1\}}d|>}||�}|�|j	|�|�t
|j	�t�|�|j|�|�
||�|�t
|�|�q0dS�NrWr�rzr�rr�r�rrr�+test_programatic_function_string_with_startM	��z4TestFlag.test_programatic_function_string_with_startcCs�tdgd��}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�td���D]1\}}d|>}||�}|�|j	|�|�t
|j	�t�|�|j|�|�
||�|�t
|�|�q0dS�NrW)rTrUrVrr�rr�r�rrr�%test_programatic_function_string_list\	r�z.TestFlag.test_programatic_function_string_listcCs�tdd�}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�td���D]5\}}dd|d>}||�}|�|j	|�|�t
|j	�t�|�|j|�|�
||�|�t
|�|�q.dS�NrW))rTr)rUrz)rVr�rr�rrr�r�rrr�"test_programatic_function_iterablek	s
�z+TestFlag.test_programatic_function_iterablecCs�tdtd��}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�td�	��D]5\}}dd|d>}||�}|�|j
|�|�t|j
�t�|�|j
|�|�||�|�t|�|�q0dSr�)rrr�r�r�rTrUrVr�r�r�r�r�r�r�r�r�rrr�#test_programatic_function_from_dictz	s�z,TestFlag.test_programatic_function_from_dictcCs2ttt�rt�t|jtjtjB�t|jt�dSrf)r�r#r�r;r�rrr�rrr�test_pickle�	s
zTestFlag.test_pickler�r�c	Cs�|j}|j}|�|j|v�|�|j|v�|�t��!|�t��d|vWd�n1s0wYWd�n1s?wY|�t��!|�t��d|vWd�n1s^wYWd�n1smwY|�t��!|�t��d|vWd�n1s�wYWd�n1s�wY|�t��*|�t��d|vWd�n1s�wYWd�dSWd�dS1s�wYdS�NrbrZr)	r_rrHrbrZr�r�rr�rMr_rrrrr�	s:
���
���
���
��"�zTestFlag.test_contains_errcCsh|j}|j}|�|j|v�|�|j|v�|�d|v�|�d|v�|�d|v�|�d|v�dSr�)r_rrHrbrZrLr�rrrr�	szTestFlag.test_contains_tfc	Cs�|j}|\}}}||B}||B}||B}||B|B}|�||v�|�||v�|�||v�|�||v�|�||v�|�||v�|�||v�|�||v�|�||v�|�||v�|�||v�|�||v�dSrf)rWrLrH�	rMrWrTrUrVr\r�r�r�rrr�test_member_contains�	s$
zTestFlag.test_member_containscCr�)Nc@r�)z(TestFlag.test_auto_number.<locals>.ColorNr�rrrrr�	r�rrrrq)rr�r�rrrr�r rrrr��	r�zTestFlag.test_auto_numbercCrH)Nz Invalid Flag value: .not an int.c@r�)z0TestFlag.test_auto_number_garbage.<locals>.Colorz
not an intNr�rrrrr�	r�r)r�r�rr rrr�test_auto_number_garbage�	rLz!TestFlag.test_auto_number_garbagecCs�Gdd�dt�}d}|�td||d�|�td||d�|�td||d�|�td||d�|�td||d	�|�td||d	�dS)
Nc@r)�0TestFlag.test_cascading_failure.<locals>.BizarrerrqruN)rrrr��dr�rrrr�Bizarre�	r r�r�z5 is not a valid r~z2 is not a valid rz1 is not a valid r)rr�r�)rMr�r�rrr�test_cascading_failure�	szTestFlag.test_cascading_failurecCr�)Nc@r�)z+TestFlag.test_duplicate_auto.<locals>.DupesNr�rrrrr��	r�r�r�r�rrrr��	r�zTestFlag.test_duplicate_autocCs(Gdd�dt�}|�t|d��d�dS)Nc@r)z&TestFlag.test_bizarre.<locals>.BizarrerrqruN)rrrr�r�r�rrrrr��	r r�ryz<Bizarre.d|c|b: 7>)rr�r�)rMr�rrr�test_bizarre�	szTestFlag.test_bizarrecC�PGdd�d�}Gdd�d�}Gdd�d|t�}|�|jjd�|�|jjd�|�|jjd	�|�|jjd
�|�t|j�d�Gdd�d||t�}|�|jjd�|�|jjd�|�|jjd	�|�|jjd
�|�t|j�d
�Gdd�d||t�}|�|jjd�|�|jjd�|�|jjd	�|�|jjd
�|�t|j�d
�dS)Nc@r)z.TestFlag.test_multiple_mixin.<locals>.AllMixincS�<t|�}d}|r|d}|dd�D]}||O}q||_|Sr*�r��ALL�r��membersZ	all_valuer�rrrr��	�
z2TestFlag.test_multiple_mixin.<locals>.AllMixin.ALLN�rrrrer�rrrr�AllMixin�	r�r�c@r�)z.TestFlag.test_multiple_mixin.<locals>.StrMixincSrrfr
r�rrrr.
rnz6TestFlag.test_multiple_mixin.<locals>.StrMixin.__str__Nr^rrrrr
r�rc@r��z+TestFlag.test_multiple_mixin.<locals>.ColorNrrrrrr
r�rrrrqryrc@r�r�rrrrrr
r�rc@r�r�rrrrrr
r�)rr�rWr�rXrYr�r��rMr�rrrrrr �	�(zTestFlag.test_multiple_mixinc�Gdd�dt��t��d����fdd���fdd�td�D�}t�|��Wd�n1s0wY|��d	�|�d
t��d�dS)Nc@�LeZdZe�Ze�Ze�Ze�Ze�Ze�Z	e�Z
e�Zdd�Zdd�Z
dS)z0TestFlag.test_unique_composite.<locals>.TestFlagcS�||uSrfrr�rrrr�,
rnz7TestFlag.test_unique_composite.<locals>.TestFlag.__eq__cSr�rf��hashr�r�rrr�__hash__.
rnz9TestFlag.test_unique_composite.<locals>.TestFlag.__hash__N�rrrr	r�r�rZfourZfiveZsixZsevenZeightr�r�rrrrrS#
�rSFc�<ztd�D]	}���|��qWdStyd�YdSw�N�T�r7�addr��r��rS�failed�seenrr�
cycle_enum3
��
�z2TestFlag.test_unique_composite.<locals>.cycle_enumc�g|]}tj�d��qS�)r:��	threading�Thread�rrZ�r�rrr:
�
��z2TestFlag.test_unique_composite.<locals>.<listcomp>rz�;at least one thread failed while creating composite membersr��"too many composite members created)rr�r7r�
start_threadsrHr�r��rM�threadsr�rSr�r�r�r�test_unique_composite 
�
���zTestFlag.test_unique_compositecs:G�fdd�dt�}G�fdd�d|��Gdd�d��}Gdd�d|�}���jd	d���|jd	d���|jd
d���|j�d	d����|j�d
d��Gdd
�d
|�}Gdd�d|�}Gdd�d|�}��|jd	d���|j�d	d����|jd
d
���|j�d	d����|j�d
d��dS)Ncr))z+TestFlag.test_init_subclass.<locals>.MyEnumcs0t�jdi|����|j�dd��d|_dS)N�_testFrrr)r.�__init_subclass__rH�__dict__�get�_test1�r��kwds)r�rMrrr�H
s
z=TestFlag.test_init_subclass.<locals>.MyEnum.__init_subclass__�rrrr�r6rr�r8rrrG
r9rrcseZdZ��fdd�Z�ZS)z.TestFlag.test_init_subclass.<locals>.TheirEnumcs t�|�jdi|��d|_dS)N�	TheirEnumr)r.r��_test2r�)r�r�rrr�N
s
z@TestFlag.test_init_subclass.<locals>.TheirEnum.__init_subclass__r�r)r�r8rr�M
r9r�c@r�)z.TestFlag.test_init_subclass.<locals>.WhoseEnumc[r�rfrr�rrrr�R
r�z@TestFlag.test_init_subclass.<locals>.WhoseEnum.__init_subclass__N�rrrr�rrrr�	WhoseEnumQ
r�r�c@r$)z+TestFlag.test_init_subclass.<locals>.NoEnumrN�rrrr�rrrr�NoEnumT
r'r�r�r�Fc@r�)z,TestFlag.test_init_subclass.<locals>.OurEnumc[s
d|_dS)N�OurEnum)r�r�rrrr�]
rnz>TestFlag.test_init_subclass.<locals>.OurEnum.__init_subclass__Nr�rrrrr�\
r�r�c@r�)z.TestFlag.test_init_subclass.<locals>.WhereEnumc[r�rfrr�rrrr�`
r�z@TestFlag.test_init_subclass.<locals>.WhereEnum.__init_subclass__Nr�rrrr�	WhereEnum_
r�r�c@r$)z.TestFlag.test_init_subclass.<locals>.NeverEnumrNr�rrrr�	NeverEnumb
r'r�)rr�r�rHr�)rMrrr�r�r�r�r�r)r�rMr�test_init_subclassF
s"zTestFlag.test_init_subclassN)&rrrr&rrWr_rrxr�r�r�r�r�r�r�r�r�r�r�r�r�r9r:r;rrr�r�r�r�r�r�r r�reap_threadsr�r�rrrrrS�sN
�
�
+
%rSc@seZdZdZGdd�de�ZGdd�de�ZGdd�de�Zdd	�Zd
d�Z	dd
�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Ze�ed&kd'�d(d)��Ze�ed&kd*�d+d,��Zd-d.�Zd/d0�Zd1d2�Zej d3d4��Z!d5S)6�TestIntFlagzTests of the IntFlags.c@r)zTestIntFlag.PermrrrqN)rrrrVrUrTrrrrrWn
r rWc@r})zTestIntFlag.OpenrrrrrXNrYrrrrr_s
r�r_c@r`)zTestIntFlag.ColorrrrrqNrarrrrrz
rcrcCs�|j}|�|jtu�|j}|D]}|�t||��|�||j�q|�t|j|j	B|��|�|j|j	Bd�|D]}|�t||��|�||j�q:|�t|j
|jB|��|�|j
|jBd�dS)Nr)rWrLrgr�r_r�r�r�rUrVr[r\)rMrWr_r�rrr�	test_type�
szTestIntFlag.test_typecCsn|j}|�t|j�d�|�t|j�d�|�t|j�d�|�t|j|jB�d�|�t|j|jB|jB�d�|�t|jdB�d�|�t|d��d	�|�t|d��d
�|�t|j�d�|�t|j�d�|�t|j�d�|�t|j|jB�d�|�t|j|jB|jB�d
�|�t|jdB�d�|�t|d��d�|�t|d��d�|j}|�t|j�d�|�t|j�d�|�t|j	�d�|�t|j|j
B�d�|�t|j|j
B�d�|�t|d��d�|�t|j�d�|�t|j�d�|�t|j	�d�|�t|j|j
B�d�|�t|j|j
B�d�|�t|d��d�dS)NrerfrgrhrirzzPerm.8|RrrjzPerm.8rkrlzPerm.-8rm���rnrorprqrrrqzOpen.4rsrtz
Open.AC|RW|WOru���rvrwrrrrx�
�< zTestIntFlag.test_strcCsn|j}|�t|j�d�|�t|j�d�|�t|j�d�|�t|j|jB�d�|�t|j|jB|jB�d�|�t|jdB�d�|�t|d��d	�|�t|d��d
�|�t|j�d�|�t|j�d�|�t|j�d
�|�t|j|jB�d�|�t|j|jB|jB�d�|�t|jdB�d�|�t|d��d�|�t|d��d�|j}|�t|j�d�|�t|j�d�|�t|j	�d�|�t|j|j
B�d�|�t|j|j
B�d�|�t|d��d�|�t|j�d�|�t|j�d�|�t|j	�d�|�t|j|j
B�d�|�t|j|j
B�d �|�t|d!��d"�dS)#Nrzr{r|r}r~rzz<Perm.8|R: 12>rrz<Perm.8: 8>z<Perm.W|X: -5>z<Perm.R|X: -3>z<Perm.R|W: -2>z<Perm.X: -7>z
<Perm.-8: -8>z<Perm.W|X: -13>rmz<Perm.R|W|X: -1>r�z<Perm.R|W|X: -9>r�r�r�r�r�rqz<Open.4: 4>z<Open.CE|AC|RW|WO: -1>z<Open.CE|RW: -2>z
<Open.CE: -4>z<Open.AC|RW|WO: -524289>z<Open.RW: -524290>r�z<Open.CE|AC|RW|WO: -5>r�rwrrrr��
r�zTestIntFlag.test_reprcCr�)Nr��4�5r�r�rrrr��
r�zTestIntFlag.test_formatcCsL|j}|D]s}|D]%}|�||B|j|jB�|�||Bj|j|jB�|�t||B�|�q	td�D]D}|�||B|j|B�|�||Bj|j|B�|�t||B�|�|�||B||jB�|�||Bj||jB�|�t||B�|�q3q|D]}|�||B|�|�|dB|�|�d|B|�q{|j}|�|j|jB|j�dS�Nrzr�	rWr�r�r�r�r7r_rZr^r�rrrr��
s(�zTestIntFlag.test_orc
	Cs�|j}|j|jB}|j|jB}|j|jB}|j|jB|jB}t|�|||||d�g}|D]�}|D]4}|�||@|j|j@d||f�|�||@j|j|j@d||f�|�t||@�|d||f�q1t	d�D]D}|�||@|j|@�|�||@j|j|@�|�t||@�|�|�||@||j@�|�||@j||j@�|�t||@�|�qjq-|D]}|�||@|�|�|d@|�|�d|@|�q�|j
}	|�|	j|	j@|	j�dS)Nrzi is %r, j is %rrzry)
rWrTrUrVr�r�r�r�r�r7r_rZr^r�rrrr��
s2"$ �zTestIntFlag.test_andcCsR|j}|D]s}|D]%}|�||A|j|jA�|�||Aj|j|jA�|�t||A�|�q	td�D]D}|�||A|j|A�|�||Aj|j|A�|�t||A�|�|�||A||jA�|�||Aj||jA�|�t||A�|�q3q|D]}|�|dA|�|�d|A|�q{|j}|�|j|jA|j�|�|j|jA|j�dSrrr�rrrr�s(�zTestIntFlag.test_xorc	Cs|j}|j|jB}|j|jB}|j|jB}|j|jB|jB}t|�|||||d�g}|D]&}|�||j�|�|j|j�|�t|�|�|�||�q-|D]
}|�||�qV|j	}|�|j
|j
@|j�|�|j
|jB|j
@|j�dSr�)
rWrTrUrVr�r�r�r�r�r_r[rZr^r�rrrr�s "zTestIntFlag.test_invertcCs�tdd�}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�td���D]7\}}d|>}||�}|�|j	|�|�t
|j	�t�|�||�|�|j|�|�
||�|�t
|�|�q.dSr��rr�r�r�rTrUrVr�r�r�r�r�r�r�r�r�rrrr�.s
�z,TestIntFlag.test_programatic_function_stringcCs�tdddd�}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�td���D]7\}}d|>}||�}|�|j	|�|�t
|j	�t�|�||�|�|j|�|�
||�|�t
|�|�q0dSr�rr�rrrr�>��z7TestIntFlag.test_programatic_function_string_with_startcCs�tdgd��}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�td���D]7\}}d|>}||�}|�|j	|�|�t
|j	�t�|�||�|�|j|�|�
||�|�t
|�|�q0dSr�rr�rrrr�Nrz1TestIntFlag.test_programatic_function_string_listcCs�tdd�}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�td���D];\}}dd|d>}||�}|�|j	|�|�t
|j	�t�|�||�|�|j|�|�
||�|�t
|�|�q.dSr�rr�rrrr�^s
�z.TestIntFlag.test_programatic_function_iterablecCs�tdtd��}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�td�	��D];\}}dd|d>}||�}|�|j
|�|�t|j
�t�|�||�|�|j
|�|�||�|�t|�|�q0dSr�)rrr�r�r�rTrUrVr�r�r�r�r�r�r�r�r�rrrr�ns�z/TestIntFlag.test_programatic_function_from_dictcCsxt�dg�}t|�}|�t|�t|��|�t|�d|�t�dg�}t|�}|�t|�t|��|�t|�d|�dS)NrWr�Thing�rIrr�r�r�r�rMrWr�rrrr�)test_programatic_function_from_empty_listsz5TestIntFlag.test_programatic_function_from_empty_listcCspt�dd�}t|�}|�t|�t|��|�t|�d|�t�dd�}|�t|�t|��|�t|�d|�dS)NrWrrrrrrrr�*test_programatic_function_from_empty_tuple�sz6TestIntFlag.test_programatic_function_from_empty_tupler�r�c	Cs�|j}|j}|�|j|v�|�|j|v�|�|j|v�|�|j|v�|�t��!|�t	��d|vWd�n1s@wYWd�n1sOwY|�t��!|�t	��d|vWd�n1snwYWd�n1s}wY|�t��!|�t	��d|vWd�n1s�wYWd�n1s�wY|�t��*|�t	��d|vWd�n1s�wYWd�dSWd�dS1s�wYdS�NrXr\r)
r_rrLrXr\rHr�r�rrr�rrrr�s>
���
���
���
��"�zTestIntFlag.test_contains_errcCs�|j}|j}|�|j|v�|�|j|v�|�|j|v�|�|j|v�|�d|v�|�d|v�|�d|v�|�d|v�dSr
)r_rrLrXr\rHr�rrrr�szTestIntFlag.test_contains_tfc	Cs|j}|\}}}||B}||B}||B}||B|B}|�||v�|�||v�|�||v�|�||v�|�||v�|�||v�|�||v�|�||v�|�||v�|�||v�|�||v�|�||v�|�t��|�d|v�Wd�dS1s�wYdS)Nrn)rWrLrHr�r�r�rrrr��s*
"�z TestIntFlag.test_member_containscCr�rfr�r�rrrr��r�zTestIntFlag.test_boolcCr�)Nc@r)z1TestIntFlag.test_multiple_mixin.<locals>.AllMixincSr�r*r�r�rrrr��r�z5TestIntFlag.test_multiple_mixin.<locals>.AllMixin.ALLNr�rrrrr��r�r�c@r�)z1TestIntFlag.test_multiple_mixin.<locals>.StrMixincSrrfr
r�rrrr.�rnz9TestIntFlag.test_multiple_mixin.<locals>.StrMixin.__str__Nr^rrrrr�r�rc@r��z.TestIntFlag.test_multiple_mixin.<locals>.ColorNrrrrrr�r�rrrrqryrc@r�rrrrrrr�r�rc@r�rrrrrrr�r�)rr�rWr�rXrYr�r�r�rrrr �r�zTestIntFlag.test_multiple_mixincr�)Nc@r�)z3TestIntFlag.test_unique_composite.<locals>.TestFlagcSr�rfrr�rrrr�rnz:TestIntFlag.test_unique_composite.<locals>.TestFlag.__eq__cSr�rfr�r�rrrr�rnz<TestIntFlag.test_unique_composite.<locals>.TestFlag.__hash__Nr�rrrrrSr�rSFcr�r�r�r�r�rrr�r�z5TestIntFlag.test_unique_composite.<locals>.cycle_enumcr�r�r�r�r�rrrr�z5TestIntFlag.test_unique_composite.<locals>.<listcomp>rzr�r�r�)rr�r7rr�rHr�r�r�rr�rr�r�z!TestIntFlag.test_unique_compositeN)"rrrr&rrWr_rr�rxr�r�r�r�r�r�r�r�r�r�r�rr	r9r:r;rrr�r�r rr�r�rrrrr�k
sF!!	�
�
+r�c@r?)�TestEmptyAndNonLatinStringscCs:|�t��tdd�}Wd�dS1swYdS)N�	empty_abc)r�r�r�r�)rMr
rrr�test_empty_string-s"�z-TestEmptyAndNonLatinStrings.test_empty_stringcC�&tdd�}t|d�}|�|jd�dS)N�	greek_abc)�αr�r�rr�rr�r�r�)rMrr�rrr�test_non_latin_character_string1�

z;TestEmptyAndNonLatinStrings.test_non_latin_character_stringcCr)N�
hebrew_123)�א�2�3rrr)rMrr�rrr�test_non_latin_number_string6rz8TestEmptyAndNonLatinStrings.test_non_latin_number_stringN)rrrrrrrrrrr+src@r?)�
TestUniquecC�,tGdd�dt��}tGdd�dt��}dS)Nc@r)z+TestUnique.test_unique_clean.<locals>.Cleanrrg@N�rrrr�r�rrrrr�Clean?r'rc@r)z-TestUnique.test_unique_clean.<locals>.CleanerrrrN)rrr�single�double�triplerrrr�CleanerDr'r!�rrr)rMrr!rrr�test_unique_clean>�zTestUnique.test_unique_cleancCs�|�td��tGdd�dt��}Wd�n1swY|�td��tGdd�dt��}Wd�dS1s<wYdS)Nz	tres.*onec@r=)z+TestUnique.test_unique_dirty.<locals>.DirtyrrNrrrrr�DirtyLr'r%zdouble.*single.*turkey.*triplec@seZdZdZdZdZdZdS)z-TestUnique.test_unique_dirty.<locals>.DirtierrrN)rrrrrr Zturkeyrrrr�DirtierU�
r&)r�r�rrr)rMr%r&rrr�test_unique_dirtyJs��"�zTestUnique.test_unique_dirtycCr)Nc@r)z/TestUnique.test_unique_with_name.<locals>.SillyrrrN)rrrr�r�r�rrrr�Silly]r'r)c@rp)z1TestUnique.test_unique_with_name.<locals>.SillierrrrrqN)rrrrr�r r�rrrr�Sillierbr'r*r")rMr)r*rrr�test_unique_with_name\r$z TestUnique.test_unique_with_nameN)rrrr#r(r+rrrrr<sra�Help on class Color in module %s:

class Color(enum.Enum)
 |  Color(value, names=None, *, module=None, qualname=None, type=None, start=1)
 |  
 |  An enumeration.
 |  
 |  Method resolution order:
 |      Color
 |      enum.Enum
 |      builtins.object
 |  
 |  Data and other attributes defined here:
 |  
 |  blue = <Color.blue: 3>
 |  
 |  green = <Color.green: 2>
 |  
 |  red = <Color.red: 1>
 |  
 |  ----------------------------------------------------------------------
 |  Data descriptors inherited from enum.Enum:
 |  
 |  name
 |      The name of the Enum member.
 |  
 |  value
 |      The value of the Enum member.
 |  
 |  ----------------------------------------------------------------------
 |  Readonly properties inherited from enum.EnumMeta:
 |  
 |  __members__
 |      Returns a mapping of member name->value.
 |      
 |      This mapping lists all enum members, including aliases. Note that this
 |      is a read-only view of the internal mapping.a�Help on class Color in module %s:

class Color(enum.Enum)
 |  Color(value, names=None, *, module=None, qualname=None, type=None, start=1)
 |  
 |  Method resolution order:
 |      Color
 |      enum.Enum
 |      builtins.object
 |  
 |  Data and other attributes defined here:
 |  
 |  blue = <Color.blue: 3>
 |  
 |  green = <Color.green: 2>
 |  
 |  red = <Color.red: 1>
 |  
 |  ----------------------------------------------------------------------
 |  Data descriptors inherited from enum.Enum:
 |  
 |  name
 |  
 |  value
 |  
 |  ----------------------------------------------------------------------
 |  Data descriptors inherited from enum.EnumMeta:
 |  
 |  __members__c@s8eZdZdZGdd�de�Zdd�Zdd�Zdd	�ZdS)
�
TestStdLibNc@r)zTestStdLib.ColorrrrNrrrrrr�r rcCsTtjdur
tt}ntt}t�}tj|d�}||j�|�	��
�}|�||�dS)N)�output)r%r&�!expected_help_output_without_docsr�expected_help_output_with_docsr
�pydocZHelperr�getvalue�stripr�)rMZ
expected_textr-�helper�resultrrr�
test_pydoc�s


zTestStdLib.test_pydoccCs�tdtfdd|jjfdtfd|jjfd|jjfdtjdfd|jj	fd	tjd	ff	�}tt
�|j��}|�|�
�|�
��d
}|�
�D] }||||krct�tdd|||||dfd
d�d}qC|rm|�d�dSdS)Nr�)r&�An enumeration.r�rrrr�rr�Fz.
%s
     key: %s
  result: %s
expected: %s
%s
�K===========================================================================r���sepT�/result does not equal expected, see print above)�dictrrr�rrrrr�r�inspectZ
getmembersr��keysr��fail)rMr�r4r�rrrr�test_inspect_getmembers�s6



�����z"TestStdLib.test_inspect_getmemberscCs4ddlm}|ddttd�|dd|jdd�|dd	ttjd�|d
d|jtd�|dd|j|jjd�|dd|j|jjd�|d
d|j|jj	d�|ddt
t
jdd�|ddt
t
jdd�g	}|jdd�d�t
t�|j��}|jdd�d�d}t||�D]\}}||kr�tdd||dfdd�d}qx|r�|�d�dSdS)Nr)�	Attributer��data)r��kindZdefining_classrZr&r6r�rrrrrr�r�cSrMrfr��r�rrr�<lambda>��z>TestStdLib.test_inspect_classify_class_attrs.<locals>.<lambda>)�keycSrMrfr�rCrrrrD�rEFz
%s
%s
%s
%s
r7r�r8Tr:)r<r@rZrrr�rrrrrr��sortr�Zclassify_class_attrsr�r�r>)rMr@r�r4r�r�rrrr�!test_inspect_classify_class_attrs�sR����
�
�
�
�
����z,TestStdLib.test_inspect_classify_class_attrs)	rrrZmaxDiffrrr5r?rIrrrrr,�sr,c@r�)�MiscTestCasecCst|t�dSrf)rrIr�rrr�test__all__
r�zMiscTestCase.test__all__N)rrrrKrrrrrJ
r�rJr~c@sLeZdZdd�Zdd�Ze�edkd�dd��Ze�ed	kd
�dd��Z	d
S)�TestIntEnumConvertcCs4tjjddtdkdd�d�}|�|d�jd�dS)	N�UnittestConvert�ztest.test_enum�__main__rOcS�
|�d�S�NZ
CONVERT_TEST_��
startswith�rkrrrrD
�
zGTestIntEnumConvert.test_convert_value_lookup_priority.<locals>.<lambda>��filterr~�CONVERT_TEST_NAME_A)rIr�	_convert_rr�r��rMr�rrr�"test_convert_value_lookup_priority
s
�z5TestIntEnumConvert.test_convert_value_lookup_prioritycCs�tjjddtdkdd�d�}|�|j|j�|�|jd�|�|jd�|�|j	d�|�|j
d�|jdd	�t|�D�gd
d�dS)NrMrNrOcSrPrQrRrTrrrrD
rUz1TestIntEnumConvert.test_convert.<locals>.<lambda>rVr~cSs g|]}|dd�dvr|�qS)rr)ZCOr[r)rr�rrrr'
s
�z3TestIntEnumConvert.test_convert.<locals>.<listcomp>z&Names other than CONVERT_TEST_* found.)�msg)rIrrYrr��CONVERT_TEST_NAME_FrX�CONVERT_TEST_NAME_B�CONVERT_TEST_NAME_C�CONVERT_TEST_NAME_D�CONVERT_TEST_NAME_Er�rZrrr�test_convert
s
��
�zTestIntEnumConvert.test_convert)rrzz_convert was deprecated in 3.8cC�N|�t��tjjddtdkdd�d�Wd�dS1s wYdS)NrMrNrOcSrPrQrRrTrrrrD2
rUz6TestIntEnumConvert.test_convert_warn.<locals>.<lambda>rV)rrrIr�_convertrr�rrr�test_convert_warn+
�
�"�z$TestIntEnumConvert.test_convert_warnr3z_convert was removed in 3.9cCrc)NrMrNrOcSrPrQrRrTrrrrD;
rUz7TestIntEnumConvert.test_convert_raise.<locals>.<lambda>rV)r�r�rIrrdrr�rrr�test_convert_raise4
rfz%TestIntEnumConvert.test_convert_raiseN)
rrrr[rbr9r<r;rergrrrrrL
s

�

�rLc@s8eZdZdZdZdZdZdZdd�Zdd	�Z	d
d�Z
dS)
r@)Z_bad_Z_good_Z	_what_ho_)Z__mal__Z__bien__Z__que_que__)Z_MyEnum__privateZ_MyEnum__still_private)Z_MyEnum__private_Z_MyEnum__also_private_)ZokayZ
_semi_privateZ_weird__Z	_MyEnum__cCsZ|j|jD]
}|�t�|�d|�q|j|j|jD]
}|�t�|�d|�qdS)Nz%r is a not sunder name?z%r is a sunder name?)	�sunder_names�private_and_sunder_namesrLrIr_�dunder_names�
private_names�random_namesrH�rMr�rrr�test_sunderE
s
�zTestHelpers.test_sundercCsZ|jD]
}|�t�|�d|�q|j|j|j|jD]
}|�t�|�d|�qdS)Nz%r is a not dunder name?z%r is a dunder name?)	rjrLrIrcrhrkrirlrHrmrrr�test_dunderK
s

�zTestHelpers.test_dundercCsV|j|jD]}|�t�d|�d�q|j|j|jD]}|�t�d|�d�qdS)Nrrz%r is a not private name?z%r is a private name?)	rkrirLrI�_is_privaterhrjrlrHrmrrr�test_is_privateQ
s
�zTestHelpers.test_is_privateN)rrrrhrjrkrirlrnrorqrrrrr@=
srOrf)ErIr<r0�sysr9r��collectionsrrrrrrrr	�ior
�picklerrr
rZtest.supportrrrr�r�version_infor;rr�r�r�r!r�r"r#r�r%r)rr-r0r1r4r;r>ZTestCaser@reror=rSr�rrr/r.r,rJr`r_r^rXrar]rL�mainrrrr�<module>s�$�����������������
r>BC/'P.
�
© 2025 GrazzMean