Your IP : 216.73.216.213


Current Path : /proc/242857/root/opt/alt/python34/lib64/python3.4/test/__pycache__/
Upload File :
Current File : //proc/242857/root/opt/alt/python34/lib64/python3.4/test/__pycache__/test_enum.cpython-34.pyc

�
f f���o@s�ddlZddlZddlZddlZddlmZddlmZmZmZm	Z	ddl
mZddlm
Z
mZmZmZyGdd�de�ZWn+ek
r�ZzeZWYddZ[XnXyGdd	�d	ee�ZWn+ek
r&ZzeZWYddZ[XnXyGd
d�dee�ZWn+ek
rqZzeZWYddZ[XnXy3Gdd
�d
ee�ZGdd�de�ZWn+ek
r�ZzeZWYddZ[XnXyeddde�ZWn+ek
rZzeZWYddZ[XnXyedd�ZWn+ek
rZZzeZWYddZ[XnXyedddd�ZWn+ek
r�ZzeZWYddZ[XnXyGdd�de�ZWnek
r�YnXdddefdd�Z ddefdd�Z!Gd d!�d!ej"�Z#Gd"d#�d#ej"�Z$Gd$d%�d%ej"�Z%d&j&�Z'Gd'd(�d(ej"�Z(ed)kr�ej)�ndS)*�N)�OrderedDict)�Enum�IntEnum�EnumMeta�unique)�StringIO)�dumps�loads�
PicklingError�HIGHEST_PROTOCOLc@s"eZdZdZdZdZdS)�Stooges���N)�__name__�
__module__�__qualname__�LARRY�CURLY�MOE�rr�3/opt/alt/python34/lib64/python3.4/test/test_enum.pyrsrc@s"eZdZdZdZdZdS)�
IntStoogesr
rrN)rrrrrrrrrrrsrc@s"eZdZdZdZdZdS)�FloatStoogesg=
ףp=�?g�(\��@g�R$_	$	@N)rrrrrrrrrrrsrc@seZdZdZdS)�StrEnumzaccepts only string valuesN)rrr�__doc__rrrrr%src@seZdZdZdZdS)�NamezGuido van RossumzBarry WarsawN)rrr�BDFLZFLUFLrrrrr'sr�Questionzwho what when where why�module�Answerzhim this then there because�Theoryzrule law suppositionZqualname�spanish_inquisitionc@s"eZdZdZdZdZdS)�Fruitr
rrN)rrrZtomatoZbananaZcherryrrrrr#>sr#�protocolcCsb|\}}|dkr!|}nx:t||d�D]%}|tt|d|��|�q5WdS)Nr
r$)�ranger	r)�	assertion�source�targetr$�start�stoprrr�test_pickle_dump_loadEs
	r+cCsQ|\}}x>t||d�D])}||��t|d|�WdQXq WdS)Nr
r$)r%r)r&Z	exception�objr$r)r*rrr�test_pickle_exceptionMs
r-c@s4eZdZdd�Zdd�Zdd�ZdS)�TestHelperscCsmGdd�d�}xSdD]K}|�}|jtj|��t||d�|jtj|��qWdS)Nc@seZdZdS)z+TestHelpers.test_is_descriptor.<locals>.fooN)rrrrrrr�fooXsr/�__get__�__set__�
__delete__r
)z__get__z__set__z
__delete__)�assertFalse�enumZ_is_descriptor�setattr�
assertTrue)�selfr/�attrr,rrr�test_is_descriptorWs
	zTestHelpers.test_is_descriptorc
CsRx$dD]}|jtj|��qWx$dD]}|jtj|��q.WdS)N�_a_�_aa_�a�a_�_a�__a�a__�__a__�_a__�__a_�_�__�___�____�_____)r:r;)
r<r=r>r?r@rArBrCrDz__rFrGrH)r6r4Z
_is_sunderr3)r7�srrr�test_is_sunder`s


zTestHelpers.test_is_sunderc
CsRx$dD]}|jtj|��qWx$dD]}|jtj|��q.WdS)NrA�__aa__r<r=r>r?r@r:rBrCrDrErFrGrH)z__a__rK)
r<za_z_az__aza__z_a_z_a__z__a_rDz__z___z____z_____)r6r4Z
_is_dunderr3)r7rIrrr�test_is_dunderhs


zTestHelpers.test_is_dunderN)rrrr9rJrLrrrrr.Ts	r.c@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Zd9d:�Zd;d<�Z d=d>�Z!d?d@�Z"dAdB�Z#dCdD�Z$dEdF�Z%dGdH�Z&dIdJ�Z'dKdL�Z(dMdN�Z)dOdP�Z*dQdR�Z+dSdT�Z,dUdV�Z-dWdX�Z.dYdZ�Z/d[d\�Z0d]d^�Z1d_d`�Z2dadb�Z3dcdd�Z4dedf�Z5dgdh�Z6didj�Z7dkdl�Z8dmdn�Z9dodp�Z:dqdr�Z;dsdt�Z<dudv�Z=dwdx�Z>dydz�Z?d{d|�Z@d}d~�ZAdd��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�S)��TestEnumcCs�Gdd�dt�}||_Gdd�dtt�}||_Gdd�dt�}||_Gdd�dtt�}||_d	d
lm	}Gdd�d|t�}||_
dS)
Nc@s(eZdZdZdZdZdZdS)zTestEnum.setUp.<locals>.Seasonr
rr�N)rrr�SPRING�SUMMER�AUTUMN�WINTERrrrr�SeasonssrSc@s&eZdZdZdZdeZdS)z!TestEnum.setUp.<locals>.KonstantsgB�
�@gJ�M�!	@rN)rrr�EZPI�TAUrrrr�	KonstantszsrVc@s.eZdZdZdZdZdZdZdS)zTestEnum.setUp.<locals>.Grades�rNrrrN)rrr�A�B�C�D�Frrrr�Grades�s
r]c@s(eZdZdZdZdZdZdS)z#TestEnum.setUp.<locals>.DirectionalZeastZwestZnorthZsouthN)rrrZEAST�WESTZNORTHZSOUTHrrrr�Directional�sr_r)�datec@seZdZdZdZdS)zTestEnum.setUp.<locals>.Holiday��r
r�N)rar
r
)rarrb)rrrZNEW_YEAR�
IDES_OF_MARCHrrrr�Holiday�srd)rrS�floatrVrr]�strr_Zdatetimer`rd)r7rSrVr]r_r`rdrrr�setUprs				zTestEnum.setUpcCsG|j}|jtt|��tddddddddg��dS)	N�	__class__r�__members__rrOrPrQrR)rS�assertEqual�set�dir)r7rSrrr�test_dir_on_class�s
	zTestEnum.test_dir_on_classcCsA|j}|jtt|j��tdddddg��dS)Nrhrr�name�value)rSrjrkrlrR)r7rSrrr�test_dir_on_item�s	zTestEnum.test_dir_on_itemc	Cs�Gdd�dt�}|jtt|��tddddddg��|jtt|j��tdddd	d
dg��dS)Nc@s(eZdZdZdZdd�ZdS)z3TestEnum.test_dir_with_added_behavior.<locals>.Test�that�thosecSsd|jS)NzWowser! I'm %s!)rn)r7rrr�wowser�sz:TestEnum.test_dir_with_added_behavior.<locals>.Test.wowserN)rrr�this�thesersrrrr�Test�srvrhrrirrtrurnrors)rrjrkrlrt)r7rvrrr�test_dir_with_added_behavior�sz%TestEnum.test_dir_with_added_behaviorc	CsgGdd�dt�}Gdd�d|�}|jtt|j��tddddd	d
g��dS)Nc@seZdZdd�ZdS)zBTestEnum.test_dir_on_sub_with_behavior_on_super.<locals>.SuperEnumcSsdS)Nzdid you see me?r)r7rrr�	invisible�szLTestEnum.test_dir_on_sub_with_behavior_on_super.<locals>.SuperEnum.invisibleN)rrrrxrrrr�	SuperEnum�sryc@seZdZdZdS)z@TestEnum.test_dir_on_sub_with_behavior_on_super.<locals>.SubEnumrWN)rrr�samplerrrr�SubEnum�sr{rhrrrnrorx)rrjrkrlrz)r7ryr{rrr�&test_dir_on_sub_with_behavior_on_super�s
z/TestEnum.test_dir_on_sub_with_behavior_on_supercCs)|j}|j||j�|j�dS)N)rS�assertIsrR)r7rSrrr�test_enum_in_enum_out�s	zTestEnum.test_enum_in_enum_outcCs#|j}|j|jjd�dS)Nr
)rSrjrOro)r7rSrrr�test_enum_value�s	zTestEnum.test_enum_valuecCs|jtjjd�dS)Nr)rjrrro)r7rrr�test_intenum_value�szTestEnum.test_intenum_valuecCsi|j}t|�}|jt|�t|��|jt|�d|�|j|j|j|j|jg|�x�tdj	�d�D]�\}}||�}|j|t
||��|j|j|�|j||�|j|j
|�|j||�|jt|�|�|j||�|jt|�d|�|jt|�dj||��q�WdS)NrNzSPRING SUMMER AUTUMN WINTERr
zSeason.z<Season.{0}: {1}>)rS�listrj�lenrOrPrQrR�	enumerate�split�getattrro�assertNotEqualrn�assertInr}�type�assertIsInstancerf�repr�format)r7rS�lst�iZseason�errr�	test_enum�s&	""	zTestEnum.test_enumcCs}|j}|j|jjd�|j|jjd�|jt��d|j_WdQX|jt��d|j_WdQXdS)NrOr
Zinviernor)rSrjrOrnro�assertRaises�AttributeError)r7rSrrr�test_value_name�s	zTestEnum.test_value_namec	Cs,|j}|jt��d|_WdQXdS)Nzreally cold)rSr�r�rR)r7rSrrr�test_changing_member�s	zTestEnum.test_changing_membercCs�Gdd�dt�}|jt|d��|`|jt|d��|jt��|`WdQX|jt��|`WdQX|jt��|j`	WdQXdS)Nc@s4eZdZdZdZdZdZdd�ZdS)z0TestEnum.test_attribute_deletion.<locals>.Seasonr
rrrNcSsdS)Nr)�clsrrr�spam�sz5TestEnum.test_attribute_deletion.<locals>.Season.spamN)rrrrOrPrQrRr�rrrrrS�s
rSr�)
rr6�hasattrr�r3r�r�rOZDRYrn)r7rSrrr�test_attribute_deletion�s	z TestEnum.test_attribute_deletioncCs-Gdd�dt�}|jt|��dS)Nc@seZdZdS)z*TestEnum.test_bool_of_class.<locals>.EmptyN)rrrrrrr�Emptysr�)rr6�bool)r7r�rrr�test_bool_of_classszTestEnum.test_bool_of_classcCs>Gdd�dt�}x!|D]}|jt|��qWdS)Nc@s"eZdZdZdZdZdS)z+TestEnum.test_bool_of_member.<locals>.Countrr
rN)rrrZzero�one�tworrrr�Count
sr�)rr6r�)r7r��memberrrr�test_bool_of_member	s
zTestEnum.test_bool_of_memberc#Cs�|jt��Gdd�dt�}WdQX|jt��Gdd�dt�}WdQX|jt��Gdd�dt�}WdQX|jt��Gdd�dt�}WdQX|jt��Gdd�dt�}WdQXdS)Nc@seZdZdZdS)z*TestEnum.test_invalid_names.<locals>.Wrong�	N)rrr�mrorrrr�Wrongsr�c@seZdZdZdS)z*TestEnum.test_invalid_names.<locals>.Wrong�N)rrrZ_create_rrrrr�sc@seZdZdZdS)z*TestEnum.test_invalid_names.<locals>.Wrongr�N)rrrZ_get_mixins_rrrrr�sc@seZdZdZdS)z*TestEnum.test_invalid_names.<locals>.Wrongr
N)rrrZ
_find_new_rrrrr�sc@seZdZdZdS)z*TestEnum.test_invalid_names.<locals>.Wrongr�N)rrrZ
_any_name_rrrrr�s)r��
ValueErrorr)r7r�rrr�test_invalid_namesszTestEnum.test_invalid_namescCsu|j}|j|j|�|jd|�|d�}|j||�Gdd�dt�}|j|j|�dS)Nrc@seZdZdZdZdS)z)TestEnum.test_contains.<locals>.OtherEnumr
rN)rrrr�r�rrrr�	OtherEnum*sr�)rSr�rQZassertNotInrr�)r7rS�valr�rrr�
test_contains"s	zTestEnum.test_containscCs�|j}|jt��|j|jkWdQX|jt��|jdkWdQX|j|jd�Gdd�dt�}|j|j|j�|jt��|j|jkWdQXdS)NrNr
c@s"eZdZdZdZdZdS)z'TestEnum.test_comparisons.<locals>.Partr
rrN)rrrrO�CLIPZBARRELrrrr�Part7sr�)rSr��	TypeErrorrOrRr�rr�)r7rSr�rrr�test_comparisons.s	zTestEnum.test_comparisonscCsGdd�dt�}t|�}|j||j|j|j|jg�|j|j|j�|j|jj	d�|j|jj	d�|j|d�|j�|j|d�|j�|j|jj
d�|jdd�|jj�D�dd	g�dS)
Nc@s2eZdZdZdZdZZdZdZdS)z-TestEnum.test_enum_duplicates.<locals>.Seasonr
rrrNN)	rrrrOrPrQ�FALLrR�ANOTHER_SPRINGrrrrrSAs

rSrr
rQcSs+g|]!\}}|j|kr|�qSr)rn)�.0�k�vrrr�
<listcomp>Ts	z1TestEnum.test_enum_duplicates.<locals>.<listcomp>r�r�)
rr�rjrOrPrQrRr}r�rornri�items)r7rSr�rrr�test_enum_duplicates@szTestEnum.test_enum_duplicatescCs�|jt��Gdd�dt�}WdQX|jt��Gdd�dt�}WdQX|jt��Gdd�dt�}WdQXdS)Nc@s(eZdZdZdZdZdZdS)z+TestEnum.test_duplicate_name.<locals>.Colorr
rrrNN)rrr�red�green�bluerrrr�ColorZsr�c@s.eZdZdZdZdZdd�ZdS)z+TestEnum.test_duplicate_name.<locals>.Colorr
rrcSsdS)Nr�r)r7rrrr�esz/TestEnum.test_duplicate_name.<locals>.Color.redN)rrrr�r�r�rrrrr�asc@s4eZdZedd��ZdZdZdZdS)z+TestEnum.test_duplicate_name.<locals>.ColorcSsdS)NZredderr)r7rrrr�jsz/TestEnum.test_duplicate_name.<locals>.Color.redr
rrN)rrr�propertyr�r�r�rrrrr�is)r�r�r)r7r�rrr�test_duplicate_nameXszTestEnum.test_duplicate_namecCs�Gdd�dt�}|jt|�|j|jg�|jt|j�|�|j|jjd�|j|jjd�dS)Nc@seZdZdZdZdS)z/TestEnum.test_enum_with_value_name.<locals>.Huhr
rN)rrrrnrorrrr�Huhssr�rnr
)rrjr�rnror}r�)r7r�rrr�test_enum_with_value_namers	z"TestEnum.test_enum_with_value_namecCs!|j}|jdj|j�djt|j���|jdj|j�djt|j���|jdj|j�djt|j���|jdj|j�djt|j���|jdj|j�djt|j���|jdj|j�djt|j���dS)Nz{}z{:}z{:20}z{:^20}z{:>20}z{:<20})rSrjr�rOrf)r7rSrrr�test_format_enum~s	zTestEnum.test_format_enumcCs9Gdd�dtt�}|jdj|j�d�dS)Nc@s(eZdZdZdZdd�ZdS)z3TestEnum.test_format_enum_custom.<locals>.TestFloatg�?g@cSsdS)NzTestFloat success!r)r7�specrrr�
__format__�sz>TestEnum.test_format_enum_custom.<locals>.TestFloat.__format__N)rrrr�r�r�rrrr�	TestFloat�sr�z{}zTestFloat success!)rerrjr�r�)r7r�rrr�test_format_enum_custom�sz TestEnum.test_format_enum_customcCs)|j|j|�|j|j��dS)N)rjr�ro)r7r�r�rrr�assertFormatIsValue�szTestEnum.assertFormatIsValuecCs�|j}|jd|j�|jd|j�|jd|j�|jd|j�|jd|j�|jd|j�|jd|j�|jd|j�dS)	Nz{}z{:}z{:20}z{:^20}z{:>20}z{:<20}z{:%Y %m}z{:%Y %m %M:00})rdr�rc)r7rdrrr�test_format_enum_date�s	zTestEnum.test_format_enum_datecCs�|j}|jd|j�|jd|j�|jd|j�|jd|j�|jd|j�|jd|j�|jd|j�|jd|j�|jd	|j�dS)
Nz{}z{:}z{:20}z{:^20}z{:>20}z{:<20}z{:n}z{:5.2}z{:f})rVr�rU)r7rVrrr�test_format_enum_float�s	zTestEnum.test_format_enum_floatcCs�|j}|jd|j�|jd|j�|jd|j�|jd|j�|jd|j�|jd|j�|jd|j�|jd|j�|jd	|j�dS)
Nz{}z{:}z{:20}z{:^20}z{:>20}z{:<20}z{:+}z{:08X}z{:b})r]r�rZ)r7r]rrr�test_format_enum_int�s	zTestEnum.test_format_enum_intcCs|j}|jd|j�|jd|j�|jd|j�|jd|j�|jd|j�|jd|j�dS)Nz{}z{:}z{:20}z{:^20}z{:>20}z{:<20})r_r�r^)r7r_rrr�test_format_enum_str�s	zTestEnum.test_format_enum_strcCs^|j}i}d||j<d||j<d||j<d||j<|j||jd�dS)NZ1225Z0315Z0704Z1031)rSrRrOrPrQrj)r7rSZdatesrrr�	test_hash�s	



zTestEnum.test_hashcCs6Gdd�dtt�}|j|j|jk�dS)Nc@s eZdZdZdeZdS)z/TestEnum.test_intenum_from_scratch.<locals>.phyrrN)rrr�pi�taurrrr�phy�sr�)�intrr6r�r�)r7r�rrr�test_intenum_from_scratch�sz"TestEnum.test_intenum_from_scratchcCsLGdd�dtt�}Gdd�d|�}|j|j|jk�dS)Nc@seZdZdS)z0TestEnum.test_intenum_inherited.<locals>.IntEnumN)rrrrrrrr�src@s eZdZdZdeZdS)z,TestEnum.test_intenum_inherited.<locals>.phyrrN)rrrr�r�rrrrr��sr�)r�rr6r�r�)r7rr�rrr�test_intenum_inherited�szTestEnum.test_intenum_inheritedcCs6Gdd�dtt�}|j|j|jk�dS)Nc@s eZdZdZdeZdS)z1TestEnum.test_floatenum_from_scratch.<locals>.phygJ�M�!	@rN)rrrr�r�rrrrr��sr�)rerr6r�r�)r7r�rrr�test_floatenum_from_scratch�sz$TestEnum.test_floatenum_from_scratchcCsLGdd�dtt�}Gdd�d|�}|j|j|jk�dS)Nc@seZdZdS)z4TestEnum.test_floatenum_inherited.<locals>.FloatEnumN)rrrrrrr�	FloatEnum�sr�c@s eZdZdZdeZdS)z.TestEnum.test_floatenum_inherited.<locals>.phygJ�M�!	@rN)rrrr�r�rrrrr��sr�)rerr6r�r�)r7r�r�rrr�test_floatenum_inherited�sz!TestEnum.test_floatenum_inheritedcCs6Gdd�dtt�}|j|j|jk�dS)Nc@seZdZdZdZdS)z/TestEnum.test_strenum_from_scratch.<locals>.phy�Pi�TauN)rrrr�r�rrrrr��sr�)rfrr6r�r�)r7r�rrr�test_strenum_from_scratch�sz"TestEnum.test_strenum_from_scratchcCsLGdd�dtt�}Gdd�d|�}|j|j|jk�dS)Nc@seZdZdS)z0TestEnum.test_strenum_inherited.<locals>.StrEnumN)rrrrrrrr�src@seZdZdZdZdS)z,TestEnum.test_strenum_inherited.<locals>.phyr�r�N)rrrr�r�rrrrr��sr�)rfrr6r�r�)r7rr�rrr�test_strenum_inherited�szTestEnum.test_strenum_inheritedcCs�Gdd�dt�}|jdddg|jd�|jdd�t|j�D�dd	d
g�t|�}|jt|�t|��|jt|�d�d}|j�}x�t|d	�D]�\}}||�}|j||�|jt	|�|�|j|j
|�|j||�|j|j|�d	|�|j
d|ko`d
kn�|jt|�|�|j|t	�|j|t�q�WdS)Nc@s:eZdZdZdZdZdZdZdZdZ	dS)	z&TestEnum.test_intenum.<locals>.WeekDayr
rrrNrW��N)
rrr�SUNDAY�MONDAY�TUESDAY�	WEDNESDAY�THURSDAY�FRIDAY�SATURDAYrrrr�WeekDay�sr�r<�b�ccSsg|]}|�qSrr)r�r�rrrr�s	z)TestEnum.test_intenum.<locals>.<listcomp>rr
rr�z8SUNDAY MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY SATURDAY�)rrjr�r%r�r�r�r�r�r�rnr��indexr6r}r�r�r)r7r�r�r(r�Zweekdayr�rrr�test_intenum�s&	 /#zTestEnum.test_intenumcCsrGdd�dt�}|j|j|j�|j|d�jd�|jdd�|jj�D�dg�dS)Nc@s>eZdZdZdZdZZdZdZdZ	dZ
dS)	z1TestEnum.test_intenum_duplicates.<locals>.WeekDayr
rrrNrWr�r�N)rrrr�r�r��TEUSDAYr�r�r�r�rrrrr�s
r�rr�cSs+g|]!\}}|j|kr|�qSr)rn)r�r�r�rrrr�!s		z4TestEnum.test_intenum_duplicates.<locals>.<listcomp>r�)rr}r�r�rjrnrir�)r7r�rrr�test_intenum_duplicatess
z TestEnum.test_intenum_duplicatescCs?ttt�rt�nt|jtj�t|jt�dS)N)�
isinstancer�	Exceptionr+r}r)r7rrr�test_pickle_enum$s	zTestEnum.test_pickle_enumcCs?ttt�rt�nt|jtj�t|jt�dS)N)r�rr�r+r}r)r7rrr�test_pickle_int*s	zTestEnum.test_pickle_intcCs?ttt�rt�nt|jtj�t|jt�dS)N)r�rr�r+r}r)r7rrr�test_pickle_float0s	zTestEnum.test_pickle_floatcCs?ttt�rt�nt|jtj�t|jt�dS)N)r�r r�r+r}Zhim)r7rrr�test_pickle_enum_function6s	z"TestEnum.test_pickle_enum_functioncCs?ttt�rt�nt|jtj�t|jt�dS)N)r�rr�r+r}Zwho)r7rrr�%test_pickle_enum_function_with_module<s	z.TestEnum.test_pickle_enum_function_with_modulecCs/ttt�rt�n|jtjd�dS)Nr")r�r!r�rjr)r7rrr� test_enum_function_with_qualnameBs	z)TestEnum.test_enum_function_with_qualnamecCs}Gdd�dt�}||j_d|jj|j_t|jt|jjdd�t	|j
|jjddtf�dS)	Nc@seZdZdZdZdS)zLTestEnum.test_class_nested_enum_and_pickle_protocol_four.<locals>.NestedEnumZcommonZrareN)rrr�twigsZshinyrrrr�
NestedEnumIsr�z
%s.NestedEnumr$rrrN)rr)rrhr�rrr-r�r
r�r+r}r)r7r�rrr�/test_class_nested_enum_and_pickle_protocol_fourGsz8TestEnum.test_class_nested_enum_and_pickle_protocol_fourcCsYGdd�dt�}tj|_x0tt�D]"}|j|jj|�d�q/WdS)Nc@seZdZdZdZdS)z6TestEnum.test_pickle_by_name.<locals>.ReplaceGlobalIntr
rN)rrrZONE�TWOrrrr�ReplaceGlobalIntVsr�r�)rr4Z_reduce_ex_by_name�
__reduce_ex__r%rrjr�)r7r��protorrr�test_pickle_by_nameUszTestEnum.test_pickle_by_namecCs\tdddt�}|t�d<tj|�t|jt|j�t|jt	|�dS)N�	BadPicklezdill sweet bread-n-butterr)
rr�globalsr4Z_make_class_unpicklabler-r�r�Zdillr
)r7r�rrr�test_exploding_pickle]s

zTestEnum.test_exploding_picklecCs0Gdd�dtt�}|j|jd�dS)Nc@s"eZdZdZdZdZdS)z-TestEnum.test_string_enum.<locals>.SkillLevelz'what is the sound of one hand clapping?z#why did the chicken cross the road?z
knock, knock!N)rrrZmasterZ
journeyman�
apprenticerrrr�
SkillLevelgsr�z
knock, knock!)rfrrjr�)r7r�rrr�test_string_enumfszTestEnum.test_string_enumcCsfGdd�dt�}|j|d�|j�|jt|d�|j�|j|d|j�dS)Nc@s(eZdZdZdZdZdZdS)z-TestEnum.test_getattr_getitem.<locals>.Periodr
rrrNN)rrr�morning�noonZevening�nightrrrr�Periodnsr�rr�r�)rr}r�r�r�r�)r7r�rrr�test_getattr_getitemmszTestEnum.test_getattr_getitemcCs#|j}|jt|d��dS)N�__eq__)rSr6r�)r7rSrrr�test_getattr_dunderws	zTestEnum.test_getattr_dundercCsHGdd�dt�}|jt|�|j|j|j|jg�dS)Nc@s(eZdZdZdZdZdZdS)z-TestEnum.test_iteration_order.<locals>.SeasonrrNrr
N)rrrrPrRrQrOrrrrrS|srS)rrjr�rPrRrQrO)r7rSrrr�test_iteration_order{s	zTestEnum.test_iteration_ordercCsG|jtt|j��|jj|jj|jj|jjg�dS)N)rjr��reversedrSrRrQrPrO)r7rrr�test_reversed_iteration_order�sz&TestEnum.test_reversed_iteration_ordercCs
tdd�}t|�}|jt|�t|��|jt|�d|�|j|j|j|jg|�x�tdj�d�D]z\}}||�}|jt	|j
�|�|j||�|j|j|�|j
||�|jt|�|�q�WdS)N�SummerMonthzjune july augustrr
)rr�rjr��june�july�augustr�r�r�ror�rnr�r}r�)r7rr�r��monthr�rrr� test_programatic_function_string�s"z)TestEnum.test_programatic_function_stringcCstddddg�}t|�}|jt|�t|��|jt|�d|�|j|j|j|jg|�x�tdj�d�D]z\}}||�}|jt	|j
�|�|j||�|j|j|�|j
||�|jt|�|�q�WdS)Nrrrr	rzjune july augustr
)rr�rjr�rrr	r�r�r�ror�rnr�r}r�)r7rr�r�r
r�rrr�%test_programatic_function_string_list�s"z.TestEnum.test_programatic_function_string_listcCs
tdd�}t|�}|jt|�t|��|jt|�d|�|j|j|j|jg|�x�tdj�d�D]z\}}||�}|jt	|j
�|�|j||�|j|j|�|j
||�|jt|�|�q�WdS)
Nrrr
rrr	rzjune july august�zjuner
�zjulyr�zaugustr)r
rr)rr�rjr�rrr	r�r�r�ror�rnr�r}r�)r7rr�r�r
r�rrr�"test_programatic_function_iterable�s 	"z+TestEnum.test_programatic_function_iterablecCstdtd��}t|�}|jt|�t|��|jt|�d|�|j|j|j|jg|�x�tdj	�d�D]z\}}||�}|jt
|j�|�|j||�|j|j
|�|j||�|jt|�|�q�WdS)
Nrrr
rrr	rzjune july august�zjuner
�zjulyr�zaugustr)rrr)rrr�rjr�rrr	r�r�r�ror�rnr�r}r�)r7rr�r�r
r�rrr�#test_programatic_function_from_dict�s "z,TestEnum.test_programatic_function_from_dictcCs�tdddt�}t|�}|jt|�t|��|jt|�d|�|j|j|j|jg|�xxtdj	�d�D]a\}}||�}|j||�|j|j
|�|j||�|jt
|�|�q�WdS)Nrzjune july augustr�rr
)rr�r�rjr�rrr	r�r�rnr�r}r�)r7rr�r�r
r�rrr�test_programatic_function_type�s"z'TestEnum.test_programatic_function_typecCs�tdd�}t|�}|jt|�t|��|jt|�d|�|j|j|j|jg|�xxtdj�d�D]a\}}||�}|j||�|j|j	|�|j
||�|jt|�|�q�WdS)Nrzjune july augustrr
)
rr�rjr�rrr	r�r�rnr�r}r�)r7rr�r�r
r�rrr�,test_programatic_function_type_from_subclass�s"z5TestEnum.test_programatic_function_type_from_subclasscCswttt�rt�n|jtjd�|jtjtd��|jtjttd��t|jtj�dS)NzGuido van Rossumr)	r�rr�rjrr6r}r�r+)r7rrr�test_subclassing�s	zTestEnum.test_subclassingcCsFGdd�dt�}|jt��Gdd�d|�}WdQXdS)Nc@s"eZdZdZdZdZdS)z&TestEnum.test_extending.<locals>.Colorr
rrN)rrrr�r�r�rrrrr�sr�c@s"eZdZdZdZdZdS)z*TestEnum.test_extending.<locals>.MoreColorrNrWr�N)rrr�cyan�magenta�yellowrrrr�	MoreColorsr)rr�r�)r7r�rrrr�test_extending�szTestEnum.test_extendingcCsLGdd�dt�}|jt|j�|�|j|jj�d�dS)Nc@s(eZdZdZdZdd�ZdS)z/TestEnum.test_exclude_methods.<locals>.whateverrqrrcSsd|jS)Nz
no, not %s)ro)r7rrr�reallysz6TestEnum.test_exclude_methods.<locals>.whatever.reallyN)rrrrtrurrrrr�whateversrzno, not that)rZassertIsNotr�rrjrt)r7rrrr�test_exclude_methods
szTestEnum.test_exclude_methodscCs3|jt��Gdd�dtt�}WdQXdS)Nc@seZdZdZdS)z4TestEnum.test_wrong_inheritance_order.<locals>.Wrongzerror before this pointN)rrrZNotHererrrrr�sr�)r�r�rrf)r7r�rrr�test_wrong_inheritance_ordersz%TestEnum.test_wrong_inheritance_ordercCsrGdd�dt�}Gdd�dt�}|j|j|j�|j|j|j�|j|j|j�dS)Nc@s"eZdZdZdZdZdS)z2TestEnum.test_intenum_transitivity.<locals>.numberr
rrN)rrrr�r��threerrrr�numbersr"c@s"eZdZdZdZdZdS)z2TestEnum.test_intenum_transitivity.<locals>.numeror
rrN)rrr�uno�dos�tresrrrr�numerosr&)rrjr�r#r�r$r!r%)r7r"r&rrr�test_intenum_transitivitys
z"TestEnum.test_intenum_transitivitycCsFGdd�dt�}Gdd�dt�}|jt||j�dS)Nc@seZdZdZdZdS)z4TestEnum.test_wrong_enum_in_call.<locals>.Monochromerr
N)rrr�black�whiterrrr�
Monochrome&sr*c@seZdZdZdZdS)z0TestEnum.test_wrong_enum_in_call.<locals>.Genderrr
N)rrr�male�femalerrrr�Gender)sr-)rr�r�r+)r7r*r-rrr�test_wrong_enum_in_call%sz TestEnum.test_wrong_enum_in_callcCsFGdd�dt�}Gdd�dt�}|jt||j�dS)Nc@seZdZdZdZdS)z:TestEnum.test_wrong_enum_in_mixed_call.<locals>.Monochromerr
N)rrrr(r)rrrrr*/sr*c@seZdZdZdZdS)z6TestEnum.test_wrong_enum_in_mixed_call.<locals>.Genderrr
N)rrrr+r,rrrrr-2sr-)rrr�r�r+)r7r*r-rrr�test_wrong_enum_in_mixed_call.sz&TestEnum.test_wrong_enum_in_mixed_callcCsLGdd�dt�}Gdd�dt�}|j||j�|j�dS)Nc@seZdZdZdZdS)z6TestEnum.test_mixed_enum_in_call_1.<locals>.Monochromerr
N)rrrr(r)rrrrr*8sr*c@seZdZdZdZdS)z2TestEnum.test_mixed_enum_in_call_1.<locals>.Genderrr
N)rrrr+r,rrrrr-;sr-)rr}r,r))r7r*r-rrr�test_mixed_enum_in_call_17sz"TestEnum.test_mixed_enum_in_call_1cCsLGdd�dt�}Gdd�dt�}|j||j�|j�dS)Nc@seZdZdZdZdS)z6TestEnum.test_mixed_enum_in_call_2.<locals>.Monochromerr
N)rrrr(r)rrrrr*Asr*c@seZdZdZdZdS)z2TestEnum.test_mixed_enum_in_call_2.<locals>.Genderrr
N)rrrr+r,rrrrr-Dsr-)rrr}r+r()r7r*r-rrr�test_mixed_enum_in_call_2@sz"TestEnum.test_mixed_enum_in_call_2cCsIGdd�dt�}Gdd�d|�}|jt|j�d�dS)Nc@seZdZdd�ZdS)z*TestEnum.test_flufl_enum.<locals>.FluflnumcSs
t|j�S)N)r�ro)r7rrr�__int__Ksz2TestEnum.test_flufl_enum.<locals>.Fluflnum.__int__N)rrrr2rrrr�FluflnumJsr3c@s"eZdZdZdZdZdS)z0TestEnum.test_flufl_enum.<locals>.MailManOptionsr
rrN)rrr�option1Zoption2Zoption3rrrr�MailManOptionsMsr5r
)rrjr�r4)r7r3r5rrr�test_flufl_enumIszTestEnum.test_flufl_enumcCs�Gdd�dt�}|j|jjt�|j|jt�Gdd�dtt�}|j|jjt�|j|jt�Gdd�dt�}|j|jjt	�|j|jt	�dS)Nc@seZdZdZdZdS)z+TestEnum.test_introspection.<locals>.Number�d��N)rrrr�r�rrrr�NumberTsr9c@s"eZdZdZdZdZdS)z+TestEnum.test_introspection.<locals>.StringZsoftZroughZhardN)rrr�yarnZropeZwirerrrr�StringYsr;c@seZdZdZdZdS)z*TestEnum.test_introspection.<locals>.Plainr)r
N)rrr�vanillar�rrrr�Plain_sr=)
rr}r�Z
_member_type_r�rfrr:r<�object)r7r9r;r=rrr�test_introspectionSszTestEnum.test_introspectioncCsXGdd�dt�}|jt��|d�WdQX|jt��
|dWdQXdS)Nc@s"eZdZdZdZdZdS)z0TestEnum.test_no_such_enum_member.<locals>.Colorr
rrN)rrrr�r�r�rrrrr�fsr�rNZ
chartreuse)rr�r��KeyError)r7r�rrr�test_no_such_enum_memberes
z!TestEnum.test_no_such_enum_membercCs3Gdd�dt�}|jt|j�d�dS)Nc@s.eZdZdZdZdZdd�ZdS)z%TestEnum.test_new_repr.<locals>.Colorr
rrcSsd|jS)Nz!don't you just love shades of %s?)rn)r7rrr�__repr__tsz.TestEnum.test_new_repr.<locals>.Color.__repr__N)rrrr�r�r�rBrrrrr�psr�z#don't you just love shades of blue?)rrjr�r�)r7r�rrr�
test_new_reproszTestEnum.test_new_reprcCsLGdd�dt�}Gdd�dt|�}|jt|j�d�dS)Nc@seZdZdd�ZdS)z,TestEnum.test_inherited_repr.<locals>.MyEnumcSsd|jS)NzMy name is %s.)rn)r7rrrrB}sz5TestEnum.test_inherited_repr.<locals>.MyEnum.__repr__N)rrrrBrrrr�MyEnum|srDc@s"eZdZdZdZdZdS)z/TestEnum.test_inherited_repr.<locals>.MyIntEnumr
rrN)rrrrtrqZtheotherrrrr�	MyIntEnumsrEzMy name is that.)rr�rjr�rq)r7rDrErrr�test_inherited_repr{szTestEnum.test_inherited_reprcs�G�fdd�dtt���Gdd�dtd��}Gdd�dtd��}Gdd	�d	|�}Gd
d�d|�}dS)Ncs%eZdZ��fdd�Z�S)z3TestEnum.test_multiple_mixin_mro.<locals>.auto_enumc	s�t|��}t|j�}d}xJ|jD]?}||}|tkrS|}n|}|d7}|||<q.Wx3|j�D]%\}}||kr~|||<q~q~Wt�|�j||||�S)Nrr
)r�rkZ
_member_names�Ellipsisr��super�__new__)	Zmetaclsr��basesZ	classdict�temp�namesr�r�r�)rh�	auto_enumrrrI�s
	
z;TestEnum.test_multiple_mixin_mro.<locals>.auto_enum.__new__)rrrrIr)rM)rhrrM�srMc@seZdZdS)z:TestEnum.test_multiple_mixin_mro.<locals>.AutoNumberedEnumN)rrrrrrr�AutoNumberedEnum�srN�	metaclassc@seZdZdS)z5TestEnum.test_multiple_mixin_mro.<locals>.AutoIntEnumN)rrrrrrr�AutoIntEnum�srPc@s"eZdZdZdZdZdS)z8TestEnum.test_multiple_mixin_mro.<locals>.TestAutoNumber.rN)rrrr<r�r�rrrr�TestAutoNumber�srQc@s"eZdZdZdZdZdS)z5TestEnum.test_multiple_mixin_mro.<locals>.TestAutoInt.rN)rrrr<r�r�rrrr�TestAutoInt�srR)r�rr)r7rNrPrQrRr)rMr�test_multiple_mixin_mro�s
"z TestEnum.test_multiple_mixin_mrocs�G�fdd�dt��Gdd�d�t�}|j|jtj�|jt|j|j�d��t�d<|t�d<�dd�}|j|d�t	|j|d�|j|jj
d�t	|j|j�t	|j|�dS)	NcsjeZdZdZdd�Zdd�Zedd��Zdd	�Zd
d�Z�fdd
�ZdS)z:TestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt�NamedIntcWs[|}|^}}t|�dkr3td��ntj||�}||_||_|S)Nrz name and value must be specified)r�r�r�rI�_intname�_args)r��argsrVrnr7rrrrI�s		zBTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__new__cSs|jS)N)rV)r7rrr�__getnewargs__�szITestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__getnewargs__cSs|jS)N)rU)r7rrrr�szCTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__name__cSs(djt|�j|jtj|��S)Nz{}({!r}, {}))r�r�rr�rB)r7rrrrB�szCTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__repr__cSs5t}|j}|jtkr+|j|�S||�S)N)r��__str__�__objclass__r>rB)r7�base�base_strrrrrY�s
	
zBTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__str__cs[t|�t|�}t|��rSt|��rS�dj|j|j�|�S|SdS)Nz({0} + {1}))r�r�r�r)r7�otherrK)rTrr�__add__�szBTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__add__N)	rrrrIrXr�rBrYr^r)rTrrrT�s		rTc@s"eZdZdZdZdZdS)	z5TestEnum.test_subclasses_with_getnewargs.<locals>.NEI�NEI�the-xr
�the-yrN)r`r
)rar)rrr�x�yrrrrr_�sr_zNamedInt('(the-x + the-y)', 3)�testrWr)r�rr}rIrjr�rbrcr�r+ro)r7r_�NI5r)rTr�test_subclasses_with_getnewargs�s' 

z(TestEnum.test_subclasses_with_getnewargscsG�fdd�dt��Gdd�d�t�}|j|jtj�|jt|j|j�d��t�d<|t�d<�dd�}|j|d�t	|j|ddd�|j|jj
d
�t	|j|jdd�t	|j|�dS)
NcsjeZdZdZdd�Zdd�Zedd��Zdd	�Zd
d�Z�fdd
�ZdS)z=TestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedIntrTcWs[|}|^}}t|�dkr3td��ntj||�}||_||_|S)Nrz name and value must be specified)r�r�r�rIrUrV)r�rWrVrnr7rrrrI�s		zETestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__new__cSs
|jifS)N)rV)r7rrr�__getnewargs_ex__�szOTestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__getnewargs_ex__cSs|jS)N)rU)r7rrrr�szFTestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__name__cSs(djt|�j|jtj|��S)Nz{}({!r}, {}))r�r�rr�rB)r7rrrrB�szFTestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__repr__cSs5t}|j}|jtkr+|j|�S||�S)N)r�rYrZr>rB)r7r[r\rrrrY�s
	
zETestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__str__cs[t|�t|�}t|��rSt|��rS�dj|j|j�|�S|SdS)Nz({0} + {1}))r�r�r�r)r7r]rK)rTrrr^szETestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__add__N)	rrrrIrgr�rBrYr^r)rTrrrT�s		rTc@s"eZdZdZdZdZdS)	z8TestEnum.test_subclasses_with_getnewargs_ex.<locals>.NEIr_�the-xr
�the-yrN)rhr
)rir)rrrrbrcrrrrr_
sr_zNamedInt('(the-x + the-y)', 3)rdrWr$rNr)rNrN)rNrN)r�rr}rIrjr�rbrcr�r+ro)r7r_rer)rTr�"test_subclasses_with_getnewargs_ex�s' 

z+TestEnum.test_subclasses_with_getnewargs_excs�G�fdd�dt��Gdd�d�t�}|j|jtj�|jt|j|j�d��t�d<|t�d<�dd�}|j|d�t	|j|d�|j|jj
d�t	|j|j�t	|j|�dS)	NcsjeZdZdZdd�Zdd�Zedd��Zdd	�Zd
d�Z�fdd
�ZdS)z6TestEnum.test_subclasses_with_reduce.<locals>.NamedIntrTcWs[|}|^}}t|�dkr3td��ntj||�}||_||_|S)Nrz name and value must be specified)r�r�r�rIrUrV)r�rWrVrnr7rrrrIs		z>TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__new__cSs|j|jfS)N)rhrV)r7rrr�
__reduce__'szATestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__reduce__cSs|jS)N)rU)r7rrrr)sz?TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__name__cSs(djt|�j|jtj|��S)Nz{}({!r}, {}))r�r�rr�rB)r7rrrrB,sz?TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__repr__cSs5t}|j}|jtkr+|j|�S||�S)N)r�rYrZr>rB)r7r[r\rrrrY1s
	
z>TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__str__cs[t|�t|�}t|��rSt|��rS�dj|j|j�|�S|SdS)Nz({0} + {1}))r�r�r�r)r7r]rK)rTrrr^:sz>TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__add__N)	rrrrIrkr�rBrYr^r)rTrrrTs		rTc@s"eZdZdZdZdZdS)	z1TestEnum.test_subclasses_with_reduce.<locals>.NEIr_�the-xr
�the-yrN)rlr
)rmr)rrrrbrcrrrrr_Csr_zNamedInt('(the-x + the-y)', 3)rdrWr)r�rr}rIrjr�rbrcr�r+ro)r7r_rer)rTr�test_subclasses_with_reduces' 

z$TestEnum.test_subclasses_with_reducecs�G�fdd�dt��Gdd�d�t�}|j|jtj�|jt|j|j�d��t�d<|t�d<�dd�}|j|d�t	|j|d�|j|jj
d�t	|j|j�t	|j|�dS)	NcsjeZdZdZdd�Zdd�Zedd��Zdd	�Zd
d�Z�fdd
�ZdS)z9TestEnum.test_subclasses_with_reduce_ex.<locals>.NamedIntrTcWs[|}|^}}t|�dkr3td��ntj||�}||_||_|S)Nrz name and value must be specified)r�r�r�rIrUrV)r�rWrVrnr7rrrrIWs		zATestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__new__cSs|j|jfS)N)rhrV)r7r�rrrr�`szGTestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__reduce_ex__cSs|jS)N)rU)r7rrrrbszBTestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__name__cSs(djt|�j|jtj|��S)Nz{}({!r}, {}))r�r�rr�rB)r7rrrrBeszBTestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__repr__cSs5t}|j}|jtkr+|j|�S||�S)N)r�rYrZr>rB)r7r[r\rrrrYjs
	
zATestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__str__cs[t|�t|�}t|��rSt|��rS�dj|j|j�|�S|SdS)Nz({0} + {1}))r�r�r�r)r7r]rK)rTrrr^sszATestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__add__N)	rrrrIr�r�rBrYr^r)rTrrrTUs		rTc@s"eZdZdZdZdZdS)	z4TestEnum.test_subclasses_with_reduce_ex.<locals>.NEIr_�the-xr
�the-yrN)ror
)rpr)rrrrbrcrrrrr_|sr_zNamedInt('(the-x + the-y)', 3)rdrWr)r�rr}rIrjr�rbrcr�r+ro)r7r_rer)rTr�test_subclasses_with_reduce_exTs' 

z'TestEnum.test_subclasses_with_reduce_excs�G�fdd�dt��Gdd�d�t�}|j|jtj�|jt|j|j�d��t�d<|t�d<�dd�}|j|d�|j|jj	d�t
|jt|j�t
|jt
|�dS)	Ncs^eZdZdZdd�Zedd��Zdd�Zdd	�Z�fd
d�ZdS)
zHTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedIntrTcWs[|}|^}}t|�dkr3td��ntj||�}||_||_|S)Nrz name and value must be specified)r�r�r�rIrUrV)r�rWrVrnr7rrrrI�s		zPTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__new__cSs|jS)N)rU)r7rrrr�szQTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__name__cSs(djt|�j|jtj|��S)Nz{}({!r}, {}))r�r�rr�rB)r7rrrrB�szQTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__repr__cSs5t}|j}|jtkr+|j|�S||�S)N)r�rYrZr>rB)r7r[r\rrrrY�s
	
zPTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__str__cs[t|�t|�}t|��rSt|��rS�dj|j|j�|�S|SdS)Nz({0} + {1}))r�r�r�r)r7r]rK)rTrrr^�szPTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__add__N)rrrrIr�rBrYr^r)rTrrrT�s		rTc@s"eZdZdZdZdZdS)	zCTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NEIr_�the-xr
�the-yrN)rrr
)rsr)rrrrbrcrrrrr_�sr_zNamedInt('(the-x + the-y)', 3)rdrWr)r�rr}rIrjr�rbrcr�ror-r�r�r
)r7r_rer)rTr�-test_subclasses_without_direct_pickle_support�s% 

z6TestEnum.test_subclasses_without_direct_pickle_supportcs�G�fdd�dt��Gdd�d�t�}|j|jtj�|jt|j|j�d��t�d<|t�d<�dd�}|j|d�|j|jj	d�t
|j|j�t
|j|�dS)	Ncs^eZdZdZdd�Zedd��Zdd�Zdd	�Z�fd
d�ZdS)
zSTestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedIntrTcWs[|}|^}}t|�dkr3td��ntj||�}||_||_|S)Nrz name and value must be specified)r�r�r�rIrUrV)r�rWrVrnr7rrrrI�s		z[TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__new__cSs|jS)N)rU)r7rrrr�sz\TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__name__cSs(djt|�j|jtj|��S)Nz{}({!r}, {}))r�r�rr�rB)r7rrrrB�sz\TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__repr__cSs5t}|j}|jtkr+|j|�S||�S)N)r�rYrZr>rB)r7r[r\rrrrY�s
	
z[TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__str__cs[t|�t|�}t|��rSt|��rS�dj|j|j�|�S|SdS)Nz({0} + {1}))r�r�r�r)r7r]rK)rTrrr^�sz[TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__add__N)rrrrIr�rBrYr^r)rTrrrT�s		rTc@s.eZdZdZd	Zd
Zdd�ZdS)zNTestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NEIr_�the-xr
�the-yrcSst|j|jffS)N)r�rhZ_name_)r7r�rrrr��sz\TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NEI.__reduce_ex__N)rur
)rvr)rrrrbrcr�rrrrr_�sr_zNamedInt('(the-x + the-y)', 3)rdrWr)r�rr}rIrjr�rbrcr�ror+)r7r_rer)rTr�8test_subclasses_without_direct_pickle_support_using_name�s% 

zATestEnum.test_subclasses_without_direct_pickle_support_using_namecCs|Gdd�dtt�}|jt|j�|�|j|jt�|j|jd�|t	�d<t
|j|j�dS)Nc@s(eZdZdZd	Zd
ZdZdS)z/TestEnum.test_tuple_subclass.<locals>.SomeTuple�	SomeTupler
�
for the moneyr�for the showr�
for the musicN)r
ry)rrz)rr{)rrr�first�second�thirdrrrrrx�srxr�
for the music)rr)�tuplerr}r�r|r�r}rjr~r�r+)r7rxrrr�test_tuple_subclass�s
zTestEnum.test_tuple_subclasscCs�Gdd�dt�}|jt|�|j|j|jg�|jt|j�d�|j|jjd�|j|d�|j�dS)Nc@s:eZdZfZfZfZdd�Zdd�ZdS)zITestEnum.test_duplicate_values_give_unique_enum_items.<locals>.AutoNumbercSs/t|j�d}tj|�}||_|S)Nr
)r�rir>rI�_value_)r�ror,rrrrI
s	zQTestEnum.test_duplicate_values_give_unique_enum_items.<locals>.AutoNumber.__new__cSs
t|j�S)N)r�r�)r7rrrr2szQTestEnum.test_duplicate_values_give_unique_enum_items.<locals>.AutoNumber.__int__N)rrrr|r}r~rIr2rrrr�
AutoNumbers
r�rrr
)	rrjr�r|r}r~r�ror})r7r�rrr�,test_duplicate_values_give_unique_enum_itemss	z5TestEnum.test_duplicate_values_give_unique_enum_itemscCs�Gdd�dt�}Gdd�d|�}|jt|�|j|j|jg�|jttt|��dddg�dS)Nc@s(eZdZdd�Zdd�ZdS)zBTestEnum.test_inherited_new_from_enhanced_enum.<locals>.AutoNumbercSs/t|j�d}tj|�}||_|S)Nr
)r�rir>rIr�)r�ror,rrrrIs	zJTestEnum.test_inherited_new_from_enhanced_enum.<locals>.AutoNumber.__new__cSs
t|j�S)N)r�r�)r7rrrr2 szJTestEnum.test_inherited_new_from_enhanced_enum.<locals>.AutoNumber.__int__N)rrrrIr2rrrrr�sr�c@s"eZdZfZfZfZdS)z=TestEnum.test_inherited_new_from_enhanced_enum.<locals>.ColorN)rrrr�r�r�rrrrr�"sr�r
rr)rrjr�r�r�r��mapr�)r7r�r�rrr�%test_inherited_new_from_enhanced_enums(z.TestEnum.test_inherited_new_from_enhanced_enumcCs�Gdd�dt�}Gdd�d|�}|jt|�|j|j|jg�|jttt|��dddg�dS)Nc@seZdZdd�ZdS)z?TestEnum.test_inherited_new_from_mixed_enum.<locals>.AutoNumbercSs2t|j�d}tj||�}||_|S)Nr
)r�rir�rIr�)r�ror,rrrrI+s	zGTestEnum.test_inherited_new_from_mixed_enum.<locals>.AutoNumber.__new__N)rrrrIrrrrr�*sr�c@s"eZdZfZfZfZdS)z:TestEnum.test_inherited_new_from_mixed_enum.<locals>.ColorN)rrrr�r�r�rrrrr�0sr�r
rr)rrjr�r�r�r�r�r�)r7r�r�rrr�"test_inherited_new_from_mixed_enum)s(z+TestEnum.test_inherited_new_from_mixed_enumcCsYGdd�d�}Gdd�dt�}|j|�|j�|j|j|��dS)Nc@seZdZdd�ZdS)z+TestEnum.test_equality.<locals>.AlwaysEqualcSsdS)NTr)r7r]rrrr9sz2TestEnum.test_equality.<locals>.AlwaysEqual.__eq__N)rrrrrrrr�AlwaysEqual8sr�c@seZdZdZdS)z,TestEnum.test_equality.<locals>.OrdinaryEnumr
N)rrrr<rrrr�OrdinaryEnum;sr�)rrjr<)r7r�r�rrr�
test_equality7szTestEnum.test_equalitycCs�Gdd�dt�}Gdd�d|�}|j|j|j�|j|j|j�|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|jkr"|j|jkStS)N)rhr��NotImplemented)r7r]rrr�__ge__Bsz7TestEnum.test_ordered_mixin.<locals>.OrderedEnum.__ge__cSs&|j|jkr"|j|jkStS)N)rhr�r�)r7r]rrr�__gt__Fsz7TestEnum.test_ordered_mixin.<locals>.OrderedEnum.__gt__cSs&|j|jkr"|j|jkStS)N)rhr�r�)r7r]rrr�__le__Jsz7TestEnum.test_ordered_mixin.<locals>.OrderedEnum.__le__cSs&|j|jkr"|j|jkStS)N)rhr�r�)r7r]rrr�__lt__Nsz7TestEnum.test_ordered_mixin.<locals>.OrderedEnum.__lt__N)rrrr�r�r�r�rrrr�OrderedEnumAsr�c@s.eZdZdZdZdZdZdZdS)z*TestEnum.test_ordered_mixin.<locals>.GraderWrNrrr
N)rrrrXrYrZr[r\rrrr�GradeRs
r�)rZ
assertGreaterrXrYZassertLessEqualr\rZZ
assertLessr[ZassertGreaterEqualrjr�)r7r�r�rrr�test_ordered_mixin@szTestEnum.test_ordered_mixincCs\Gdd�dt�}Gdd�d|�}|jt��Gdd�d|�}WdQXdS)Nc@seZdZdd�ZdS)z'TestEnum.test_extending2.<locals>.ShadecSst|j�dS)N)�printrn)r7rrr�shadeasz-TestEnum.test_extending2.<locals>.Shade.shadeN)rrrr�rrrr�Shade`sr�c@s"eZdZdZdZdZdS)z'TestEnum.test_extending2.<locals>.Colorr
rrN)rrrr�r�r�rrrrr�csr�c@s"eZdZdZdZdZdS)z+TestEnum.test_extending2.<locals>.MoreColorrNrWr�N)rrrrrrrrrrrhsr)rr�r�)r7r�r�rrrr�test_extending2_szTestEnum.test_extending2cCs_Gdd�dt�}Gdd�d|�}Gdd�d|�}|j|jj�d�dS)Nc@seZdZdd�ZdS)z'TestEnum.test_extending3.<locals>.ShadecSs|jS)N)rn)r7rrrr�osz-TestEnum.test_extending3.<locals>.Shade.shadeN)rrrr�rrrrr�nsr�c@seZdZdd�ZdS)z'TestEnum.test_extending3.<locals>.ColorcSsd|jS)Nz
%s hexlified!)ro)r7rrr�hexrsz+TestEnum.test_extending3.<locals>.Color.hexN)rrrr�rrrrr�qsr�c@s"eZdZdZdZdZdS)z+TestEnum.test_extending3.<locals>.MoreColorrNrWr�N)rrrrrrrrrrrtsrz5 hexlified!)rrjrr�)r7r�r�rrrr�test_extending3mszTestEnum.test_extending3cCs\Gdd�dt�}Gdd�d|�}|jt��Gdd�d|�}WdQXdS)Nc@seZdZdd�ZdS)z/TestEnum.test_no_duplicates.<locals>.UniqueEnumcs`�j}t�fdd�|D��r\�j}|�j�j}td||f��ndS)Nc3s!|]}�j|jkVqdS)N)ro)r�r�)r7rr�	<genexpr>szKTestEnum.test_no_duplicates.<locals>.UniqueEnum.__init__.<locals>.<genexpr>z-aliases not allowed in UniqueEnum:  %r --> %r)rh�anyrnror�)r7rWr�r<r�r)r7r�__init__}s		z8TestEnum.test_no_duplicates.<locals>.UniqueEnum.__init__N)rrrr�rrrr�
UniqueEnum|sr�c@s"eZdZdZdZdZdS)z*TestEnum.test_no_duplicates.<locals>.Colorr
rrN)rrrr�r�r�rrrrr��sr�c@s(eZdZdZdZdZdZdS)z*TestEnum.test_no_duplicates.<locals>.Colorr
rrN)rrrr�r�r�Zgrenerrrrr��s)rr�r�)r7r�r�rrr�test_no_duplicates{s
zTestEnum.test_no_duplicatescCsOGdd�dt�}|jt|jjd�d�|j|jjd�dS)Nc@s^eZdZdZdZdZdZdZdZdZ	dZ
dd�Zedd��Z
dS)z"TestEnum.test_init.<locals>.Planet�I�Tf|�D�
�BA�QX4E��WA��o��E��TXA���	��D�(�IA��c�����E����A�[�\h}E�,A�#'?�T�QE���_xA�J��-UE���wAcSs||_||_dS)N)�mass�radius)r7r�r�rrrr��s	z+TestEnum.test_init.<locals>.Planet.__init__cSsd}||j|j|jS)Ng
yдW�=)r�r�)r7�Grrr�surface_gravity�sz2TestEnum.test_init.<locals>.Planet.surface_gravityN)r�r�)r�r�)r�r�)r�r�)r�r�)r�r�)r�r�)r�r�)rrrZMERCURYZVENUS�EARTHZMARSZJUPITERZSATURNZURANUSZNEPTUNEr�r�r�rrrr�Planet�sr�rg������#@��o��E��TXA)r�r�)rrj�roundr�r�ro)r7r�rrr�	test_init�szTestEnum.test_initcCs�Gdd�dt�}Gdd�d|�}|jt|�|j|j|jg�x\t|td��D]E\}}|d7}|j|j|g�|j	||g�|�qjWdS)Nc@seZdZdd�ZdS)z6TestEnum.test_nonhash_value.<locals>.AutoNumberInAListcSs2t|j�dg}tj|�}||_|S)Nr
)r�rir>rIr�)r�ror,rrrrI�s	z>TestEnum.test_nonhash_value.<locals>.AutoNumberInAList.__new__N)rrrrIrrrr�AutoNumberInAList�sr�c@s"eZdZfZfZfZdS)z1TestEnum.test_nonhash_value.<locals>.ColorInAListN)rrrr�r�r�rrrr�ColorInAList�sr�rr
)
rrjr�r�r�r��zipr%ror})r7r�r�r4rorrr�test_nonhash_value�s("
zTestEnum.test_nonhash_valuecCs�Gdd�dtt�}Gdd�d|�}|jt|�|j|jg�|j|jd�|j|d�|j�dS)Nc@seZdZdd�ZdS)zHTestEnum.test_conflicting_types_resolved_in_new.<locals>.LabelledIntEnumcWs4|\}}tj||�}||_||_|S)N)r�rI�labelr�)r�rWror�r,rrrrI�s
		zPTestEnum.test_conflicting_types_resolved_in_new.<locals>.LabelledIntEnum.__new__N)rrrrIrrrr�LabelledIntEnum�sr�c@seZdZdZdZdS)zETestEnum.test_conflicting_types_resolved_in_new.<locals>.LabelledListr
�Unprocessedr�Payment CompleteN)r
r�)rr�)rrr�unprocessed�payment_completerrrr�LabelledList�sr�r
)r�rrjr�r�r�)r7r�r�rrr�&test_conflicting_types_resolved_in_new�s
"z/TestEnum.test_conflicting_types_resolved_in_newN)\rrrrgrmrprwr|r~rr�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�rrrrrrrrrrrrrr r'r.r/r0r1r6r?rArCrFrSrfrjrnrqrtrwr�r�r�r�r�r�r�r�r�r�r�r�rrrrrMps�#					
	
				


$999957	rMc@s(eZdZdd�Zdd�ZdS)�
TestUniquecCs<tGdd�dt��}tGdd�dt��}dS)Nc@s"eZdZdZdZdZdS)z+TestUnique.test_unique_clean.<locals>.Cleanr
r$g@N)rrrr�r�r%rrrr�Clean�sr�c@s"eZdZdZdZdZdS)z-TestUnique.test_unique_clean.<locals>.Cleanerr
rrN)rrr�single�double�triplerrrr�Cleaner�sr�)rrr)r7r�r�rrr�test_unique_clean�szTestUnique.test_unique_cleancCsn|jtd��!tGdd�dt��}WdQX|jtd��!tGdd�dt��}WdQXdS)Nz	tres.*onec@s"eZdZdZdZdZdS)z+TestUnique.test_unique_dirty.<locals>.Dirtyr
r$N)rrrr�r�r%rrrr�Dirty�sr�zdouble.*single.*turkey.*triplec@s(eZdZdZdZdZdZdS)z-TestUnique.test_unique_dirty.<locals>.Dirtierr
rN)rrrr�r�r�Zturkeyrrrr�Dirtier�sr�)ZassertRaisesRegexr�rrr)r7r�r�rrr�test_unique_dirty�s
zTestUnique.test_unique_dirtyN)rrrr�r�rrrrr��sr�a^
Help on class Color in module %s:

class Color(enum.Enum)
 |  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.
 |  
 |  ----------------------------------------------------------------------
 |  Data descriptors 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.
c@sJeZdZGdd�de�Zdd�Zdd�Zdd�Zd	S)
�
TestStdLibc@s"eZdZdZdZdZdS)zTestStdLib.Colorr
rrN)rrrr�r�r�rrrrr�sr�cCsXtt}t�}tjd|�}||j�|j�j�}|j||�dS)N�output)	�expected_help_outputrr�pydocZHelperr��getvalue�striprj)r7Z
expected_textr��helper�resultrrr�
test_pydocs
	
zTestStdLib.test_pydoccCs?tdtfdd|jjfdtfd|jjfd|jjfdtjdfd|jj	fd	tjd	ff	�}tt
j|j��}|j|j
�|j
��d
}xk|j
�D]]}||||kr�t�tddd
|||||dd
fdd�d}q�q�W|r;|jd�ndS)Nrhrrirr�r�rnr�roFz.
%s
     key: %s
  result: %s
expected: %s
%s
�=�K�sep�Tz/result does not equal expected, see print above)z__doc__N)�dictrr�rirr�r�r�__dict__r��inspectZ
getmembersrj�keysr��fail)r7�valuesr��failedr�rrr�test_inspect_getmemberss*		-
z"TestStdLib.test_inspect_getmemberscCsddlm}|dddddtdt�|dd	ddd|jdd�|dd
dddtdtj�|ddddd|jdt�|dd
ddd|jd|jj�|ddddd|jd|jj�|ddddd|jd|jj	�|dddddt
dt
jd�|dddddt
dt
jd�g	}|jddd��t
tj|j��}|jddd��d}xZt||�D]I\}}||kr�tddd||ddfdd�d}q�q�W|r|jd�ndS)Nr)�	AttributernrhZkind�dataZdefining_classr>rrir�rr�r�r�ro�keycSs|jS)N)rn)�itemrrr�<lambda>Msz>TestStdLib.test_inspect_classify_class_attrs.<locals>.<lambda>cSs|jS)N)rn)r�rrrr�OsFz
%s
%s
%s
%s
r�r�r�r�Tz/result does not equal expected, see print above)r�r�r>rr�rirr�r�r�rr��sortr�Zclassify_class_attrsr�r�r�)r7r�r�r�r�r��rrrr�!test_inspect_classify_class_attrs6s:(
z,TestStdLib.test_inspect_classify_class_attrsN)rrrrr�r�r�r�rrrrr�s	r��__main__)*r4r�r�Zunittest�collectionsrrrrr�ior�picklerr	r
rrr��excr�rrerrfrrrrr r!r#r+r-ZTestCaser.rMr�r�r�r��mainrrrr�<module>sp""
�����^CJ