Sindbad~EG File Manager
a
��g�
� @ s� d dl Z d dlZd dlmZ e�d�Ze�ee d�o>e �� d kd�G dd� dej ��Z
e�ee d�one �� d kd�G d d
� d
ej ��Zedkr�e�
� dS )� N)�support�spwd�geteuidzroot privileges requiredc @ s e Zd Zdd� Zdd� ZdS )�TestSpwdRootc C s0 t �� }| �|t� |D ]}| �|t j� qd S )N)r �getspall�assertIsInstance�list�struct_spwd)�self�entries�entry� r
�*/usr/local/lib/python3.9/test/test_spwd.py�
test_getspall s zTestSpwdRoot.test_getspallc C s( t �� }|s| �d� |d j}t �|�}| �|t j� | �|j|� | �|j|d � | �|j|j� | �|j t
� | �|j |d � | �|j |j� | �|jt
� | �|j|d � | �|jt
� | �|j|d � | �|jt
� | �|j|d � | �|jt
� | �|j|d � | �|jt
� | �|j|d � | �|jt
� | �|j|d � | �|jt
� | �|j|d
� | �t��}t �d� W d � n1 �s�0 Y | �t
|j�d� | �tt j� | �tt jd� | �tt j|d� zt�|�}W n t�y Y n0 | �tt j|� d S )
Nzempty shadow password databaser � � � � � � � � zinvalid user namez'getspnam(): name not found')r r �skipTestZsp_namp�getspnamr r ZassertEqualZsp_namZsp_pwdp�strZsp_pwdZ sp_lstchg�intZsp_minZsp_maxZsp_warnZsp_inactZ sp_expireZsp_flag�assertRaises�KeyError� exception� TypeError�os�fsencode�UnicodeEncodeError)r
r Zrandom_namer ZcxZ
bytes_namer
r
r �
test_getspnam sJ
*zTestSpwdRoot.test_getspnamN)�__name__�
__module__�__qualname__r r# r
r
r
r r s r znon-root user requiredc @ s e Zd Zdd� ZdS )�TestSpwdNonRootc
C sx d}z8| � t��}t�|� W d � n1 s00 Y W n6 tyr } z| �d||f � W Y d }~n
d }~0 0 d S )N�binzspwd entry %r doesn't exist: %s)r �PermissionErrorr r r r )r
�name�cm�excr
r
r �test_getspnam_exception? s ,z'TestSpwdNonRoot.test_getspnam_exceptionN)r$ r% r&