U ÂÏ aà ã@s:ddlZddlZddlmZdd„ZGdd„dejƒZdS)éN)ÚgreenletcGst ¡jj|ŽS)N)rÚ getcurrentÚparentÚswitch)Úargs©rúZC:\Users\vtejo\AppData\Local\Temp\pip-unpacked-wheel-96vz34c0\greenlet\tests\test_throw.pyrsrc@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) Ú ThrowTestscCs>dd„}t|ƒ}| ¡}| |d¡| t¡}| |d¡dS)NcSs8z tdƒWntk r*tdƒYdSXtdƒdS©NÚokÚfail)rÚ RuntimeErrorrrrrÚf s  z ThrowTests.test_class..fr ©rrÚ assertEqualÚthrowr ©ÚselfrÚgÚresrrrÚ test_class s   zThrowTests.test_classcCsvdd„}t|ƒ}| ¡}| |d¡| tdƒ¡}| |d¡t|ƒ}| ¡}| |d¡| td¡}| |d¡dS)NcSsTz tdƒWn:tk rFt ¡d}t|ƒdkrBtdƒYdSYnXtdƒdS)Nr éÚciaor )rr ÚsysÚexc_infoÚstr)Úvalrrrrs    zThrowTests.test_val..fr rrrrrrÚtest_vals     zThrowTests.test_valcCshdd„}t|ƒ}| ¡}| |d¡| ¡}| t|tjƒ¡| |j¡| ¡}| t|tjƒ¡dS)NcSstdƒtdƒdSr ©rrrrrr2szThrowTests.test_kill..fr )rrrrÚ assertTrueÚ isinstanceZ GreenletExitÚdeadrrrrÚ test_kill1s  zThrowTests.test_killcs t ¡‰‡fdd„}‡fdd„}t|ƒ}t||d}| t|jt¡| |j¡| |j¡t|ƒ}t||d}| ¡}| |d¡| t¡}| |d¡| |j¡| |j¡t|ƒ}t||d}| ¡}| |d¡| ¡}| |d¡| t¡}| |d¡| |j¡| |j¡dS) Ncs.zˆ d¡Wntk r$YdSXdSdS)Núf1 ready to catchÚcaughtz normal exit)rÚ IndexErrorr©ÚmainrrÚf1As z9ThrowTests.test_throw_goes_to_original_parent..f1csˆ d¡dS)Núfrom f2rrr&rrÚf2Isz9ThrowTests.test_throw_goes_to_original_parent..f2)rr#r$r)) rrÚ assertRaisesr%rrr!rr)rr(r*Zg1Zg2rrr&rÚ"test_throw_goes_to_original_parent>s4                 z-ThrowTests.test_throw_goes_to_original_parentN)Ú__name__Ú __module__Ú __qualname__rrr"r,rrrrr s r )rZunittestrrZTestCaser rrrrÚs