?????????? ????????? - ??????????????? - /usr/lib/python3.9/site-packages/passlib/tests/__pycache__/test_ext_django_source.cpython-39.pyc
???????
a f�Wc+ � @ s d Z ddlmZmZmZ ddlZe�e�Zddl m Z ddlmZm Z mZ ddlmZmZ ddlmZmZmZ er~dd lmZ d gZdZdZedd�r�d Z�n e�r�ddlZddlZej�d�Ze�r�ej� e�s�e!de ��e"dd� dD ��s�e!de ��e�#de� ej�$ed�Z%ej�&de%� z\zddl'm(Z W n: e)�yp Z* z e e!dee*f ���W Y dZ*[*n dZ*[*0 0 W ej�+e%� nej�+e%� 0 ndZed��r�ej,�-d� ne�r�dZndZe�r ddl.m/Z/ ddl0m1Z1 ddl2m3Z3 dd l m4Z4 G d!d � d ej5e�Z6nG d"d � d e�Z6dS )#z5 test passlib.ext.django against django source tests � )�absolute_import�division�print_functionN)�suppress_cause)�DJANGO_VERSION�DjangoTranslator�_PasslibHasherWrapper)�TestCase� TEST_MODE� )�has_min_django�stock_config�_ExtensionSupport)�settings�HashersTestZquick)�maxzrequires >= 'default' test modeZ PASSLIB_TESTS_DJANGO_SOURCE_PATHz django source path not found: %rc c s$ | ]}t j�t j�t|��V qd S �N)�os�path�exists�join�source_path)�.0�name� r �H/usr/lib/python3.9/site-packages/passlib/tests/test_ext_django_source.py� <genexpr>6 s �r )Zdjango�testszinvalid django source path: %rz'using django tests from source path: %rr )�test_hashersz=error trying to import django tests from source path (%r): %rz3requires PASSLIB_TESTS_DJANGO_SOURCE_PATH to be setZfullzt WARNING: $PASSLIB_TESTS_DJANGO_SOURCE_PATH is not set; can't run Django's own unittests against passlib.ext.django zdjango version too oldzdjango not installed)�setting_changed)�receiver�� import_string)�get_unbound_method_functionc sJ e Zd ZdZeej�Zdd� Z� fdd�Zdd� Z e Z e Ze Ze Z � ZS )r zq Run django's hasher unittests against passlib's extension and workalike implementations c s� | j tdd� ddlm� �j�ddlm} dD ]}| �t|t ||�� q0ddl m} | �|dd� t� j �ttdd ����fd d��}| �tj|� |� ��fdd ��dg� � �fdd�}dD ]}| j�||dd� q�| j�d|dd� d S )NF)ZPASSLIB_CONTEXT�checkr )�adapter)�hashers)Z make_passwordZcheck_passwordZidentify_hasherZis_password_usableZ get_hasher)�django_des_cryptZuse_duplicate_salt)Zweakc st | r| d dkrd S �� j u s"J ��fdd�tjD �}d|v rPd|vrP|�d� |�d� �j|dd � � �� d S ) NZsetting�PASSWORD_HASHERSc s g | ]}� t |�� ��qS r r! )r Z hash_path)�django_to_passlib_namer r � <listcomp>� s �z=HashersTest.setUp.<locals>.update_schemes.<locals>.<listcomp>Zhex_md5Zdjango_salted_md5Zdjango_disabled�auto)�schemesZ deprecated)�contextr r( �append�updateZ reset_hashers)�kwdsr, )r% r- r) r r �update_schemes� s � z)HashersTest.setUp.<locals>.update_schemesc sl �j dd�D ]Z} d| jvrq� �| �}t|t�r2qt|dd�pHt|dd�}|du rTq| | _ | _| _qdS )zN sync django hasher config -> passlib hashers T)�resolve�roundsNZ iterations) r, Zsetting_kwdsZpasslib_to_django� isinstancer �getattrZmin_desired_roundsZmax_desired_roundsZdefault_rounds)�handlerZhasherr3 )r% r- r r � update_rounds� s �z(HashersTest.setUp.<locals>.update_roundsc s<