
    dafL                         d dl Z d dlZd dlmZ  ej                  d      Z ej                   eed      d       G d dej                               Z	e
dk(  r ej                          yy)	    N)import_helperpwdgetpwallzDoes not have getpwall()c                       e Zd Zd Zd Zd Zy)PwdTestc                    t         j                         }|D ]  }| j                  t        |      d       | j                  |d   |j                         | j                  |j                  t               | j                  |d   |j                         | j                  |j                  t               | j                  |d   |j                         | j                  |j                  t               | j                  |d   |j                         | j                  |j                  t               | j                  |d   |j                         | j                  t        |j                        t        t        d       f       | j                  |d   |j                         | j                  |j                  t               | j                  |d   |j                         | j                  |j                  t                y )	N   r                     )r   r   assertEquallenpw_nameassertIsInstancestr	pw_passwdpw_uidintpw_gidpw_gecosassertIntypepw_dirpw_shell)selfentrieses      (/root/Python-3.12.4/Lib/test/test_pwd.pytest_valueszPwdTest.test_values
   sp   ,,. 	3ASVQ'QqT199-!!!))S1QqT1;;/!!!++s3QqT188,!!!((C0QqT188,!!!((C0QqT1::.MM$qzz*S$t*,=>QqT188,!!!((C0QqT1::.!!!**c2	3    c                 F   t         j                         }i }i }t        |      dkD  r| j                  d       |D ]X  }|j	                  |j
                  g       j                  |       |j	                  |j                  g       j                  |       Z |D ]  }|d   r|d   dk(  r| j                  t         j                  |j
                        ||j
                            | j                  t         j                  |j                        ||j                             y )Ni  z*passwd file is huge; extended test skippedr   +)r   r   r   skipTest
setdefaultr   appendr   r   getpwnamgetpwuid)r   r   entriesbynameentriesbyuidr    s        r!   test_values_extendedzPwdTest.test_values_extended$   s    ,,.w<$MMFG 	<A$$QYY3::1=##AHHb188;	<  	JAQ41Q43;MM#,,qyy1=3KLMM#,,qxx0,qxx2HI		Jr#   c                 D   | j                  t        t        j                         | j                  t        t        j                  d       | j                  t        t        j                         | j                  t        t        j                  d       | j                  t        t        j
                  d       | j                  t        dt        j                  d       i }i }t        j                         D ]  \  }}}}}}}	|||<   |||<    t        |j                               }
d}|
r|
|   nd}||v r{t        |      }t        t        |            D ]8  }||   dk(  rd||<    n4||   d	k(  rt        t        ||         d
z         ||<    n |d
z   }	 |
|   }dj                  |      }||v r{| j                  t         t        j                  |       t"        j$                  }| j'                  ||       | j                  t         t        j                  |       | j                  t         t        j                  d       | j                  t         t        j                  ddz         | j                  t         t        j                  ddz          y # t        $ r Y w xY w)NgQ	@*   nullza br   invaliduserzAZr
    r      )assertRaises	TypeErrorr   r*   r)   r   assertRaisesRegex
ValueErrorlistkeysranger   chrord
IndexErrorjoinKeyErrorsysmaxsizeassertNotIn)r   bynamesbyuidsnpuggecosdsallnamesnameifakenamecharsifakeuids                   r!   test_errorszPwdTest.test_errors8   s3   )S\\2)S\\48)S\\2)S\\26)S\\26z63<<J ), 	%Q1a1GAJF1I	 '&.8E?M'!NE3u:& 8s?"E!H1X_"3uQx=1#45E!H 	'H wwu~H% '!( 	(CLL(; ++&)(CLL': 	(CLL"5(CLL!S&9(CLL1c6':+ " s   J 	JJN)__name__
__module____qualname__r"   r-   rV    r#   r!   r   r      s    34J(7;r#   r   __main__)rD   unittesttest.supportr   import_moduler   
skipUnlesshasattrTestCaser   rW   mainrZ   r#   r!   <module>rc      su    
  &!m!!%(WS*-/IJg;h g; Kg;R zHMMO r#   