L i@ddlZddlmZddlmZdZGddeZy)N)greenlet)TestCasecXtjjj|S)N)r getcurrentparentswitch)argss _/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/greenlet/tests/test_throw.pyr r s$ .8   ' ' . . 55c6eZdZdZdZdZdZdZdZdZ y) ThrowTestscd}t|}|j}|j|d|jt}|j|dy)Ncf tdtdy#t$rtdYywxYwNokfail)r RuntimeErrorr r fz ThrowTests.test_class..f s2 t  6N  t  s 00rrr assertEqualthrowrselfrgress r test_classzThrowTests.test_class sK  QKhhj d#ggl# d#r cfd}t|}|j}|j|d|jt d}|j|dt|}|j}|j|d|jtd}|j|dy)Nc tdtdy#t$r5tjd}t |dk(r tdYyYIwxYw)Nrrciaor)r rsysexc_infostr)vals r rzThrowTests.test_val..fsS t 6N   llnQ's8v%4L& s 9AArr!rrs r test_valzThrowTests.test_vals  QKhhj d#ggl6*+ d# QKhhj d#gglF+ d#r c~d}t|}|j}|j|d|j}|j t |tj |j |j|j}|j t |tj y)Nc0tdtdyrr rr r rzThrowTests.test_kill..f2s 4L 6Nr r)rr rr assertTrue isinstance GreenletExitdeadrs r test_killzThrowTests.test_kill1s  QKhhj d#ggi  3(=(=>? ggi  3(=(=>?r ctjfd}fd}t|}t||}|jt5|j tddd|j |j |j |j t|}t||}|j}|j|d|j t}|j|d|j |j |j |j t|}t||}|j}|j|d|j}|j|d|j t}|j|d|j |j |j |j y#1swYxYw)NcH jdy#t$rYywxYw)Nf1 ready to catchcaughtz normal exit)r IndexErrormainsr f1z9ThrowTests.test_throw_goes_to_original_parent..f1As.  /0!  s  !!c(jdy)Nfrom f2r)r4sr f2z9ThrowTests.test_throw_goes_to_original_parent..f2Hs KK "r )rr1r2r8) rr assertRaisesr3rr*r-r r)rr6r9g1g2rr5s @r "test_throw_goes_to_original_parentz-ThrowTests.test_throw_goes_to_original_parent>sz""$ ! #b\ b $   z * ! HHZ  !    b\ b $iik 12hhz" h'    b\ b $iik 12iik i(hhz" h'    / ! !s G22G<c|jt5}tjj t t |ddd|j tjdy#1swY/xYw)Nz1throw() third argument must be a traceback object) r: TypeErrorrrr Exceptionrr$ exceptionrexcs r test_non_traceback_paramz#ThrowTests.test_non_traceback_paramfsh   y ) S    ! ' '    S]]+L N   s 2A66A?c |jt5}tjj t t ddd|jtjdy#1swY/xYw)Nz0instance exception may not have a separate value) r:r?rrrr@ BaseExceptionrr$rArBs r test_instance_of_wrong_typez&ThrowTests.test_instance_of_wrong_typepsg   y ) S    ! ' '    S]]+K M   s 5A99Bc|jt5}tjj dddd|j t jdy#1swY/xYw)Nabcz1exceptions must be classes, or instances, not str)r:r?rrrrr$rArBs r test_not_throwablezThrowTests.test_not_throwablezs`   y ) S    ! ' '   S]]+L N   s $A((A1N) __name__ __module__ __qualname__rr&r.r=rDrGrJrr r rr s* $$. @&!PNMNr r)r"rrr rrr r rOs% 6uNuNr