a
    äzeu	  ã                   @   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)ÚalphaÚbetaÚ	candidateÚfinalc                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú
FutureTestc                 C   sr   t d d … }ttƒD ]B}tt|d ƒ}|d urt|tjƒr|  ||v d| ¡ | |¡ q|  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.9/test/test___future__.pyÚ
test_names
   s    þÿzFutureTest.test_namesc                    s¢   t D ]˜}tt|ƒ}| ¡ }| ¡ }| j‰ | j‰‡ ‡fdd„}||dƒ |d urf||dƒ ˆ ||k dƒ ˆ t|dƒdƒ tdd	d
|j	ƒ ˆ t
t|dƒtƒdƒ qd S )Nc                    s°   ˆ t | tƒd| ƒ ˆt| ƒdd| ƒ | \}}}}}ˆ t |tƒd| ƒ ˆ t |tƒd| ƒ ˆ t |tƒd| ƒ ˆ t |tƒd| ƒ ˆ |tv 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   Ú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