ó yXXc@sÛdZddlZddlZejeƒZddlmZdddgZdefd„ƒYZ ddl m Z m Z e d Z e d Zd efd „ƒYZdd l mZdddgZdefd„ƒYZdS(s&passlib.tests -- tests for passlib.pwdiÿÿÿÿN(tTestCaset UtilsTestt GenerateTestt StrengthTestcBseZdZdZd„ZRS(stest internal utilitiess passlib.pwdcCs¸ddlm}|j|dƒdƒ|j|dƒdƒ|j|dƒdƒ|j|dƒdƒ|j|d ƒd ƒ|j|d dƒd ƒ|j|d ƒd d dƒdS(s_self_info_rate()iÿÿÿÿ(t_self_info_ratetitaitabitabcditabcdaaaag€·@‚âÇø?tplacesiNtaaaaaaaatabababababababab(t passlib.pwdRt assertEqualtassertAlmostEqual(tselfR((s:/usr/lib/python2.7/site-packages/passlib/tests/test_pwd.pyttest_self_info_rates(t__name__t __module__t__doc__tdescriptionPrefixR(((s:/usr/lib/python2.7/site-packages/passlib/tests/test_pwd.pyRs(tgenwordtdefault_charsetstascii_62thextWordGeneratorTestcBsDeZdZdZd„Zed„Zd„Zd„Zd„Z RS(stest generation routinesspasslib.pwd.genword()cCsCtt|ƒjƒddlm}|j|d|jdƒƒdS(Niÿÿÿÿ(tSequenceGeneratortrngs pwd generator(tsuperRtsetUpR Rt patchAttrt getRandom(RR((s:/usr/lib/python2.7/site-packages/passlib/tests/test_pwd.pyRDs cCsy|jt|ƒ|ƒ|rP|tkr1|}n|jtt|ƒƒ|ƒn|jtdj|ƒƒt|ƒƒdS(s2check result list matches expected count & charsetRN(RtlentTruetsettjoin(Rtresultstcounttcharstunique((s:/usr/lib/python2.7/site-packages/passlib/tests/test_pwd.pytassertResultContentsLs   cCs<tƒ}|jt|ƒdƒ|jtdtdtƒdS(sgeneral behaviori s(?i)unexpected keyword.*badkwdtbadkwdN(RRR!tassertRaisesRegext TypeErrorR"(Rtresult((s:/usr/lib/python2.7/site-packages/passlib/tests/test_pwd.pyt test_generalUs cCsƒtddƒ}|j|dtƒtdtƒ}gtdƒD]}t|ƒ^q>}|j|dtƒ|jttddƒdS(s'returns' keywordtreturnsiˆs invalid-typeN(RR)Rtitertrangetnextt assertRaisesR,(RR%tgent_((s:/usr/lib/python2.7/site-packages/passlib/tests/test_pwd.pyt test_returns_s %cCs|tddddƒ}|j|dtƒtddddddƒ}|j|ddd d ƒ|jttddddƒd S( s'charset' & 'chars' optionstcharsetRR/iˆtlengthiR'tabcR(iN(RR)RR3R,(RR%((s:/usr/lib/python2.7/site-packages/passlib/tests/test_pwd.pyt test_charsetms ( RRRRRR"R)R.R6R:(((s:/usr/lib/python2.7/site-packages/passlib/tests/test_pwd.pyR@s  (t genphrasetalphatbetatgammatPhraseGeneratorTestcBsGeZdZdZedd„Zd„Zd„Zd„Zd„Z RS(stest generation routinesspasslib.pwd.genphrase()t cs’|jt|ƒ|ƒ|rP|tkr1|}n|jtt|ƒƒ|ƒnttjj‡fd†|Dƒƒƒ}|j|t|ƒƒdS(s2check result list matches expected count & charsetc3s|]}|jˆƒVqdS(N(tsplit(t.0telem(tsep(s:/usr/lib/python2.7/site-packages/passlib/tests/test_pwd.pys sN(RR!R"R#t itertoolstchaint from_iterable(RR%R&twordsR(RDtout((RDs:/usr/lib/python2.7/site-packages/passlib/tests/test_pwd.pyR)‰s  (cCsEtƒ}|jt|jdƒƒdƒ|jtdtdtƒdS(sgeneral behaviorR@is(?i)unexpected keyword.*badkwdR*N(R;RR!RAR+R,R"(RR-((s:/usr/lib/python2.7/site-packages/passlib/tests/test_pwd.pyR.“s cCsÈtddƒ}|jt|jdƒƒdƒtddƒ}|jt|jdƒƒdƒtddddƒ}|jt|jdƒƒdƒtdddd ƒ}|jt|jdƒƒdƒd S( s'length' & 'entropy' keywordstentropyiFR@iR8ii0ii N(R;RR!RA(RR-((s:/usr/lib/python2.7/site-packages/passlib/tests/test_pwd.pyt test_entropyscCstdddtƒ}|j|dtƒtdtdtƒ}gtdƒD]}t|ƒ^qJ}|j|dtƒ|jttddƒdS(s'returns' keywordR/ièRHs invalid-typeN(R;t simple_wordsR)R0R1R2R3R,(RR%R4R5((s:/usr/lib/python2.7/site-packages/passlib/tests/test_pwd.pyR6°s %cCs|tdtddƒ}|j|dtƒtdddtddƒ}|j|dtdd ƒ|jttdtddƒd S( s'wordset' & 'words' optionsRHR/iˆR8iR(twordsettbip39Ni(R;RLR)R3R,(RR%((s:/usr/lib/python2.7/site-packages/passlib/tests/test_pwd.pyt test_wordset¾s ( RRRRR"R)R.RKR6RO(((s:/usr/lib/python2.7/site-packages/passlib/tests/test_pwd.pyR?…s  (RREtloggingt getLoggerRtlogtpasslib.tests.utilsRt__all__RR RRRRRR;RLR?(((s:/usr/lib/python2.7/site-packages/passlib/tests/test_pwd.pyts   '  B