Ë
    àU.j  ã                   óÊ   — d Z ddlZddlZ ej                  e«      ZddlmZ g d¢Z G d„ de«      Z	ddl
mZmZ ed   Zed	   Z G d
„ de«      Zddl
mZ g d¢Z G d„ de«      Zy)z&passlib.tests -- tests for passlib.pwdé    N)ÚTestCase)Ú	UtilsTestÚGenerateTestÚStrengthTestc                   ó   — e Zd ZdZdZd„ Zy)r   ztest internal utilitieszpasslib.pwdc                 ód  — ddl m} | j                   |d«      d«       | j                   |d«      d«       | j                   |d«      d«       | j                   |d«      d«       | j                   |d«      d	«       | j                   |d
«      d	«       | j                   |d«      dd¬«       y)z_self_info_rate()r   )Ú_self_info_rateÚ ÚaaaaaaaaÚabé   ÚababababababababÚabcdé   Ú abcdabcdabcdabcdabcdabcdabcdabcdÚabcdaaaag€·@‚âÇø?é   )ÚplacesN)Úpasslib.pwdr	   ÚassertEqualÚassertAlmostEqual)Úselfr	   s     úXC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\passlib/tests/test_pwd.pyÚtest_self_info_ratezUtilsTest.test_self_info_rate   s�   € å/à×Ñ™¨Ó,¨aÔ0à×Ñ™¨Ó1°1Ô5à×Ñ™¨Ó.°Ô2Ø×Ñ™¨Ó2°AÔ6à×Ñ™¨Ó0°!Ô4Ø×Ñ™¨Ó4°aÔ8Ø×Ñ™¨zÓ:¸FÈ1ÐÕMó    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚdescriptionPrefixr   © r   r   r   r      s   „ Ù!Ø%ÐóNr   r   )ÚgenwordÚdefault_charsetsÚascii_62Úhexc                   ó@   ‡ — e Zd ZdZdZˆ fd„Zdd„Zd„ Zd„ Zd„ Z	ˆ xZ
S )	ÚWordGeneratorTestútest generation routineszpasslib.pwd.genword()c                 óz   •— t         t        | �  «        ddlm} | j                  |d| j                  d«      «       y )Nr   )ÚSequenceGeneratorÚrngzpwd generator)Úsuperr'   ÚsetUpr   r*   Ú	patchAttrÚ	getRandom)r   r*   Ú	__class__s     €r   r-   zWordGeneratorTest.setUpD   s3   ø€ ÜÔ Ñ,Ô.õ 	2Ø�‰Ð(¨%Ø—~‘~ oÓ6õ	8r   c                 óø   — | j                  t        |«      |«       |r*|du r|}| j                  t        t        |«      «      |«       | j                  t        dj                  |«      «      t        |«      «       y)ú2check result list matches expected count & charsetTr
   N)r   ÚlenÚsetÚjoin)r   ÚresultsÚcountÚcharsÚuniques        r   ÚassertResultContentsz&WordGeneratorTest.assertResultContentsL   s`   € à×Ñœ˜W› uÔ-ÙØ˜‰~Ø�Ø×ÑœS¤ W£Ó.°Ô7Ø×Ñœ˜RŸW™W WÓ-Ó.´°E³
Õ;r   c                 óˆ   — t        «       }| j                  t        |«      d«       | j                  t        dt         d¬«       y)úgeneral behavioré	   ú(?i)unexpected keyword.*badkwdT©ÚbadkwdN)r"   r   r3   ÚassertRaisesRegexÚ	TypeError©r   Úresults     r   Útest_generalzWordGeneratorTest.test_generalU   s:   € ô “ˆØ×Ñœ˜V› aÔ(ð 	×ÑœyÐ*JÌGÐ\`ÐÕar   c                 ó  — t        d¬«      }| j                  |dt        «       t        t        ¬«      }t	        d«      D �cg c]  }t        |«      ‘Œ }}| j                  |dt        «       | j                  t        t         d¬«       yc c}w )ú'returns' keywordéˆ  ©Úreturnsúinvalid-typeN)r"   r:   r$   ÚiterÚrangeÚnextÚassertRaisesrB   ©r   r6   ÚgenÚ_s       r   Útest_returnszWordGeneratorTest.test_returns_   sv   € ô  $Ô'ˆØ×!Ñ! '¨4´Ô:ô œdÔ#ˆÜ&+¨D¤kÓ2¡k ”4˜•9 kˆÐ2Ø×!Ñ! '¨4´Ô:ð 	×Ñœ)¤W°nÐÕEùò	 3s   ÁB	c                 óÌ   — t        dd¬«      }| j                  |dt        «       t        ddd¬«      }| j                  |ddd¬«       | j                  t        t         dd¬	«       y
)z'charset' & 'chars' optionsr%   rH   )ÚcharsetrJ   é   Úabc)Úlengthr8   rJ   é   ©r9   )r8   rU   N)r"   r:   r%   rO   rB   ©r   r6   s     r   Útest_charsetzWordGeneratorTest.test_charsetm   sb   € ô  %°Ô6ˆØ×!Ñ! '¨4´Ô5ô  ¨%¸Ô>ˆØ×!Ñ! '¨4°¸rÐ!ÔBð 	×Ñœ)¤W°EÀ5ÐÕIr   )T)r   r   r   r   r    r-   r:   rE   rS   r\   Ú__classcell__)r0   s   @r   r'   r'   @   s(   ø„ Ù"Ø/Ðô8ó<òbòFöJr   r'   )Ú	genphrase)ÚalphaÚbetaÚgammac                   ó4   — e Zd ZdZdZd	d„Zd„ Zd„ Zd„ Zd„ Z	y)
ÚPhraseGeneratorTestr(   zpasslib.pwd.genphrase()c                 ó,  ‡— | j                  t        |«      |«       |r*|du r|}| j                  t        t        |«      «      |«       t        t        j                  j                  ˆfd„|D «       «      «      }| j                  |t        |«      «       y)r2   Tc              3   ó@   •K  — | ]  }|j                  ‰«      –— Œ y ­w)N)Úsplit)Ú.0ÚelemÚseps     €r   Ú	<genexpr>z;PhraseGeneratorTest.assertResultContents.<locals>.<genexpr>�   s   øè ø€ Ð/TÉGÀD°·
±
¸3·ÉGùs   ƒN)r   r3   r4   Ú	itertoolsÚchainÚfrom_iterable)r   r6   r7   Úwordsr9   ri   Úouts        ` r   r:   z(PhraseGeneratorTest.assertResultContents‰   sr   ø€ à×Ñœ˜W› uÔ-ÙØ˜‰~Ø�Ø×ÑœS¤ W£Ó.°Ô7Ü”)—/‘/×/Ñ/Ó/TÉGÓ/TÓTÓUˆØ×Ñ˜œc %›jÕ)r   c                 ó¦   — t        «       }| j                  t        |j                  d«      «      d«       | j	                  t
        dt         d¬«       y)r<   Ú r   r>   Tr?   N)r^   r   r3   rf   rA   rB   rC   s     r   rE   z PhraseGeneratorTest.test_general“   sD   € ô “ˆØ×Ñœ˜VŸ\™\¨#Ó.Ó/°Ô3ð 	×ÑœyÐ*JÌIÐ^bÐÕcr   c                 ó¸  — t        d¬«      }| j                  t        |j                  d«      «      d«       t        d¬«      }| j                  t        |j                  d«      «      d«       t        dd¬«      }| j                  t        |j                  d«      «      d	«       t        d	d
¬«      }| j                  t        |j                  d«      «      d	«       y)z'length' & 'entropy' keywordséF   )Úentropyrq   é   rV   )rX   é0   )rX   rt   r   é   N)r^   r   r3   rf   rC   s     r   Útest_entropyz PhraseGeneratorTest.test_entropy�   s®   € ô  2Ô&ˆØ×Ñœ˜VŸ\™\¨#Ó.Ó/°Ô3ô  !Ô$ˆØ×Ñœ˜VŸ\™\¨#Ó.Ó/°Ô3ô  !¨RÔ0ˆØ×Ñœ˜VŸ\™\¨#Ó.Ó/°Ô3ô  !¨RÔ0ˆØ×Ñœ˜VŸ\™\¨#Ó.Ó/°Õ3r   c                 ó0  — t        dt        ¬«      }| j                  |dt        «       t        t        t        ¬«      }t	        d«      D �cg c]  }t        |«      ‘Œ }}| j                  |dt        «       | j                  t        t         d¬«       yc c}w )rG   iè  )rJ   rn   rK   rI   N)r^   Úsimple_wordsr:   rL   rM   rN   rO   rB   rP   s       r   rS   z PhraseGeneratorTest.test_returns°   sz   € ô  D´Ô=ˆØ×!Ñ! '¨4´Ô>ô ¤¬LÔ9ˆÜ&+¨D¤kÓ2¡k ”4˜•9 kˆÐ2Ø×!Ñ! '¨4´Ô>ð 	×Ñœ)¤Y¸ÐÕGùò	 3s   ÁBc                 óì   — t        t        d¬«      }| j                  |dt        «       t        dt        d¬«      }| j                  |dt        d¬«       | j                  t        t         t        d¬«       y	)
z'wordset' & 'words' optionsrH   )rn   rJ   rV   )rX   rn   rJ   rY   rZ   Úbip39)rn   ÚwordsetN)r^   rz   r:   rO   rB   r[   s     r   Útest_wordsetz PhraseGeneratorTest.test_wordset¾   sb   € ô ¤,¸Ô=ˆØ×!Ñ! '¨4´Ô>ô  1¬LÀ$ÔGˆØ×!Ñ! '¨4´ÀdÐ!ÔKð 	×Ñœ)¤Y´lÈGÐÕTr   N)Trq   )
r   r   r   r   r    r:   rE   rx   rS   r~   r!   r   r   rc   rc   …   s'   „ Ù"Ø1Ðó*òdò4ò&HóUr   rc   )r   rk   ÚloggingÚ	getLoggerr   ÚlogÚpasslib.tests.utilsr   Ú__all__r   r   r"   r#   r$   r%   r'   r^   rz   rc   r!   r   r   Ú<module>r„      s   ðÙ ,ó
 Û Ð'�g×'Ñ'¨Ó1�õ )ò€ôN�ô N÷N 2Ø˜JÑ'€Ø�uÑ€ô9J˜ô 9JõD "Ú)€ôDU˜(õ DUr   