a
    ¼3jƒ  ã                   @   sˆ   d dl Z d dlZd dlmZ d dlmZmZmZ d dlmZm	Z	 edƒ dZ
G dd„ dee jƒZG d	d
„ d
e	e jƒZedkr„e  ¡  dS )é    N)Úfont)ÚrequiresÚ
gc_collectÚ	ALWAYS_EQ)ÚAbstractTkTestÚAbstractDefaultRootTestZguiZTkDefaultFontc                   @   s`   e Zd Zedd„ ƒZdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ ZdS )ÚFontTestc                 C   sR   t j | ¡ ztj| jtdd| _W n( tjyL   tj| jtdd| _Y n0 d S )NT©ÚrootÚnameÚexistsF)	r   Ú
setUpClassÚ__func__r   ÚFontr
   ÚfontnameÚtkinterÚTclError)Úcls© r   ú_/www/server/python_manager/versions/3.9.10/lib/python3.9/tkinter/test/test_tkinter/test_font.pyr      s
    zFontTest.setUpClassc                 C   sè   | j  ¡ }|  t|ƒh d£¡ |D ]2}|  | j  |¡|| ¡ |  | j | || ¡ q"dD ]:}|  || t¡ |  | j  |¡t¡ |  | j | t¡ qZ| jr t	nt}dD ]:}|  || |¡ |  | j  |¡|¡ |  | j | |¡ q¨d S ©N>   Ú
overstrikeÚweightÚ	underlineÚfamilyÚsizeÚslant)r   r   r   )r   r   r   )
r   Z	configureÚassertGreaterEqualÚsetÚassertEqualÚcgetÚassertIsInstanceÚstrÚwantobjectsÚint©ÚselfÚoptionsÚkeyZsizetyper   r   r   Útest_configure   s     

ÿzFontTest.test_configurec                 C   s`   d}zt j| j|dd}W n& tjy@   t j| j|dd}Y n0 |  | d¡|¡ ~tƒ  d S )Nu   MS ã‚´ã‚·ãƒƒã‚¯T)r
   r   r   Fr   )r   r   r
   r   r   r   r    r   )r&   r   Úfr   r   r   Útest_unicode_family&   s    zFontTest.test_unicode_familyc                 C   s®   | j  ¡ }|  t|ƒh d£¡ |D ]}|  | j  |¡|| ¡ q"dD ](}|  || t¡ |  | j  |¡t¡ qD| jrxtnt}dD ](}|  || |¡ |  | j  |¡|¡ q€d S r   )	r   Úactualr   r   r   r!   r"   r#   r$   r%   r   r   r   Útest_actual0   s    

ÿzFontTest.test_actualc                 C   s&   |   | jjt¡ |   t| jƒt¡ d S ©N)r   r   r   r   r"   ©r&   r   r   r   Ú	test_name>   s    zFontTest.test_namec                 C   s¬   t j| jtdd}t j| jtdd}|  ||¡ |  ||¡ |  || ¡ ¡ |  |d¡ |  |t¡ t	 
¡ }|  |j¡ t j|tdd}|  t|ƒt|ƒ¡ |  ||¡ d S )NTr	   r   )r   r   r
   r   ZassertIsNotr   ZassertNotEqualÚcopyr   r   ÚTkZ
addCleanupÚdestroyr"   )r&   Zfont1Zfont2Úroot2Zfont3r   r   r   Útest_equalityB   s    zFontTest.test_equalityc                 C   s   |   | j d¡t¡ d S )NÚabc)r!   r   Zmeasurer$   r/   r   r   r   Útest_measureR   s    zFontTest.test_measurec                 C   sh   | j  ¡ }|  t|ƒh d£¡ |D ]@}|  | j  |¡|| ¡ |  || t¡ |  | j  |¡t¡ q"d S )N>   Z	linespaceÚfixedZdescentZascent)r   Úmetricsr   r   r   r!   r$   )r&   r9   r(   r   r   r   Útest_metricsU   s    

ÿzFontTest.test_metricsc                 C   sF   t  | j¡}|  |t¡ |  |¡ |D ]}|  |t¡ |  |¡ q&d S r.   )r   Úfamiliesr
   r!   ÚtupleÚ
assertTruer"   )r&   r;   r   r   r   r   Útest_families^   s    
zFontTest.test_familiesc                 C   sR   t  | j¡}|  |t¡ |  |¡ |D ]}|  |t¡ |  |¡ q&|  t|¡ d S r.   )	r   Únamesr
   r!   r<   r=   r"   ÚassertInr   )r&   r?   r   r   r   r   Ú
test_namesf   s    
zFontTest.test_namesN)Ú__name__Ú
__module__Ú__qualname__Úclassmethodr   r)   r+   r-   r0   r5   r7   r:   r>   rA   r   r   r   r   r      s   

	r   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚDefaultRootTestc                 C   sv   |   ttj¡ t ¡ }t ¡ }|  |t¡ |  |¡ |D ]}|  |t	¡ |  |¡ q8| 
¡  t ¡  |   ttj¡ d S r.   )ÚassertRaisesÚRuntimeErrorr   r;   r   r2   r!   r<   r=   r"   r3   ÚNoDefaultRoot)r&   r
   r;   r   r   r   r   r>   r   s    
zDefaultRootTest.test_familiesc                 C   s‚   |   ttj¡ t ¡ }t ¡ }|  |t¡ |  |¡ |D ]}|  |t	¡ |  |¡ q8|  
t|¡ | ¡  t ¡  |   ttj¡ d S r.   )rG   rH   r   r?   r   r2   r!   r<   r=   r"   r@   r   r3   rI   )r&   r
   r?   r   r   r   r   rA      s    
zDefaultRootTest.test_namesN)rB   rC   rD   r>   rA   r   r   r   r   rF   p   s   rF   Ú__main__)Zunittestr   r   Ztest.supportr   r   r   Ztkinter.test.supportr   r   r   ZTestCaser   rF   rB   Úmainr   r   r   r   Ú<module>   s   e