o
    °ó®g1  ã                   @   sL   d Z ddlZddlmZ e d¡ZG dd„ dejƒZedkr$e 	¡  dS dS )zTest script for the grp module.é    N)Úimport_helperÚgrpc                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚGroupDatabaseTestCasec                 C   s”   |   t|ƒd¡ |   |d |j¡ |  |jt¡ |   |d |j¡ |  |jt¡ |   |d |j¡ |  |jt¡ |   |d |j¡ |  |jt	¡ d S )Né   r   é   é   é   )
ÚassertEqualÚlenÚgr_nameZassertIsInstanceÚstrZ	gr_passwdÚgr_gidÚintZgr_memÚlist)ÚselfÚvalue© r   úC/Users/admin/.pyenv/versions/3.10.0/lib/python3.10/test/test_grp.pyÚcheck_value   s   z!GroupDatabaseTestCase.check_valuec                 C   s    t  ¡ }|D ]}|  |¡ qd S )N)r   Úgetgrallr   )r   ÚentriesÚer   r   r   Útest_values   s   ÿz!GroupDatabaseTestCase.test_valuesc                 C   s˜   t  ¡ }t|ƒdkr|  d¡ |D ]8}t  |j¡}|  |¡ |  |j|j¡ |j}| 	d¡s3| 	d¡r4qt  
|¡}|  |¡ |  |j ¡ | ¡ ¡ qd S )Niè  z&huge group file, extended test skippedú+ú-)r   r   r
   ÚskipTestÚgetgrgidr   r   r	   r   Ú
startswithÚgetgrnamÚlower)r   r   r   Úe2Únamer   r   r   Útest_values_extended   s   



óz*GroupDatabaseTestCase.test_values_extendedc                 C   sp  |   ttj¡ |   ttj¡ |   ttjd¡ |   ttjd¡ i }i }t ¡ D ]\}}}}|r2|dkr3q&|||< |||< q&t| ¡ ƒ}d}|| }	|	|v r–t|	ƒ}
t	t
|
ƒƒD ]"}|
| dkrdd|
|<  q|
| dkrkqVtt|
| ƒd ƒ|
|<  q|d }z|| }	W n	 tyŒ   Y q–w d	 |
¡}	|	|v sL|   ttj|	¡ d
}||v r®|d d }||v s¤|   ttj|¡ d S )Né*   za br   r   ÚzÚAÚZr   Ú i  r   i   )ÚassertRaisesÚ	TypeErrorr   r   r   r   Ú
ValueErrorr   ÚkeysÚranger
   ÚchrÚordÚ
IndexErrorÚjoinÚKeyError)r   ZbynamesZbygidsÚnÚpÚgZmemZallnamesZnameiZfakenameÚcharsÚiZfakegidr   r   r   Útest_errors2   sL   
þ
îÿz!GroupDatabaseTestCase.test_errorsc                 C   sN   t  ¡ }|s|  d¡ |d d }|  tt jt|ƒ¡ |  tt jt|ƒ¡ d S )Nz	no groupsr   r   )r   r   r   r(   r)   r   Úfloatr   )r   r   Úgidr   r   r   Útest_noninteger_gidb   s   
z)GroupDatabaseTestCase.test_noninteger_gidN)Ú__name__Ú
__module__Ú__qualname__r   r   r"   r7   r:   r   r   r   r   r   	   s    0r   Ú__main__)
Ú__doc__ZunittestZtest.supportr   Úimport_moduler   ZTestCaser   r;   Úmainr   r   r   r   Ú<module>   s    
cÿ