3
sY]"                 @   sT   d dl Z d dlZd dlmZ ejdZdd ZG dd dejZe	dkrPej
  dS )	    N)supportpwdc               C   s0   t tdrtj S t tdr(tjdgS g S d S )Ngetpwallgetpwuidr   )hasattrr   r   r    r   r   lib/python3.6/test/test_pwd.py	_getpwall   s
    

r	   c               @   s$   e Zd Zdd Zdd Zdd ZdS )PwdTestc             C   s  t  }x|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|j
t | j|d |j | j|jt | j|d |j | j|jt qW d S )	N   r                     )r	   ZassertEquallenpw_nameZassertIsInstancestrZ	pw_passwdpw_uidintZpw_gidZpw_gecospw_dirZpw_shell)selfentrieser   r   r   test_values   s"    
zPwdTest.test_valuesc             C   s   t  }i }i }t|dkr$| jd x4|D ],}|j|jg j| |j|jg j| q*W xX|D ]P}|d  s`|d dkr|q`| jtj	|j||j  | jtj
|j||j  q`W d S )Ni  z*passwd file is huge; extended test skippedr   +)r	   r   ZskipTest
setdefaultr   appendr   ZassertInr   getpwnamr   )r   r   ZentriesbynameZentriesbyuidr   r   r   r   test_values_extended,   s    


zPwdTest.test_values_extendedc             C   s  | j ttj | j ttjd | j ttj | j ttjd ttdrV| j ttjd i }i }x,t D ]"\}}}}}}}	|||< |||< qfW t|j	 }
d}|
| }x||krJt|}xt
t|D ]F}|| dkrd||< P q|| dkrqqtt|| d ||< P qW |d }y|
| }W n tk
r<   P Y nX d	j|}qW | j ttj| tj}| j|| tjs| j ttj| tjs| j ttjd | j ttjd
d  | j ttjd
d   d S )NgQ	@*   r   r   zAZr    r      )ZassertRaises	TypeErrorr   r   r   r   r   r	   listkeysranger   chrord
IndexErrorjoinKeyErrorsysmaxsizeZassertNotInr   Z
is_android)r   ZbynamesZbyuidsnpugZgecosdsZallnamesZnameiZfakenamecharsiZfakeuidr   r   r   test_errors@   sN    
	zPwdTest.test_errorsN)__name__
__module____qualname__r   r    r;   r   r   r   r   r
      s   r
   __main__)r1   ZunittestZtestr   import_moduler   r	   ZTestCaser
   r<   mainr   r   r   r   <module>   s   
	l