o
    _6d                     @   s   d Z ddlZddlZeeZddlmZ g dZG dd deZ	ddl
mZmZ ed Zed	 ZG d
d deZddl
mZ g dZG dd deZdS )z&passlib.tests -- tests for passlib.pwd    N)TestCase)	UtilsTestZGenerateTestZStrengthTestc                   @   s   e Zd ZdZdZdd ZdS )r   ztest internal utilitieszpasslib.pwdc                 C   s   ddl m} | |dd | |dd | |dd | |dd | |dd	 | |d
d	 | j|dddd dS )z_self_info_rate()r   )_self_info_rate Zaaaaaaaaab   Zabababababababababcd   Z abcdabcdabcdabcdabcdabcdabcdabcdZabcdaaaag@?   )ZplacesN)passlib.pwdr   assertEqualZassertAlmostEqual)selfr    r   mC:\Users\jesus\OneDrive\Desktop\erpjis_fastapi\backend\jisbackend\Lib\site-packages\passlib/tests/test_pwd.pytest_self_info_rate   s   zUtilsTest.test_self_info_rateN)__name__
__module____qualname____doc__descriptionPrefixr   r   r   r   r   r      s    r   )genworddefault_charsetsascii_62hexc                       sF   e Zd ZdZdZ fddZdddZdd	 Zd
d Zdd Z	  Z
S )WordGeneratorTesttest generation routineszpasslib.pwd.genword()c                    s2   t t|   ddlm} | |d| d d S )Nr   )SequenceGeneratorrngzpwd generator)superr   setUpr   r   Z	patchAttrZ	getRandom)r   r   	__class__r   r   r   D   s
   zWordGeneratorTest.setUpTc                 C   sR   |  t|| |r|du r|}|  tt|| |  td|t| dS )2check result list matches expected count & charsetTr   N)r   lensetjoin)r   resultscountcharsuniquer   r   r   assertResultContentsL   s   z&WordGeneratorTest.assertResultContentsc                 C   s,   t  }| t|d | jtdt dd dS )general behavior	   (?i)unexpected keyword.*badkwdTZbadkwdN)r   r   r#   assertRaisesRegex	TypeErrorr   resultr   r   r   test_generalU   s   zWordGeneratorTest.test_generalc                    sZ   t dd}| |dt t td  fddtdD }| |dt | jtt dd dS )'returns' keyword  returnsc                       g | ]}t  qS r   next.0_genr   r   
<listcomp>g       z2WordGeneratorTest.test_returns.<locals>.<listcomp>invalid-typeN)r   r*   r   iterrangeassertRaisesr0   r   r&   r   r>   r   test_returns_   s   

zWordGeneratorTest.test_returnsc                 C   sP   t ddd}| |dt t dddd}| j|dddd | jtt ddd	 d
S )z'charset' & 'chars' optionsr   r5   )charsetr7      abc)lengthr(   r7      r)   )r(   rH   N)r   r*   r   rE   r0   rF   r   r   r   test_charsetm   s
   zWordGeneratorTest.test_charset)T)r   r   r   r   r   r   r*   r3   rG   rN   __classcell__r   r   r    r   r   @   s    
	
r   )	genphrase)alphabetagammac                   @   s>   e Zd ZdZdZdddZdd Zd	d
 Zdd Zdd Z	dS )PhraseGeneratorTestr   zpasslib.pwd.genphrase()T c                    sf   |  t|| |r|du r|}|  tt|| ttj fdd|D }|  |t| dS )r"   Tc                 3   s    | ]}|  V  qd S )N)split)r<   elemsepr   r   	<genexpr>   s    z;PhraseGeneratorTest.assertResultContents.<locals>.<genexpr>N)r   r#   r$   	itertoolschainfrom_iterable)r   r&   r'   wordsr)   rY   outr   rX   r   r*      s   z(PhraseGeneratorTest.assertResultContentsc                 C   s2   t  }| t|dd | jtdt dd dS )r+   rU   r
   r-   Tr.   N)rP   r   r#   rV   r/   r0   r1   r   r   r   r3      s   z PhraseGeneratorTest.test_generalc                 C   s   t dd}| t|dd t dd}| t|dd t ddd}| t|dd	 t d	d
d}| t|dd	 dS )z'length' & 'entropy' keywordsF   )entropyrU      rI   )rK   0   )rK   ra   r
      N)rP   r   r#   rV   r1   r   r   r   test_entropy   s   

z PhraseGeneratorTest.test_entropyc                    s^   t dtd}| |dt t ttd  fddtdD }| |dt | jtt dd dS )r4   i  )r7   r^   c                    r8   r   r9   r;   r>   r   r   r@      rA   z4PhraseGeneratorTest.test_returns.<locals>.<listcomp>rB   r6   N)rP   simple_wordsr*   rC   rD   rE   r0   rF   r   r>   r   rG      s   z PhraseGeneratorTest.test_returnsc                 C   sP   t tdd}| |dt t dtdd}| j|dtdd | jtt tdd d	S )
z'wordset' & 'words' optionsr5   )r^   r7   rI   )rK   r^   r7   rL   rM   Zbip39)r^   ZwordsetN)rP   rf   r*   rE   r0   rF   r   r   r   test_wordset   s
   z PhraseGeneratorTest.test_wordsetN)TrU   )
r   r   r   r   r   r*   r3   re   rG   rg   r   r   r   r   rT      s    


rT   )r   r[   logging	getLoggerr   logZpasslib.tests.utilsr   __all__r   r   r   r   r   r   r   rP   rf   rT   r   r   r   r   <module>   s    	'B