
    0hh                         S SK r S SKrS SKr " S S\R                  5      r " S S\R                  5      r " S S\R                  5      r\S:X  a  \R                  " 5         gg)	    Nc                   ,    \ rS rSrS rS rS rS rSrg)Compare_Digest_Tests   c           	          S Hv  nUS-  nUS-  nU R                  [        R                  " X#5      5        U R                  [        R                  " UR                  S5      UR                  S5      5      5        Mx     g )N)abcdxyz123d   utf-8)
assertTruesecretscompare_digestencodeselfsr   bs       :/opt/python-3.13.8/usr/lib/python3.13/test/test_secrets.py
test_equalCompare_Digest_Tests.test_equal   s`    'A#A#AOOG22189OOG22188G3DahhwFWXY	 (    c           	         U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        S H|  nUS-  S-   nUS-  S-   nU R                  [        R                  " X#5      5        U R                  [        R                  " UR                  S	5      UR                  S	5      5      5        M~     g )
Nabcabcds   abcs   abcd)xmna1b2c3r
   qkr   )assertFalser   r   r   r   s       r   test_unequal!Compare_Digest_Tests.test_unequal   s    //v>?//@A&A#A#AW33A9:W33AHHW4EqxxPWGXYZ	 'r   c                     SnUR                  S5      nU R                  [        [        R                  X5        U R                  [        [        R                  X!5        g )Nabcder   )r   assertRaises	TypeErrorr   r   )r   r   r   s      r   test_bad_types#Compare_Digest_Tests.test_bad_types$   sG    HHW 	)W%;%;QB)W%;%;QBr   c                     U R                  [        R                  " SS5      [        5        U R                  [        R                  " SS5      [        5        g )Nr   xyz)assertIsInstancer   r   bool)r   s    r   	test_boolCompare_Digest_Tests.test_bool-   s<    g44UEBDIg44UEBDIr    N)	__name__
__module____qualname____firstlineno__r   r!   r'   r-   __static_attributes__r/   r   r   r   r      s    Z[CJr   r   c                   &    \ rS rSrS rS rS rSrg)Random_Tests3   c                     SnS HW  n[        S5       HE  n[        R                  " U5      nU R                  SUs=:*  =(       a    SU-  :  Os  XU4-  5        MG     MY     g )Nzrandbits(%d) returned %d)            r      )ranger   randbitsr   )r   errmsgnumbitsins        r   test_randbitsRandom_Tests.test_randbits6   sU    +"G1X$$W-Q 3 3G 3Vl5JK  #r   c                     / SQn[        S5       H+  nU R                  [        R                  " U5      U;   5        M-     g )N)   r=                @   
   )r>   r   r   choice)r   itemsrB   s      r   test_choiceRandom_Tests.test_choice>   s/    (rAOOGNN51U:; r   c                    [        SS5       H2  nU R                  [        R                  " U5      [        U5      5        M4     U R	                  [
        [        R                  S5        U R	                  [
        [        R                  S5        g )Nr=   rM   r   )r>   assertInr   	randbelowr%   
ValueError)r   rB   s     r   test_randbelowRandom_Tests.test_randbelowD   s_    q"AMM'++A.a9 *g&7&7;*g&7&7<r   r/   N)r0   r1   r2   r3   rD   rP   rW   r4   r/   r   r   r6   r6   3   s    L<=r   r6   c                   ,    \ rS rSrS rS rS rS rSrg)Token_TestsL   c                 r   [         R                  [         R                  [         R                  4 H8  nU R	                  US9   UR
                  n U" 5          U" S 5        S S S 5        M:     [         R                  nU R                  [        [         R                  " S 5      5      U5        U R                  [        [         R                  " S 5      5      SU-  5        g ! [         a    U R                  SU-  5         Nf = f! [         a    U R                  SU-  5         Nf = f! , (       d  f       GM  = f)N)funcz$%s cannot be called with no argumentz%s cannot be called with Noner=   )r   token_bytes	token_hextoken_urlsafesubTestr0   r&   failDEFAULT_ENTROPYassertEquallen)r   r]   namesizes       r   test_token_defaultsToken_Tests.test_token_defaultsO   s   (('*;*;**,D4(}}MFFJ )(, &&W0067>W..t45qv> ! MIIDtKLM ! FII=DEF )(sH   D&CDC?<D&>C??D&D# D&"D##D&&
D6	c           	         S Ht  nU R                  US9   U R                  [        R                  " U5      [        5        U R                  [        [        R                  " U5      5      U5        S S S 5        Mv     g ! , (       d  f       M  = f)N)rG   rI      r
   rC   )ra   r+   r   r^   bytesrd   re   )r   rC   s     r   test_token_bytesToken_Tests.test_token_bytesa   sd     A"%%g&9&9!&<eD  W%8%8%;!<a@ #" !""s   AA<<
B	c                 @   S H  nU R                  US9   [        R                  " U5      nU R                  U[        5        U R                  [        U5      SU-  5        U R                  [        S U 5       5      5        S S S 5        M     g ! , (       d  f       M  = f)N)rG   r:      Z   rl   r=   c              3   F   #    U  H  o[         R                  ;   v   M     g 7fN)string	hexdigits).0cs     r   	<genexpr>-Token_Tests.test_token_hex.<locals>.<genexpr>o   s     #E1a)9)9$91s   !)	ra   r   r_   r+   strrd   re   r   all)r   rC   r   s      r   test_token_hexToken_Tests.test_token_hexh   sx     A"%%a(%%a-  Q1-#E1#E EF	 #" !""s   A,B
B	c                 T  ^ [         R                  [         R                  -   S-   mS Hk  nU R                  US9   [        R
                  " U5      nU R                  U[        5        U R                  [        U4S jU 5       5      5        S S S 5        Mm     g ! , (       d  f       M  = f)Nz-_)rG         r[   rl   c              3   ,   >#    U  H	  oT;   v   M     g 7frt   r/   )rw   rx   legals     r   ry   1Token_Tests.test_token_urlsafe.<locals>.<genexpr>x   s     #:1Js   )
ru   ascii_lettersdigitsra   r   r`   r+   r{   r   r|   )r   rC   r   r   s      @r   test_token_urlsafeToken_Tests.test_token_urlsafeq   sz    $$v}}4t; A"))!,%%a-#:#: :; #" !""s   AB
B'	r/   N)	r0   r1   r2   r3   rh   rn   r}   r   r4   r/   r   r   rZ   rZ   L   s    ?$AG<r   rZ   __main__)	r   unittestru   TestCaser   r6   rZ   r0   mainr/   r   r   <module>r      sb      
!J8,, !JH=8$$ =2,<(## ,<^ zMMO r   