
    z%i                         	 d dl Z d dlZd dlZ G d dej                        Z G d dej                        Z G d dej                        Zedk(  r ej                          yy)	    Nc                   &    e Zd Z	 d Zd Zd Zd Zy)Compare_Digest_Testsc           	          dD ]t  }|dz  }|dz  }| j                  t        j                  ||             | j                  t        j                  |j                  d      |j                  d                   v y )N)abcdxyz123d   utf-8)
assertTruesecretscompare_digestencodeselfsr   bs       E/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/test/test_secrets.py
test_equalzCompare_Digest_Tests.test_equal   si    ' 	ZA#A#AOOG221a89OOG22188G3DahhwFWXY		Z    c           	         | j                  t        j                  dd             | j                  t        j                  dd             dD ]z  }|dz  dz   }|dz  dz   }| j                  t        j                  ||             | j                  t        j                  |j                  d	      |j                  d	                   | y )
Nabcabcds   abcs   abcd)xmna1b2c3r	   qkr
   )assertFalser   r   r   r   s       r   test_unequalz!Compare_Digest_Tests.test_unequal   s    //v>?//@A& 	[A#A#AW33Aq9:W33AHHW4EqxxPWGXYZ		[r   c                     d}|j                  d      }| j                  t        t        j                  ||       | j                  t        t        j                  ||       y )Nabcder
   )r   assertRaises	TypeErrorr   r   )r   r   r   s      r   test_bad_typesz#Compare_Digest_Tests.test_bad_types$   sK    HHW 	)W%;%;QB)W%;%;QBr   c                     | j                  t        j                  dd      t               | j                  t        j                  dd      t               y )Nr   xyz)assertIsInstancer   r   bool)r   s    r   	test_boolzCompare_Digest_Tests.test_bool-   s<    g44UEBDIg44UEBDIr   N)__name__
__module____qualname__r   r   r$   r)    r   r   r   r      s    /Z[CJr   r   c                        e Zd Z	 d Zd Zd Zy)Random_Testsc                     d}dD ]O  }t        d      D ]?  }t        j                  |      }| j                  d|cxk  xr d|z  k  nc |||fz         A Q y )Nzrandbits(%d) returned %d)            r      )ranger   randbitsr   )r   errmsgnumbitsins        r   test_randbitszRandom_Tests.test_randbits6   sb    +" 	LG1X L$$W-Q 3G 3Vwl5JKL	Lr   c                 x    g d}t        d      D ](  }| j                  t        j                  |      |v        * y )N)   r5                @   
   )r6   r   r   choice)r   itemsr:   s      r   test_choicezRandom_Tests.test_choice>   s4    (r 	<AOOGNN51U:;	<r   c                    t        dd      D ]0  }| j                  t        j                  |      t        |             2 | j	                  t
        t        j                  d       | j	                  t
        t        j                  d       y )Nr5   rD   r   )r6   assertInr   	randbelowr"   
ValueError)r   r:   s     r   test_randbelowzRandom_Tests.test_randbelowD   sd    q" 	:AMM'++A.a9	:*g&7&7;*g&7&7<r   N)r*   r+   r,   r<   rG   rM   r-   r   r   r/   r/   3   s    4L<=r   r/   c                   &    e Zd Z	 d Zd Zd Zd Zy)Token_Testsc                 ^   t         j                  t         j                  t         j                  fD ]:  }| j	                  |      5  |j
                  }	  |        	  |d        d d d        < t         j                  }| j                  t        t        j                  d             |       | j                  t        t        j                  d             d|z         y # t        $ r | j                  d|z         Y w xY w# t        $ r | j                  d|z         Y w xY w# 1 sw Y   xY w)N)funcz$%s cannot be called with no argumentz%s cannot be called with Noner5   )r   token_bytes	token_hextoken_urlsafesubTestr*   r#   failDEFAULT_ENTROPYassertEquallen)r   rQ   namesizes       r   test_token_defaultszToken_Tests.test_token_defaultsO   s   (('*;*;**, 	FD4( 	F}}MFFJ	F 	F	F &&W0067>W..t45qv> ! MIIDtKLM ! FII=DEF	F 	FsH   D#CD C=:D#<C==D# D D#D  D##D,	c           	         dD ]t  }| j                  |      5  | j                  t        j                  |      t               | j                  t        t        j                  |            |       d d d        v y # 1 sw Y   xY w)N)r>   r@      r	   r;   )rU   r'   r   rR   bytesrX   rY   )r   r;   s     r   test_token_byteszToken_Tests.test_token_bytesa   s{      	AA" A%%g&9&9!&<eD  W%8%8%;!<a@A A	AA As   AA;;B	c                 4   dD ]  }| j                  |      5  t        j                  |      }| j                  |t               | j                  t        |      d|z         | j                  t        d |D                     d d d         y # 1 sw Y   xY w)N)r>   r2      Z   r_   r5   c              3   @   K   | ]  }|t         j                  v   y wN)string	hexdigits).0cs     r   	<genexpr>z-Token_Tests.test_token_hex.<locals>.<genexpr>o   s     #EaA)9)9$9#Es   )	rU   r   rS   r'   strrX   rY   r   all)r   r;   r   s      r   test_token_hexzToken_Tests.test_token_hexh   s      	GA" G%%a(%%a-  Q1-#E1#E EF	G G	GG Gs   A+BB	c                 F   t         j                  t         j                  z   dz   dD ]k  }| j                  |      5  t	        j
                  |      }| j                  |t               | j                  t        fd|D                     d d d        m y # 1 sw Y   xxY w)Nz-_)r>         L   r_   c              3   &   K   | ]  }|v  
 y wrf   r-   )ri   rj   legals     r   rk   z1Token_Tests.test_token_urlsafe.<locals>.<genexpr>x   s     #:1AJ#:s   )
rg   ascii_lettersdigitsrU   r   rT   r'   rl   r   rm   )r   r;   r   rt   s      @r   test_token_urlsafezToken_Tests.test_token_urlsafeq   s    $$v}}4t;  	<A" <))!,%%a-#:#: :;< <	<< <s   ABB 	N)r*   r+   r,   r\   ra   rn   rw   r-   r   r   rO   rO   L   s    ?$AG<r   rO   __main__)	r   unittestrg   TestCaser   r/   rO   r*   mainr-   r   r   <module>r|      si      
!J8,, !JH=8$$ =2,<(## ,<^ zHMMO r   