L i-)ddlmZddlZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z dd l m Z dd l m Z  dd lmZdd lmZdd lmZeddZeddZdZeedudGdde ZeedudGdde Zedk(rej0yy#e$r dxZxZZYWwxYw))print_functionN)partial) skipUnless)skipIf)greenlet) getcurrent)TestCase)PY314)Context) ContextVar) copy_contextid)defaultvarzContextVar not supportedcTeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zy )ContextVarsTestsc6tj|i|SN)rrun)selfargskwargss e/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/greenlet/tests/test_contextvars.py _new_ctx_runzContextVarsTests._new_ctx_run#s!|~!!42622ct}| |j|jn |j|j||j |t dD]$}||jxxdz cc<|&y)Nr )ID_VAR assertIsNoneget assertEqualsetrange)r greenlet_idcallbackcountsexpectctx_var_s r _incrementzContextVarsTests._increment&sp >   gkkm ,   W[[]F 3 K q A 7;;= !Q & ! J rc ^tjdtj}t dt dD}t ddDcgc]b}t t|dk(r(ttj|jn |j||||dk(r|dz n|dvrdndd}}|D]6}|d k(rt|_ |dk(stj|_ 8t d D]8}|tjxxdz cc<|D]}|j:|dk(r!t|D]}|jn|D]}|j|D]Y}|j|j|dk(r|j!|j?|j#|j[|dk(r|j%|ddddd d y|j%t|j'td gycc}w) Nrc3$K|]}|df yw)rN).0is r z1ContextVarsTests._test_context..6s/q!f/sr rshare)r#r)r%r&r'r(r#r)rr r)rr#rswitchdictr$rrrrr+ gr_contextr!reversed assertTruedeadr assertIsNotNoner"values)r propagate_byr&r'r0letslets r _test_contextzContextVarsTests._test_context1s  1 <&&/eAh// 1a[  W"U* N&&OO15!)W4AE%7AT    " 9Cu$!-(!+!8!8  9 q A 6::< A %      5 ~       5C OOCHH % u$!!#..1$$S^^4 5 7 "   VqQ1%C D   S13s8 .targets   fjjl +   bmm , JJqM  ! !"-- 9   VZZ\1 -   R]]62A 6--K BM   fjjl +   bmm , JJqM  ! !"-- 9   VZZ\1 -   R]]62A 6--K L   & & ['A B   VZZ\1 -'BM   VZZ\1 - L   & & (   fjjl +   bmm ,'BM   VZZ\1 - L   & & (   fjjl +   bmm ,rzcan't delete context attributer r)rr#rassertRaisesRegexAttributeErrorr9r r7assertIsr"rr!gccollectsys getrefcountr )rr\rYrZr[s` @r%test_context_assignment_while_runningz6ContextVarsTests.test_context_assignment_while_runnings~ 4' -Rf   # #N4T U    "--(#%99; [ k2==1 V,a0 V,a0 4a8#   bmm[1   bmm[1   "--(  5q1M 5qM1M3  s HH c ddl}tjdt|j |j |j |j g fd fd}|j |d}|j  jdd}|jtd5t|dddd|jtd5d|_ ddd jjd|j|j|j|jtd d|_ j|jd|j|dg|j|j|_ |j|jdd=d}d}y#1swYxYw#1swYxYw) Nrc&tjdjjdtjdtjj j tjy)Nr r)VAR_VARr#waitrrXr7appendr!)holder is_runningshould_suspendsrgreenlet_in_thread_fnzXContextVarsTests.test_context_assignment_different_thread..greenlet_in_thread_fnsW KKN NN     # KKN L   & & ( MM'++- (rct}|_j||jj j d|j~ty)Nrg)rr9rjr7r#ri)r[ctx did_suspendrnrk should_exits r thread_fnzLContextVarsTests.test_context_assignment_different_thread..thread_fnsS/0BBM MM"  IIK OO    R IIK JrT)r\daemonrgzrunning in a differentr9r) threadingrhr#r EventThreadstartrir] ValueErrorgetattrr9r_r"joinr ) rrursthreadr[rprqrnrkrlrrrms @@@@@@@r(test_context_assignment_different_threadz9ContextVarsTests.test_context_assignment_different_threads Di__& "*oo' oo'  )  !!4!@  AY # #J0H I & B % &  # #J0H I ! BM !  bmmS) w/3  B "d, "--(  bmmS) 1I 7 & & ! !s G+7G8+G58Hc|t}|jtd5||_dddy#1swYyxYw)Nz6greenlet context must be a contextvars.Context or None)rr] TypeErrorr9)rgs r"test_context_assignment_wrong_typez3ContextVarsTests.test_context_assignment_wrong_types9 J  # #I$\^ AL   s2;N)__name__ __module__ __qualname__rr+rBrFrIrKrMrRrTrdr}rr.rrrr!sD3 ;=z5547HNT@D rrzContextVar supportedceZdZdZy)NoContextVarsTestsc4ttj}|jt |d|j t 5t|dddd|j t 5d|_ddd|j|j t 5t|dddd|j t 5d|_ddd~y#1swYxYw#1swYvxYw#1swYHxYw#1swY~yxYw)Nr9) rrr7 assertFalsehasattr assertRaisesr^rzr9)rrPs rtest_contextvars_errorsz*NoContextVarsTests.test_contextvars_errors#s ++, |45   ~ . ( D, ' (  ~ . #"DO #   ~ . ( D, ' (  ~ . #"DO #  ( ( # #  ( ( # s0 C)8C5- DD )C25C>D  DN)rrrrr.rrrr!srr__main__) __future__rr`rbunittest functoolsrrrrrr r contextvarsr r rrrh ImportErrorrrrmainr.rrrs% /#&(d +F-GJ  G4 !;<| x| =| ~t345* zHMMOu/*..G.j</s(B00 B>=B>