shell bypass 403
o
ab� � @ sb d dl Z d dlZd dlmZ e�d�Ze�eed�d�G dd� dej��Z e
dkr/e�� dS dS ) � N)�
import_helper�pwd�getpwallzDoes not have getpwall()c @ s$ e Zd Zdd� Zdd� Zdd� ZdS )�PwdTestc C s t �� }|D ]�}| �t|�d� | �|d |j� | �|jt� | �|d |j� | �|jt� | �|d |j� | �|jt � | �|d |j
� | �|j
t � | �|d |j� | �t
|j�tt
d �f� | �|d |j� | �|jt� | �|d |j� | �|jt� qd S ) N� r � � � � � � )r r ZassertEqual�len�pw_nameZassertIsInstance�strZ pw_passwd�pw_uid�intZpw_gidZpw_gecos�assertIn�type�pw_dirZpw_shell)�self�entries�e� r �6/usr/local/python-3.10/lib/python3.10/test/test_pwd.py�test_values
s$ �zPwdTest.test_valuesc C s� t �� }i }i }t|�dkr| �d� |D ]}|�|jg ��|� |�|jg ��|� q|D ]'}|d r:|d dkr;q.| �t � |j�||j � | �t �
|j�||j � q.d S )Ni� z*passwd file is huge; extended test skippedr �+)r r r
ZskipTest�
setdefaultr �appendr r �getpwnam�getpwuid)r r Z
entriesbynameZentriesbyuidr r r r �test_values_extended$ s
�zPwdTest.test_values_extendedc C s� | � ttj� | � ttjd� | � ttj� | � ttjd� | � ttjd� i }i }t�� D ]\}}}}}}} |||<