o
    HXîh®  ã                   @   sJ   	 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 )é    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   ú7/opt/python-3.10.19/usr/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   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 ]\}}}}|rC|dkrDq7|||< |||< q7t| 	¡ ƒ}d}|| }	|	|v r§t|	ƒ}
t
t|
ƒƒD ]"}|
| dkrud|
|<  n)|
| d	kr|qgtt|
| ƒd
 ƒ|
|<  n|d
 }z|| }	W n	 ty   Y n
w d |
¡}	|	|v s]|   ttj|	¡ d}||v r¿|d d }||v sµ|   ttj|¡ d S )Ng…ëQ¸	@é*   Znullza br   r   ÚzÚAÚZr   Ú i  r   i   )ÚassertRaisesÚ	TypeErrorr   r   r   r   ZassertRaisesRegexÚ
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   sP   
þ
îÿ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_gidd   s   
z)GroupDatabaseTestCase.test_noninteger_gidN)Ú__name__Ú
__module__Ú__qualname__r   r   r"   r7   r:   r   r   r   r   r   	   s    2r   Ú__main__)	ZunittestZtest.supportr   Úimport_moduler   ZTestCaser   r;   Úmainr   r   r   r   Ú<module>   s    
eÿ