o
    tPf{                     @   s   d dl mZ e  d dlZzd dlZW n ey#   d dl mZ Y nw d dlZd dlZd dl	Z	d dl
Z
dZdd ZG dd de
jZedkrMe
  dS dS )	    )monkeyN)contextvarsc                    s   t   fdd}|S )z*Needed to make reftracking test mode work.c                     s    t  }|j g| R i |S Nr   Contextrun)argskwargsctxfunc _/var/www/html/humari/django-venv/lib/python3.10/site-packages/gevent/tests/test__contextvars.pywrapper   s   z!isolated_context.<locals>.wrapper)	functoolswraps)r   r   r   r   r   isolated_context   s   r   c                   @   s   e Zd ZeejdsejjZdd Ze	dd Z
dd Zdd	 Zd
d Zdd Zdd Ze	dd Zdd Zdd Zdd Ze	dd Ze	dd Ze	dd Ze	dd Ze	d d! Zd"d# Ze	d$d% Zd&S )'ContextTestassertRaisesRegexc                 C   s   |  t t  W d    n1 sw   Y  td}| |jd |  t d|_W d    n1 s8w   Y  | t|td d S )Naaabbb)	assertRaises	TypeErrorr   
ContextVarassertEqualnameAttributeErrorassertNotEqualhash)selfcr   r   r   test_context_var_new_1*   s   

z"ContextTest.test_context_var_new_1c                 C   s   t d}| dt| t jddd}| dt| g }t jd|d}|| | dt| | dt| |d}| t|t| | dt| || | dt| d S )Na{   default123z...   z used )r   r   assertInreprappendsetassertNotInreset)r   r    lsttr   r   r   test_context_var_repr_1:   s   



z#ContextTest.test_context_var_repr_1c                 C   s   |  t td W d    n1 sw   Y  |  t tjddd W d    n1 s1w   Y  |  t tjdd W d    n1 sLw   Y  tjdi i  d S )Nr'   r"   r   )r   r   r   r   r   r   r   r   test_context_new_1]   s   zContextTest.test_context_new_1c                 C   s   t  }| td |d  W d    n1 sw   Y  | td d|v  W d    n1 s3w   Y  | td |d W d    d S 1 sOw   Y  d S )NzContextVar key was expectedr'   )r   r   r   r   getr   r
   r   r   r   test_context_typerrors_1f   s   

"z$ContextTest.test_context_typerrors_1c                 C   s   t  }| |t j d S r   )r   copy_contextassertIsInstancer   r5   r   r   r   test_context_get_context_1p   s   z&ContextTest.test_context_get_context_1c                 C   s   t  }dd }|t|fD ]X}| ||dddif | ||ddddif | |j|dd	dddd
f | |j|ddd	dddd
f i }| |j|dfi |dddif | |i  qd S )Nc                  _   s   d|d< | d7 } | |fS )Nfoospambarr   r   r	   r   r   r   r   ~   s   z,ContextTest.test_context_run_2.<locals>.funcr<   r;   r:   r'   )r'   r=      r1   )r"   r;      )r@   r=   )r   r   r   partialr   r   )r   r
   r   fr"   r   r   r   test_context_run_2{   s(   
zContextTest.test_context_run_2c                 C   s   t  }dd }| t || W d    n1 sw   Y  | t ||dd W d    n1 s9w   Y  | t |j|dddd W d    d S 1 sXw   Y  d S )Nc                  _   s   dd  d S )Nr'   r   r   r>   r   r   r   r      s   z,ContextTest.test_context_run_3.<locals>.funcr'   r?   r#   r1   )r   r   r   ZeroDivisionErrorr   r   r
   r   r   r   r   test_context_run_3   s   "zContextTest.test_context_run_3c                    sp   t  }t   t dfdd fdd}||}|| | d | d S )Nvarc                      s     d  d S r   )assertIsNoner4   r   r   rG   r   r   func2   s   z-ContextTest.test_context_run_4.<locals>.func2c                     sb    d  d   d d t } t| d |  d | S )Nr;   r'   )rH   r4   r+   r   r   r   r7   len)curctx2rJ   r   rG   r   r   func1   s   

z-ContextTest.test_context_run_4.<locals>.func1r;   )r   r   r   r   r   r(   )r   ctx1rO   returned_ctxr   rM   r   test_context_run_4   s   

zContextTest.test_context_run_4c                    sh   t  }t d fdd} t || W d    n1 s%w   Y   d  d S )NrG   c                      s&     d  d dd  d S )Nr;   r'   r   )rH   r4   r+   r   rI   r   r   r      s   
z,ContextTest.test_context_run_5.<locals>.func)r   r   r   r   rD   r   rH   r4   rE   r   rI   r   test_context_run_5   s   
zContextTest.test_context_run_5c                    s4   t  t jddd  fdd}| d S )Nr"   r   r$   c                      sP      d    d    d   d d S )Nr   *   )r   r4   rH   r+   r   r    r
   r   r   r   fun   s
   
z+ContextTest.test_context_run_6.<locals>.funr   r   r   r   r   rV   r   rU   r   test_context_run_6   s   zContextTest.test_context_run_6c                    s&   t    fdd  d S )Nc                      s<    td   W d    d S 1 sw   Y  d S )Nzis already entered)r   RuntimeErrorr   r   r
   rV   r   r   r   rV      s   "z+ContextTest.test_context_run_7.<locals>.funr   r2   r   r[   r   test_context_run_7   s   zContextTest.test_context_run_7c                 C   s  t d}| t |  W d    n1 sw   Y  | |d  |d}| | d | |d d | |j	|j
 | |j	t jj
 | |j| |d}| | d | |d d | |j	d || | | d | |d d |d | td || W d    n1 sw   Y  | | d t  }| || || | td || W d    n1 sw   Y  | |d  | || | || d | ||dd | t|d | t| |dfg | t| dg | t| |g | t||g t  }| || | t ||  W d    n	1 sLw   Y  | ||dd | t|d | t|g  d S )	Nr    rT   r;   spam2zhas already been usedaar'   r   )r   r   r   LookupErrorr4   rH   r+   r   assertIs	old_valueMISSINGTokenrG   r-   r   rZ   r7   r(   rK   listitemsvalueskeysr,   KeyError)r   r    t0r/   rP   rN   r   r   r   test_context_getset_1   s\   







z!ContextTest.test_context_getset_1c                 C   sZ   t d}t d}|d}| td || W d    d S 1 s&w   Y  d S )Nv1v2rT   zby a different)r   r   r+   r   
ValueErrorr-   )r   rk   rl   t1r   r   r   test_context_getset_2  s   


"z!ContextTest.test_context_getset_2c                    s4   t jddd t   fdd}| d S )Nr    rT   r$   c                     s     d t    W d    n1 sw   Y      dd    t g   d}  t  g    d  	|   t g  t    W d    d S 1 sw   Y  d S )NrT   r;   r'   )
r   r4   r   rh   rH   r,   rd   rg   r+   r-   )r/   rU   r   r   rV   &  s    



"z.ContextTest.test_context_getset_3.<locals>.fun)r   r   r   r   rX   r   rU   r   test_context_getset_3!  s   z!ContextTest.test_context_getset_3c                 C   s`   t jddd}t  }||jd}| td || W d    d S 1 s)w   Y  d S )Nr    rT   r$   r'   zdifferent Context)r   r   r   r   r+   r   rm   r-   )r   r    r
   tokr   r   r   test_context_getset_4:  s   "z!ContextTest.test_context_getset_4c                    sH   t jddd  g   fdd}t  |   g  d S )Nr    rT   r$   c                      s.     g    d   dg d S )NrT   )r+   r4   r*   r   r   r    r   r   r   rV   I  s   
z.ContextTest.test_context_getset_5.<locals>.fun)r   r   r+   r7   r   r   r4   rX   r   rs   r   test_context_getset_5D  s
   
z!ContextTest.test_context_getset_5c                    sD   t  t jddd  fdd} fdd| d S )Nr    rT   r$   c                     sz     d  } |   d   d   d |   d |    d |   d d S )N
         )r+   copyr   r   )rN   r    rP   ctx2_funr   r   r   ctx1_funU  s   


z1ContextTest.test_context_copy_1.<locals>.ctx1_func                      s.      d  d    d d S )Nru   rw   )r   r4   r+   r   rs   r   r   rz   c  s   
z1ContextTest.test_context_copy_1.<locals>.ctx2_funrW   )r   r{   r   ry   r   test_context_copy_1Q  s
   zContextTest.test_context_copy_1c                    sr   t d  fdd}tjjdd}t||td}W d    n1 s(w   Y  |ttd d S )Ncvarc                    sF   t dD ]} | |  ttdd   | |  q| S )Nru   gMbP?g?)ranger+   timesleeprandomuniformr   r4   )numir}   r   r   r   subn  s
   z/ContextTest.test_context_threads_1.<locals>.subru   )max_workers)	r   r   
concurrentfuturesThreadPoolExecutorrd   mapr~   r   )r   r   tpresultsr   r   r   test_context_threads_1j  s   
z"ContextTest.test_context_threads_1N)__name__
__module____qualname__hasattrunittestTestCaseassertRaisesRegexpr   r!   r   r0   r3   r6   r9   rC   rF   rR   rS   rY   r\   rj   ro   rp   rr   rt   r|   r   r   r   r   r   r   %   s:    
"	

	
5


	
r   __main__)geventr   	patch_allconcurrent.futuresr   r   ImportErrorr   r   r   r   hamtr   r   r   r   mainr   r   r   r   <module>   s4   	        "