o
    ±ó®gÀ  ã                   @   sb   d dl Z d dlZd dlmZ e d¡Ze eedƒd¡G dd„ dejƒƒZ	e
dkr/e ¡  dS dS )	é    N)Úimport_helperÚpwdÚgetpwallzDoes not have getpwall()c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚPwdTestc                 C   s  t  ¡ }|D ]€}|  t|ƒd¡ |  |d |j¡ |  |jt¡ |  |d |j¡ |  |jt¡ |  |d |j¡ |  |jt	¡ |  |d |j
¡ |  |j
t	¡ |  |d |j¡ |  t|jƒttd ƒf¡ |  |d |j¡ |  |jt¡ |  |d |j¡ |  |jt¡ qd S )	Né   r   é   é   é   é   é   é   )r   r   ZassertEqualÚlenÚpw_nameZassertIsInstanceÚstrZ	pw_passwdÚpw_uidÚintZpw_gidZpw_gecosÚassertInÚtypeÚpw_dirZpw_shell)ÚselfÚentriesÚe© r   úC/Users/admin/.pyenv/versions/3.10.0/lib/python3.10/test/test_pwd.pyÚtest_values
   s$   ñzPwdTest.test_valuesc                 C   s°   t  ¡ }i }i }t|ƒdkr|  d¡ |D ]}| |jg ¡ |¡ | |jg ¡ |¡ q|D ]'}|d r:|d dkr;q.|  t  	|j¡||j ¡ |  t  
|j¡||j ¡ q.d S )Niè  z*passwd file is huge; extended test skippedr   ú+)r   r   r   ZskipTestÚ
setdefaultr   Úappendr   r   ÚgetpwnamÚgetpwuid)r   r   ZentriesbynameZentriesbyuidr   r   r   r   Útest_values_extended$   s   
üzPwdTest.test_values_extendedc                 C   s¤  |   ttj¡ |   ttjd¡ |   ttj¡ |   ttjd¡ |   ttjd¡ i }i }t ¡ D ]\}}}}}}}	|||< |||< q.t| ¡ ƒ}
d}|
| }||v ršt|ƒ}tt	|ƒƒD ]"}|| dkrhd||<  q‘|| dkroqZt
t|| ƒd ƒ||<  q‘|d }z|
| }W n	 ty   Y qšw d |¡}||v sP|   ttj|¡ tj}|  ||¡ |   ttj|¡ |   ttjd	¡ |   ttjd
d ¡ |   ttjd
d  ¡ d S )Ng…ëQ¸	@é*   r   ÚzÚAÚZr   Ú éÿÿÿÿr   é€   )ZassertRaisesÚ	TypeErrorr   r   r   r   ÚlistÚkeysÚranger   ÚchrÚordÚ
IndexErrorÚjoinÚKeyErrorÚsysÚmaxsizeZassertNotIn)r   ZbynamesZbyuidsÚnÚpÚuÚgZgecosÚdÚsZallnamesZnameiZfakenameÚcharsÚiZfakeuidr   r   r   Útest_errors8   sL   
þ
îzPwdTest.test_errorsN)Ú__name__Ú
__module__Ú__qualname__r   r    r;   r   r   r   r   r      s    r   Ú__main__)r1   ZunittestZtest.supportr   Úimport_moduler   Z
skipUnlessÚhasattrZTestCaser   r<   Úmainr   r   r   r   Ú<module>   s    
gÿ