a 5êdgã@sfdZddlZddlZddlZGdd„dejƒZGdd„dejƒZGdd„dejƒZed krbe  ¡dS) zTest the secrets module. As most of the functions in secrets are thin wrappers around functions defined elsewhere, we don't need to test them exhaustively. éNc@s0eZdZdZdd„Zdd„Zdd„Zdd „Zd S) ÚCompare_Digest_Testsz%Test secrets.compare_digest function.c CsNdD]D}|d}|d}| t ||¡¡| t | d¡| d¡¡¡qdS)N)ÚaZbcdZxyz123édúutf-8)Ú assertTrueÚsecretsÚcompare_digestÚencode©ÚselfÚsrÚb©rú-/usr/local/lib/python3.9/test/test_secrets.pyÚ test_equals zCompare_Digest_Tests.test_equalc Csz| t dd¡¡| t dd¡¡dD]L}|dd}|dd}| t ||¡¡| t | d ¡| d ¡¡¡q(dS) NÚabcZabcdsabcsabcd)ÚxZmnZa1b2c3rÚqÚkr)Z assertFalserrr r rrrÚ test_unequals  z!Compare_Digest_Tests.test_unequalcCs6d}| d¡}| ttj||¡| ttj||¡dS)NZabcder)r Ú assertRaisesÚ TypeErrorrr)r rr rrrÚtest_bad_types$s z#Compare_Digest_Tests.test_bad_typescCs,| t dd¡t¡| t dd¡t¡dS)NrZxyz)ÚassertIsInstancerrÚbool)r rrrÚ test_bool-szCompare_Digest_Tests.test_boolN)Ú__name__Ú __module__Ú __qualname__Ú__doc__rrrrrrrrrs   rc@s(eZdZdZdd„Zdd„Zdd„ZdS) Ú Random_Testsz*Test wrappers around SystemRandom methods.cCsVd}dD]H}tdƒD]:}t |¡}| d|kos zRandom_Tests.test_choicecCsJtddƒD]}| t |¡t|ƒ¡q | ttjd¡| ttjd¡dS)Nr%r1réÿÿÿÿ)r&ZassertInrÚ randbelowrÚ ValueError)r r(rrrÚtest_randbelowDszRandom_Tests.test_randbelowN)rrrrr*r4r8rrrrr 3sr c@s0eZdZdZdd„Zdd„Zdd„Zdd „Zd S) Ú Token_TestszTest token functions.c CsÜtjtjtjfD]}|j|dp|j}z |ƒWn tyR| d|¡Yn0z |dƒWn ty€| d|¡Yn0Wdƒq1s–0Yqtj}|  t t d¡ƒ|¡|  t t d¡ƒd|¡dS)N)Úfuncz$%s cannot be called with no argumentz%s cannot be called with Noner%) rÚ token_bytesÚ token_hexÚ token_urlsafeÚsubTestrrZfailZDEFAULT_ENTROPYÚ assertEqualÚlen)r r:ÚnameÚsizerrrÚtest_token_defaultsOs ÿ    4zToken_Tests.test_token_defaultsc CsbdD]X}|j|d8| t |¡t¡| tt |¡ƒ|¡Wdƒq1sR0YqdS)N)r+r-ér©r))r>rrr;Úbytesr?r@)r r)rrrÚtest_token_bytesaszToken_Tests.test_token_bytesc Cs|dD]r}|j|dRt |¡}| |t¡| t|ƒd|¡| tdd„|Dƒƒ¡Wdƒq1sl0YqdS)N)r+r"ééZrEr%css|]}|tjvVqdS©N)ÚstringÚ hexdigits©Ú.0ÚcrrrÚ oóz-Token_Tests.test_token_hex..) r>rr<rÚstrr?r@rÚall©r r)r rrrÚtest_token_hexhs   zToken_Tests.test_token_hexc s|tjtjd‰dD]b}|j|dBt |¡}| |t¡| t ‡fdd„|Dƒƒ¡Wdƒq1sl0YqdS)Nz-_)r+é ééLrEc3s|]}|ˆvVqdSrJrrM©ZlegalrrrPxrQz1Token_Tests.test_token_urlsafe..) rKÚ ascii_lettersÚdigitsr>rr=rrRrrSrTrrYrÚtest_token_urlsafeqs   zToken_Tests.test_token_urlsafeN)rrrrrCrGrUr\rrrrr9Ls  r9Ú__main__) rrZunittestrKZTestCaserr r9rÚmainrrrrÚs$/