관리-도구
편집 파일: test_apache.cpython-39.pyc
a f�Wc�r � @ s d Z ddlmZ ddlmZ ddlZddlZddlmZm Z ddl mZ ddlm Z ddlmZ dd lmZmZmZmZ dd lmZ ddlmZ ddlmZ ee�Zddd�Zej�d�p�dZddd�Z dd� Z!dd� Z"e"� \Z#Z$e�%e#d�Z&G dd� de�Z'G dd� de�Z(dS )z@tests for passlib.apache -- (c) Assurance Technologies 2008-2011� )�with_statement)� getLoggerN)�apache�registry)�MissingBackendError)�irange)�unittest)�TestCase�get_file�set_file�ensure_mtime_changed)�u)�to_bytes)�to_unicode_for_identify� c C s0 t j�| �}t j�| �| }t �| ||f� dS )z)backdate file's mtime by specified amountN)�os�path�getatime�getmtime�utime)r �offsetZatime�mtime� r �=/usr/lib/python3.9/site-packages/passlib/tests/test_apache.py�backdate_file_mtime s r ZPASSLIB_TEST_HTPASSWD_PATHZhtpasswdc C sb |dur|� d�}tjtg| tjtj|r0tjndd�}|�|�\}}|�� }t|pVd�}||fS )z$ helper to run htpasswd cmd N�utf-8)�stdout�stderr�stdin� ) �encode� subprocess�Popen� htpasswd_path�PIPEZSTDOUTZcommunicate�waitr )�argsr �proc�out�err�rcr r r �_call_htpasswd+ s �r+ c C s t d| |g|�\}}| S )z% wrapper for htpasswd verify z-vi)r+ )r �user�passwordr( r* r r r �_call_htpasswd_verify9 s r. c C sD zt g �\} }W n ty$ Y dS 0 |s4t�d� d| v }d|fS )z0 helper to check if htpasswd is present )FFz htpasswd test returned with rc=0z -B T)r+ �OSError�logZwarning)r( r* Zhave_bcryptr r r �_detect_htpasswdA s r1 z requires `htpasswd` cmdline toolc @ s� e Zd ZdZdZdZdZdZdZdZ dZ d Zd d� Zdd � Z dd� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zd d!� Zd"d#� Zd$d%� Zd&d'� Zd(d)� Zd*d+� Zd,d-� Zed.d/� �Zee �!e"�#d0�d1�d2d3� ��Z$d4S )5�HtpasswdFileTestztest HtpasswdFile class�HtpasswdFilest user2:2CHkkwa2AtqGs user3:{SHA}3ipNV1GrBtxPmHFC21fCbVCSXIo= user4:pass4 user1:$apr1$t4tc7jTh$GPIWVUo8sQKJlUdV8V5vu0 s4 user3:{SHA}3ipNV1GrBtxPmHFC21fCbVCSXIo= user4:pass4 sy user2:pass2x user3:{SHA}3ipNV1GrBtxPmHFC21fCbVCSXIo= user4:pass4 user1:$apr1$t4tc7jTh$GPIWVUo8sQKJlUdV8V5vu0 user5:pass5 s useræ:2CHkkwa2AtqGs s user�:2CHkkwa2AtqGs s user1:pass1 user1:pass2 s user2:2CHkkwa2AtqGs user3:{SHA}3ipNV1GrBtxPmHFC21fCbVCSXIo= user4:pass4 user1:$apr1$t4tc7jTh$GPIWVUo8sQKJlUdV8V5vu0 user5:$2a$12$yktDxraxijBZ360orOyCOePFGhuis/umyPNJoL5EbsLk.s6SWdrRO user6:$5$rounds=110000$cCRp/xUUGVgwR4aP$p0.QKFS5qLNRqw1/47lXYiAcgIjJK.WjCO8nrEKuUK. c C s* | � � }t|| j� t�|�}| �|�� | j� | �|j|� | �|j � |d |_| �|j|d � | � |j � tj|dd�}| �|�� d� | �|j|� | � |j � | �d�� tj|dd�}W d � n1 s�0 Y | �|�� d� | �|j|� | � |j � t� |� | �ttj|� dS ) �test constructor autoload�xT��new� z ``autoload=False`` is deprecatedF)ZautoloadN)�mktempr � sample_01r r3 �assertEqual� to_stringr � assertTruer �assertFalse�assertWarningListr �remove�assertRaises�IOError��selfr �htr r r �test_00_constructor_autoload} s( , z-HtpasswdFileTest.test_00_constructor_autoloadc C sP | � � }t|| j� tj�|�}| �|�� | j� | �|jd � | � |j � d S �N)r9 r r: r r3 Z from_pathr; r<