
    dafW                        d dl Z d dlZd dlmZ d dlZ ej
                         5   ej                  de        ej                  d      Z	ddd        ej                   ee d      xr  e j                         d k(  d       G d dej                               Z ej                   ee d      xr  e j                         d k7  d	       G d
 dej                               Zedk(  r ej"                          yy# 1 sw Y   xY w)    N)import_helperignorespwdgeteuidzroot privileges requiredc                       e Zd Zd Zd Zy)TestSpwdRootc                     t         j                         }| j                  |t               |D ]"  }| j                  |t         j                         $ y )N)r   getspallassertIsInstanceliststruct_spwd)selfentriesentrys      )/root/Python-3.12.4/Lib/test/test_spwd.pytest_getspallzTestSpwdRoot.test_getspall   sB    --/gt, 	;E!!%)9)9:	;    c                    t         j                         }|s| j                  d       |d   j                  }t         j	                  |      }| j                  |t         j                         | j                  |j                  |       | j                  |j                  |d          | j                  |j                  |j                         | j                  |j                  t               | j                  |j                  |d          | j                  |j                  |j                         | j                  |j                  t               | j                  |j                  |d          | j                  |j                  t               | j                  |j                  |d          | j                  |j                  t               | j                  |j                  |d          | j                  |j                   t               | j                  |j                   |d          | j                  |j"                  t               | j                  |j"                  |d          | j                  |j$                  t               | j                  |j$                  |d	          | j                  |j&                  t               | j                  |j&                  |d
          | j)                  t*              5 }t         j	                  d       d d d        | j                  t        j,                        d       | j)                  t.        t         j                         | j)                  t.        t         j                  d       | j)                  t.        t         j                  |d       	 t1        j2                  |      }| j)                  t.        t         j                  |       y # 1 sw Y   xY w# t4        $ r Y y w xY w)Nzempty shadow password databaser                           zinvalid user namez'getspnam(): name not found')r   r
   skipTestsp_nampgetspnamr   r   assertEqualsp_namsp_pwdpstrsp_pwd	sp_lstchgintsp_minsp_maxsp_warnsp_inact	sp_expiresp_flagassertRaisesKeyError	exception	TypeErrorosfsencodeUnicodeEncodeError)r   r   random_namer   cx
bytes_names         r   test_getspnamzTestSpwdRoot.test_getspnam   s   --/MM:;aj((k*eT%5%564a15emmS1a15eoos3%(3ellC0uQx0ellC0uQx0emmS1a1ennc2q2eoos3%(3emmS1a1x( 	/BMM-.	/R\\*,JK)T]]3)T]]A6)T]]KC	D[1J i
C	/ 	/ " 		s    O.3O: .O7:	PPN)__name__
__module____qualname__r   r7    r   r   r   r      s    ;&Dr   r   znon-root user requiredc                       e Zd Zd Zy)TestSpwdNonRootc                     d}	 | j                  t              5 }t        j                  |       d d d        y # 1 sw Y   y xY w# t        $ r!}| j                  d|d|       Y d }~y d }~ww xY w)Nbinzspwd entry z doesn't exist: )r-   PermissionErrorr   r   r.   r   )r   namecmexcs       r   test_getspnam_exceptionz'TestSpwdNonRoot.test_getspnam_exceptionC   sc    	K""?3 $rd#$ $ $ 	KMMtSIJJ	Ks0   A 8A AA A 	A.A))A.N)r8   r9   r:   rD   r;   r   r   r=   r=   ?   s    Kr   r=   __main__)r1   unittesttest.supportr   warningscatch_warningssimplefilterDeprecationWarningimport_moduler   
skipUnlesshasattrr   TestCaser   r=   r8   mainr;   r   r   <module>rQ      s   	  &  X /H($67&=&&v.D/
 WR+A


0A/1.D8$$ .D1.Db WR+A


0A-/Kh'' K/K zHMMO K/ /s   &C::D