+
    '(j\%                         ^ RI t ^ RIt^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
 ^ RI	H	t	 ^RIHt ^R	IHt ]! R
RR7      t]! RRR7      tRt ! R R]4      t]R8X  d   ]P$                  ! 4        R# R# )    N)Context)
ContextVar)copy_context)partial)
getcurrent)greenlet)PY314)TestCaseid)defaultvarc                   h   a  ] tR t^t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tRtV tR# )ContextVarsTestsc                6    \        4       P                  ! V/ VB # N)r   run)selfargskwargss   &*,T/home/ubuntu/cf-venv/lib/python3.14/site-packages/greenlet/tests/test_contextvars.py_new_ctx_runContextVarsTests._new_ctx_run   s    ~!!42622    c                2   \         pVf!   V P                  VP                  4       4       M V P                  VP                  4       V4       VP	                  V4       \        ^4       F,  pW5P                  4       ;;,          ^,          uu&   V! 4        K.  	  R # 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                   \         P                  ^ 4       \        4       P                  p\	        R \        ^4       4       4      p\        ^^4       Uu. uFn  p\        \        VR8X  d)   \        \        4       P                  V P                  4      MV P                  TTTVR8X  d
   V^,
          M
VR9   d   ^ MRR7      4      NKp  	  ppV F=  pVR8X  d   \        4       Vn        K  VR8X  g   K$  \        4       P                  Vn        K?  	  \        ^4       FC  pV\         P                  4       ;;,          ^,          uu&   V F  pVP                  4        K  	  KE  	  VR8X  d$   \        V4       F  pVP                  4        K  	  MV F  pVP                  4        K  	  V F]  pV P                  VP                  4       VR8X  d   V P!                  VP                  4       KB  V P#                  VP                  4       K_  	  VR8X  d   V P%                  V^ ^^^^^^^^^/4       R# V P%                  \        VP'                  4       4      \        ^.4      4       R# u upi )r   c              3   (   "   T F  q^ 3x  K
  	  R# 5i)r   N ).0is   & r   	<genexpr>1ContextVarsTests._test_context.<locals>.<genexpr>.   s     /h!fhs   r   sharer   N)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#   r-   letslets   &&     r   _test_contextContextVarsTests._test_context)   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"VaAq!Q1a%CDS13s8<i
s   A4Ic                >    V P                  V P                  R 4       R# )r   Nr   r<   r   s   &r   &test_context_propagated_by_context_run7ContextVarsTests.test_context_propagated_by_context_runf       $,,e4r   c                >    V P                  V P                  R 4       R# )r   Nr?   r@   s   &r   ,test_context_propagated_by_setting_attribute=ContextVarsTests.test_context_propagated_by_setting_attributei   rC   r   c                >    V P                  V P                  R 4       R # r   r?   r@   s   &r   test_context_not_propagated,ContextVarsTests.test_context_not_propagatedl   s    $,,d3r   c                >    V P                  V P                  R 4       R# )r0   Nr?   r@   s   &r   test_context_shared$ContextVarsTests.test_context_sharedo   s    $,,g6r   c                &   \        \        4       P                  4      p\        \        4       P                  4      pVP                  \	        4       P                  4       VP                  \	        4       P                  4       VP                  4        R # r   )r   r   r   r1   r   r   let1let2s   &  r   test_break_ctxvars#ContextVarsTests.test_break_ctxvarsr   sY    **+**+JL''(JL''( 	r   c                6   \        \        4       P                  4      p\        \        4       P                  4      p\        4       Vn        \        4       Vn        VP                  4        VP                  4        VP                  4        VP                  4        R # r   )r   r   r1   r   r3   rN   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                p  a a \         P                  R 4       VV 3R lp\        V4      oS P                  \        R4      ;_uu_ 4        S=R R R 4       S P                  SP
                  4       SP                  4       w  r#S P                  VSP
                  4       S P                  V\         ,          ^4       S P                  V\         ,          ^4       S P                  VP                  \         P                  4      ^4       VSn        SP                  4        S P                  SP
                  V4       R Sn        SP                  4        S P                  SP
                  V4       R Sn        SP                  4        S P                  SP
                  4       R o\        P                  ! 4        S P                  \        P                  ! V4      \         '       g   ^M^4       S P                  \        P                  ! V4      \         '       g	   ^4       R # ^4       R #   + '       g   i     EL; i)Nc                    < SP                  \        P                  4       4       SP                  SP                  4       \        P	                  ^4       SP                  SP                  \        4       SP                  \        P                  4       ^4       SP                  SP                  \        ,          ^4       SP                  p RSn        SP                  \        P                  4       4       SP                  SP                  4       \        P	                  ^4       SP                  SP                  \        4       SP                  \        P                  4       ^4       SP                  SP                  \        ,          ^4       SP                  p\        4       P                  P                  W34       SP                  \        P                  4       ^4       VSn        SP                  \        P                  4       ^4       \        4       P                  P                  4        SP                  \        P                  4       4       SP                  SP                  4       V Sn        SP                  \        P                  4       ^4       \        4       P                  P                  4        SP                  \        P                  4       4       SP                  SP                  4       R#    N)r   r   r   r3   r   assertIsInstancer   r   r   parentr1   )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 attribute)r   r   r   assertRaisesRegexAttributeErrorr3   r   r1   assertIsr   r   r   gccollectsysgetrefcountr	   )r   r_   r\   r]   r^   s   f   @r   %test_context_assignment_while_running6ContextVarsTests.test_context_assignment_while_running   s   

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


 	5q1M5qM1M3 VUUs   H$$H5	c                X  aaaaa	a
a ^ RI p\        P                  R4       \        4       oVP	                  4       o	VP	                  4       oVP	                  4       oVP	                  4       o
. oVV	V3R loVVVVV
3R lpVP                  VRR7      pVP                  4        S	P                  ^
4       S^ ,          pV P                  \        R4      ;_uu_ 4        \        VR4       RRR4       V P                  \        R4      ;_uu_ 4        RVn        RRR4       SP                  4        SP                  ^
4       V P                  VP                  S4       V P                  VP                  \        ,          ^4       RVn        S
P                  4        VP                  ^
4       V P                  SVR.4       V P                  VP                  4       SVn        V P                  VP                  S4       SR RpRpR#   + '       g   i     EL&; i  + '       g   i     EL; i)	r   Nc                  (  < \         P                  ^4       SP                  4        SP                  ^
4       \         P                  ^4       \        4       P                  P                  4        S P                  \         P                  4       4       R# rX   )VAR_VARr   waitr   r[   r1   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                     < \        S4      p SV n        SP                  V 4       V P                  4        SP	                  4        SP                  ^
4       V P                  4        ? \        4        R# )
   N)r   r3   rn   r1   r   rm   )r^   ctxdid_suspendrr   ro   should_exits    r   	thread_fnLContextVarsTests.test_context_assignment_different_thread.<locals>.thread_fn   sS    /0BBMMM"IIKOOR IIKJr   T)r_   daemonzrunning in a differentr3   :NNN)	threadingrl   r   r   EventThreadstartrm   ra   
ValueErrorgetattrr3   rc   r   joinr   )r   r|   ry   threadr^   rv   rw   rr   ro   rp   rx   rq   s   &    @@@@@@@r   (test_context_assignment_different_thread9ContextVarsTests.test_context_assignment_different_thread   s   Di__&
"*oo'oo'	)		 		 !!4!@AY ##J0HIIB% J##J0HII BM J 	 	bmmS)w/3B"d, 	"--(bmmS) 1I7 JIIIIIs   HHH	H)	c                    \        4       pV P                  \        R 4      ;_uu_ 4        Wn        RRR4       R#   + '       g   i     R# ; i)z6greenlet context must be a contextvars.Context or NoneN)r   ra   	TypeErrorr3   )r   gs   & r   "test_context_assignment_wrong_type3ContextVarsTests.test_context_assignment_wrong_type  sA    J##I$\^ ^L^ ^ ^ ^s	   :A	r+   N)__name__
__module____qualname____firstlineno__r   r'   r<   rA   rE   rH   rK   rQ   rT   rh   r   r   __static_attributes____classdictcell__)__classdict__s   @r   r   r      sL     3	;=z5547HNT@D   r   r   __main__)rd   rf   unittestcontextvarsr   r   r   	functoolsr   r   r    r	   r
   r   rl   r   r   mainr+   r   r   <module>r      sl    	 
   " $      
D$	'
UD
)
| x | ~ zMMO r   