B
    u9au	  ã               @   s@   d dl Z d dlZdZejZG dd„ de jƒZedkr<e  ¡  dS )é    N)ZalphaZbetaÚ	candidateÚfinalc               @   s   e Zd Zdd„ Zdd„ ZdS )Ú
FutureTestc             C   sv   t d d … }xNttƒD ]B}tt|d ƒ}|d k	rt|tjƒr|  ||kd| ¡ | |¡ qW |  t	|ƒdd| ¡ d S )Nz(%r should have been in all_feature_namesr   z"all_feature_names has too much: %r)
ÚfeaturesÚdirÚ
__future__ÚgetattrÚ
isinstanceZ_FeatureÚ
assertTrueÚremoveÚassertEqualÚlen)ÚselfZgiven_feature_namesÚnameÚobj© r   ú%/usr/lib/python3.7/test___future__.pyÚ
test_names
   s    
zFutureTest.test_namesc                s¦   x t D ]˜}tt|ƒ}| ¡ }| ¡ }| j‰ | j‰‡ ‡fdd„}||dƒ |d k	rh||dƒ ˆ ||k dƒ ˆ t|dƒdƒ tdd	d
|j	ƒ ˆ t
t|dƒtƒdƒ qW d S )Nc                s°   ˆ t | tƒd| ƒ ˆt| ƒdd| ƒ | \}}}}}ˆ t |tƒd| ƒ ˆ t |tƒd| ƒ ˆ t |tƒd| ƒ ˆ t |tƒd| ƒ ˆ |tkd| ƒ ˆ t |tƒd	| ƒ d S )
Nz%s isn't tupleé   z%s isn't 5-tuplez%s major isn't intz%s minor isn't intz%s micro isn't intz%s level isn't stringz!%s level string has unknown valuez%s serial isn't int)r	   Útupler   ÚintÚstrÚGOOD_SERIALS)Útr   ÚmajorÚminorÚmicroÚlevelÚserial)ÚaÚer   r   Úcheck!   s    


z)FutureTest.test_attributes.<locals>.checkÚoptionalÚ	mandatoryz8optional not less than mandatory, and mandatory not NoneÚcompiler_flagz(feature is missing a .compiler_flag attrÚ z<test>Úexecz.compiler_flag isn't int)r   r   r   ZgetOptionalReleaseZgetMandatoryReleaser
   r   ÚhasattrÚcompiler$   r	   r   )r   ZfeatureÚvaluer"   r#   r!   r   )r   r    r   Útest_attributes   s"    




zFutureTest.test_attributesN)Ú__name__Ú
__module__Ú__qualname__r   r*   r   r   r   r   r      s   r   Ú__main__)	Zunittestr   r   Zall_feature_namesr   ZTestCaser   r+   Úmainr   r   r   r   Ú<module>   s   4