
    lgl(                     n   S SK Jr  S SKrS SKrS SKrS SKJr  S SKJr  S SKJr  S SK	J	r	  S SK	J
r
  SS	KJr   S S
KJr  S SKJr  S SKJr  \" SSS9r\" SSS9rSr\" \SLS5       " S S\5      5       r\" \SLS5       " S S\5      5       r\S:X  a  \R.                  " 5         gg! \ a	    S=r=rr NYf = f)    )print_functionN)partial)
skipUnless)skipIf)greenlet)
getcurrent   )TestCase)Context)
ContextVar)copy_contextid)defaultvarzContextVar not supportedc                   \    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rSrg)ContextVarsTests!   c                 6    [        5       R                  " U0 UD6$ N)r   run)selfargskwargss      g/Users/Alptekin/Desktop/izin_takip/venv/lib/python3.13/site-packages/greenlet/tests/test_contextvars.py_new_ctx_runContextVarsTests._new_ctx_run#   s    ~!!42622    c                    [         nUc   U R                  UR                  5       5        O U R                  UR                  5       U5        UR	                  U5        [        S5       H$  nX5R                  5       ==   S-  ss'   U" 5         M&     g )N   r	   )ID_VARassertIsNonegetassertEqualsetrange)r   greenlet_idcallbackcountsexpectctx_var_s          r   
_incrementContextVarsTests._increment&   si    >gkkm,W[[]F3K qA;;=!Q&!J r   c                    [         R                  S5        [        5       R                  n[	        S [        S5       5       5      n[        SS5       Vs/ s Hd  n[        [        US:X  a(  [        [        5       R                  U R                  5      OU R                  UUUUS:X  a  US-
  O	US;   a  SOS S95      PMf     nnU H;  nUS	:X  a  [        5       Ul        M  US:X  d  M"  [        5       R                  Ul        M=     [        S
5       H;  nU[         R                  5       ==   S-  ss'   U H  nUR                  5         M     M=     US:X  a#  [        U5       H  nUR                  5         M     OU H  nUR                  5         M     U H\  nU R                  UR                  5        US:X  a  U R!                  UR                  5        MA  U R#                  UR                  5        M^     US:X  a  U R%                  USSSSSS.5        g U R%                  [        UR'                  5       5      [        S
/5      5        g s  snf )Nr   c              3   (   #    U  H  oS 4v   M
     g7f)r   N ).0is     r   	<genexpr>1ContextVarsTests._test_context.<locals>.<genexpr>6   s     /h!fhs      r	   r   share)r$   r   )r&   r'   r(   r)   r$   r      )r   r	   r         )r    r$   r   switchdictr%   r   r   r   r   r,   
gr_contextr"   reversed
assertTruedeadr!   assertIsNotNoner#   values)r   propagate_byr'   r(   r2   letslets          r   _test_contextContextVarsTests._test_context1   s   

1<&&/eAh//  1a[
 ! W "U*  N&&OO 15!)W4AE%7AT  ! 	 
" Cu$!-(!+!8!8	  qA6::< A% 

  
 5 ~

 & 

  COOCHH%
 u$!!#..1$$S^^4  7"VqQ1%CDS13s8<i
s   A+Ic                 <    U R                  U R                  S5        g )Nr   r   rE   r   s    r   &test_context_propagated_by_context_run7ContextVarsTests.test_context_propagated_by_context_runn       $,,e4r   c                 <    U R                  U R                  S5        g )Nr$   rH   rI   s    r   ,test_context_propagated_by_setting_attribute=ContextVarsTests.test_context_propagated_by_setting_attributeq   rL   r   c                 <    U R                  U R                  S 5        g r   rH   rI   s    r   test_context_not_propagated,ContextVarsTests.test_context_not_propagatedt   s    $,,d3r   c                 <    U R                  U R                  S5        g )Nr6   rH   rI   s    r   test_context_shared$ContextVarsTests.test_context_sharedw   s    $,,g6r   c                 $   [        [        5       R                  5      n[        [        5       R                  5      nUR                  [	        5       R                  5        UR                  [	        5       R                  5        UR                  5         g r   )r   r   r   r:   r   r   let1let2s      r   test_break_ctxvars#ContextVarsTests.test_break_ctxvarsz   sY    **+**+JL''(JL''( 	r   c                 4   [        [        5       R                  5      n[        [        5       R                  5      n[        5       Ul        [        5       Ul        UR                  5         UR                  5         UR                  5         UR                  5         g r   )r   r   r:   r   r<   rW   s      r   9test_not_broken_if_using_attribute_instead_of_context_runJContextVarsTests.test_not_broken_if_using_attribute_instead_of_context_run   s\    
++,
++,&.&.r   c                   ^ ^ [         R                  S 5        UU 4S jn[        U5      mT R                  [        S5         T?S S S 5        T R                  TR
                  5        TR                  5       u  p#T R                  UTR
                  5        T R                  U[            S5        T R                  U[            S5        T R                  UR                  [         R                  5      S5        UTl        TR                  5         T R                  TR
                  U5        S Tl        TR                  5         T R                  TR
                  U5        S Tl        TR                  5         T R                  TR
                  5        S m[        R                  " 5         T R                  [        R                  " U5      S5        T R                  [        R                  " U5      S5        g ! , (       d  f       GN= f)Nc                    > TR                  [        R                  5       5        TR                  TR                  5        [        R	                  S5        TR                  TR                  [        5        TR                  [        R                  5       S5        TR                  TR                  [           S5        TR                  n S Tl        TR                  [        R                  5       5        TR                  TR                  5        [        R	                  S5        TR                  TR                  [        5        TR                  [        R                  5       S5        TR                  TR                  [           S5        TR                  n[        5       R                  R                  X45        TR                  [        R                  5       S5        UTl        TR                  [        R                  5       S5        [        5       R                  R                  5         TR                  [        R                  5       5        TR                  TR                  5        U Tl        TR                  [        R                  5       S5        [        5       R                  R                  5         TR                  [        R                  5       5        TR                  TR                  5        g )Nr	   r   )r!   r    r"   r<   r$   assertIsInstancer   r#   r   parentr:   )old_contextnew_contextgrr   s     r   targetFContextVarsTests.test_context_assignment_while_running.<locals>.target   s   fjjl+bmm, JJqM!!"--9VZZ\1-R]]62A6 --K BMfjjl+bmm,JJqM!!"--9VZZ\1-R]]62A6--KL&&'AB VZZ\1-'BMVZZ\1-L&&(fjjl+bmm,'BMVZZ\1-L&&(fjjl+bmm,r   zcan't delete context attributer	   r   )r    r$   r   assertRaisesRegexAttributeErrorr<   r!   r:   assertIsr#   r   r"   gccollectsysgetrefcount)r   rf   rc   rd   re   s   `   @r   %test_context_assignment_while_running6ContextVarsTests.test_context_assignment_while_running   sj   

4'	-R f##N4TU V 	"--(#%99; k2==1V,a0V,a04a8#
		bmm[1
		bmm[1
		"--( 


5q95q9/ VUs    G11
H c                   ^^^^^	^
^ SS K n[        R                  S 5        [        5       mUR	                  5       m	UR	                  5       mUR	                  5       mUR	                  5       m
/ mUU	U4S jmUUUUU
4S jnUR                  USS9nUR                  5         T	R                  S5        TS   nU R                  [        S5         [        US5        S S S 5        U R                  [        S5         S Ul        S S S 5        TR                  5         TR                  S5        U R                  UR                  T5        U R                  UR                  [           S	5        S Ul        T
R                  5         UR                  S5        U R                  TUS /5        U R                  UR                  5        TUl        U R                  UR                  T5        TS S 2	 S nS ng ! , (       d  f       GN= f! , (       d  f       GN= f)
Nr   c                  &  > [         R                  S5        TR                  5         TR                  S5        [         R                  S5        [        5       R                  R                  5         T R                  [         R                  5       5        g )Nr	   
   r   )VAR_VARr$   waitr   rb   r:   appendr"   )holder
is_runningshould_suspends   r   greenlet_in_thread_fnXContextVarsTests.test_context_assignment_different_thread.<locals>.greenlet_in_thread_fn   sW    KKNNN#KKNL&&(MM'++-(r   c                     > [        T5      n TU l        TR                  U 5        U R                  5         TR	                  5         TR                  S5        U R                  5         A [        5         g )Nrs   )r   r<   rv   r:   r$   ru   )re   ctxdid_suspendrz   rw   should_exits    r   	thread_fnLContextVarsTests.test_context_assignment_different_thread.<locals>.thread_fn   sS    /0BBMMM"IIKOOR IIKJr   T)rf   daemonrs   zrunning in a differentr<   r   )	threadingrt   r$   r   EventThreadstartru   rh   
ValueErrorgetattrr<   rj   r#   joinr!   )r   r   r   threadre   r}   r~   rz   rw   rx   r   ry   s        @@@@@@@r   (test_context_assignment_different_thread9ContextVarsTests.test_context_assignment_different_thread   s   Di__&
"*oo'oo'	)		 		 !!4!@AY ##J0HIB% J##J0HI BM J 	 	bmmS)w/3B"d, 	"--(bmmS) 1I7 JIIIs   G*6G<*
G9<
Hc                     [        5       nU R                  [        S5         Xl        S S S 5        g ! , (       d  f       g = f)Nz6greenlet context must be a contextvars.Context or None)r   rh   	TypeErrorr<   )r   gs     r   "test_context_assignment_wrong_type3ContextVarsTests.test_context_assignment_wrong_type  s5    J##I$\^L^ ^ ^s   1
?r0   N)__name__
__module____qualname____firstlineno__r   r,   rE   rJ   rN   rQ   rT   rZ   r]   ro   r   r   __static_attributes__r0   r   r   r   r   !   sC    3	;=z5547F:P@D r   r   zContextVar supportedc                       \ rS rSrS rSrg)NoContextVarsTestsi  c                 \   [        [        5       R                  5      nU R                  [	        US5      5        U R                  [        5         [        US5        S S S 5        U R                  [        5         S Ul        S S S 5        UR                  5         U R                  [        5         [        US5        S S S 5        U R                  [        5         S Ul        S S S 5        Ag ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       NW= f! , (       d  f       Ag = f)Nr<   )	r   r   r:   assertFalsehasattrassertRaisesri   r   r<   )r   rX   s     r   test_contextvars_errors*NoContextVarsTests.test_contextvars_errors!  s    
++,|45~.D,' / ~."DO / 	~.D,' / ~."DO /  /. /.
 /. /. s0   C)8C:-DD)
C7:
D
D
D+r0   N)r   r   r   r   r   r   r0   r   r   r   r     s    r   r   __main__)
__future__r   rk   rm   unittest	functoolsr   r   r   r   r    r
   contextvarsr   r   r   r    rt   ImportErrorr   r   r   mainr0   r   r   <module>r      s    % 	 
       /#&( d+F-GJ
 G4!;<z x z  =z z t34  5* zMMO q  /*..G.j</s   "B% %B43B4