
    <e                         	 d dl Z d dlmZ  ej        d          Z G d de j                  Zedk    r e j                     dS dS )    N)import_helpergrpc                   ,    e Zd Zd Zd Zd Zd Zd ZdS )GroupDatabaseTestCasec                 T   |                      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_nameassertIsInstancestr	gr_passwdgr_gidintgr_memlist)selfvalues     $/usr/lib/python3.11/test/test_grp.pycheck_valuez!GroupDatabaseTestCase.check_value   s     	UQ'''q5=111emS111q5?333eos333q5<000elC000q5<000elD11111    c                 l    t                                           }|D ]}|                     |           d S )N)r   getgrallr   )r   entrieses      r   test_valuesz!GroupDatabaseTestCase.test_values   s?    ,,.. 	  	 AQ	  	 r   c                 z   t                                           }t          |          dk    r|                     d           |D ]}t                               |j                  }|                     |           |                     |j        |j                   |j        }|	                    d          s|	                    d          rt           
                    |          }|                     |           |                     |j                                        |                                           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names        r   test_values_extendedz*GroupDatabaseTestCase.test_values_extended   s   ,,..w<<$MMBCCC 	? 	?Aah''BR   RY1119Ds## ts';'; d##BR    RZ--//>>>>	? 	?r   c                    |                      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 ]\  }}}}|r|dk    r|||<   |||<   t          |	                                          }d}||         }	|	|v rt          |	          }
t          t          |
                    D ]K}|
|         dk    rd|
|<    nV|
|         d	k    r"t          t          |
|                   d
z             |
|<    n|d
z   }	 ||         }	n# t          $ r Y nw xY wd                    |
          }	|	|v |                      t           t          j        |	           d}||v r|dz  dz  }||v |                      t           t          j        |           d S )NgQ	@*   nullza br!   r   zAZr	    i  r   i   )assertRaises	TypeErrorr   r$   r&   r   assertRaisesRegex
ValueErrorr   keysranger   chrord
IndexErrorjoinKeyError)r   bynamesbygidsnpgmemallnamesnameifakenamecharsifakegids                r   test_errorsz!GroupDatabaseTestCase.test_errors2   sV   )S\222)S\4888)S\222)S\2666)S\2666z63<JJJ !llnn 	 	NQ1c SGAJF1II''E?'!!NNE3u::&&  8s??"E!HE1X__"3uQx==1#455E!HE	'HH!   E wwu~~H% '!!( 	(CL(;;; {g-G  	(CL':::::s   G 
GGc                 N   t                                           }|s|                     d           |d         d         }|                     t          t           j        t          |                     |                     t          t           j        t          |                     d S )Nz	no groupsr   r
   )r   r   r#   r2   r3   r$   floatr   )r   r   gids      r   test_noninteger_gidz)GroupDatabaseTestCase.test_noninteger_gidd   s|    ,,.. 	'MM+&&&ajm)S\5::>>>)S\3s88<<<<<r   N)__name__
__module____qualname__r   r   r*   rI   rM    r   r   r   r   	   s`        2 2 2     ? ? ?(0; 0; 0;d= = = = =r   r   __main__)	unittesttest.supportr   import_moduler   TestCaser   rN   mainrQ   r   r   <module>rX      s    %  & & & & & & "m!%((b= b= b= b= b=H- b= b= b=J zHMOOOOO r   