U
    #i                     @   s   d Z ddlZddlZeeZddlmZ dddg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 dddg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   ^/var/www/html/me.goteku.com/backend/venv/lib/python3.8/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   )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|| |r4|dk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                    s   g | ]}t  qS r   next.0_genr   r   
<listcomp>g   s     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(   rF   N)r   r*   r   rC   r0   rD   r   r   r   test_charsetm   s
    zWordGeneratorTest.test_charset)T)r   r   r   r   r   r   r*   r3   rE   rL   __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|| |r4|dk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)   rW   outr   rV   r   r*      s    z(PhraseGeneratorTest.assertResultContentsc                 C   s2   t  }| t|dd | jtdt dd dS )r+   rS   r
   r-   Tr.   N)rN   r   r#   rT   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   )entropyrS      rG   )rI   0   )rI   r_   r
      N)rN   r   r#   rT   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                    s   g | ]}t  qS r   r8   r:   r=   r   r   r?      s     z4PhraseGeneratorTest.test_returns.<locals>.<listcomp>r@   r6   N)rN   simple_wordsr*   rA   rB   rC   r0   rD   r   r=   r   rE      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   rG   )rI   r\   r7   rJ   rK   Zbip39)r\   ZwordsetN)rN   rd   r*   rC   r0   rD   r   r   r   test_wordset   s
    z PhraseGeneratorTest.test_wordsetN)TrS   )
r   r   r   r   r   r*   r3   rc   rE   re   r   r   r   r   rR      s   


rR   )r   rY   logging	getLoggerr   logZpasslib.tests.utilsr   __all__r   r   r   r   r   r   r   rN   rd   rR   r   r   r   r   <module>   s     
	'B
