o
    HXîh-  ã                   @   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   ú7/opt/python-3.10.19/usr/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¡ |  tdtjd¡ i }i }t ¡ D ]\}}}}}}}	|||< |||< q7t| 	¡ ƒ}
d}|
| }||v r£t|ƒ}t
t|ƒƒD ]"}|| dkrqd||<  n)|| dkrxqctt|| ƒd	 ƒ||<  n|d	 }z|
| }W n	 ty™   Y n
w d
 |¡}||v sY|   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¸	@é*   Znullza br   ÚzÚAÚZr   Ú éÿÿÿÿr   é€   )ZassertRaisesÚ	TypeErrorr   r   r   r   ZassertRaisesRegexÚ
ValueErrorÚ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   sN   
þ
îzPwdTest.test_errorsN)Ú__name__Ú
__module__Ú__qualname__r   r    r<   r   r   r   r   r      s    r   Ú__main__)r2   ZunittestZtest.supportr   Úimport_moduler   Z
skipUnlessÚhasattrZTestCaser   r=   Úmainr   r   r   r   Ú<module>   s    
iÿ