a  ze%@s ddlZddlZddlZddlZddlZddlZddlZeeedde ej dkdGdddej Z eeedde ej dkdGdd d e Z eeedde ej dkdGd d d e Zeeedde ej dkdGd d d e ZedkredS)NkillzTest requires os.killwin32zTest cannot run on Windowsc@seZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZddZdS) TestBreakNcCs,ttj|_|jdur(ttj|jdSN)signal getsignalSIGINT_default_handler int_handlerselfr L/opt/bitninja-python-dojo/embedded/lib/python3.9/unittest/test/test_break.pysetUps zTestBreak.setUpcCs(ttj|jttj_dtj_dSr) rrr weakrefWeakKeyDictionaryunittestsignals_results_interrupt_handlerr r r rtearDowns zTestBreak.tearDowncCstttj}t|ttj|zt}t|tjWnt y^| dYn0| tj j jdS)NKeyboardInterrupt not handled)rrrrinstallHandlerassertNotEqualosgetpidrKeyboardInterruptfail assertTruerrZcalled)r default_handlerpidr r rtestInstallHandlers  zTestBreak.testInstallHandlerc CsRt}||tjjt|z||tjjWt|n t|0dSr)r TestResultZ assertNotInrrregisterResultassertIn removeResult)r resultr r rtestRegisterResult(s  zTestBreak.testRegisterResultcsttj}t}tt|ttj|fdd}z ||Wntyn dYn0 |j dS)Ncs,t}t|tjd|_|jdS)NT)rrrrr breakCaughtr shouldStopr&r r r rtest;sz+TestBreak.testInterruptCaught..testr) rrrrr"rr#rrrrr()r rr&r+r r rtestInterruptCaught2s     zTestBreak.testInterruptCaughtcs|ttjtjkrdt}tt|fdd}z ||Wnt y`Yn 0 d |j dS)N&test requires SIGINT to not be ignoredcsDt}t|tjd|_|jt|tjddS)NT#Second KeyboardInterrupt not raised) rrrrrr(rr)rr*r r rr+Qs  z+TestBreak.testSecondInterrupt..testr.) rrrSIG_IGNskipTestrr"rr#rrrr()r r&r+r r rtestSecondInterruptHs      zTestBreak.testSecondInterruptcCstt}t|ttj}t}t||ttj|t}dd}z ||Wnty| dYn0| |j | |j | |j dS)NcSst}t|tjdSr)rrrrrr*r r rr+osz&TestBreak.testTwoResults..testr) rrr"r#rrr assertEqualrrrr) assertFalse)r r& new_handlerZresult2Zresult3r+r r rtestTwoResultsbs        zTestBreak.testTwoResultscsttjtjkr|dtttjfdd}ttj|zt}t |tjWnt yvYn 0| ddS)Nr-cs||dSrr )framesignumhandlerr rr4sz;TestBreak.testHandlerReplacedButCalled..new_handlerz6replaced but delegated handler doesn't raise interrupt) rrrr/r0rrrrrrr)r r4r r r8rtestHandlerReplacedButCalled}s    z&TestBreak.testHandlerReplacedButCalledcCs2tjtd}|t}||tjjdS)N)stream) rZTextTestRunnerioStringIOrunZ TestSuiter$rr)r Zrunnerr&r r r testRunnerszTestBreak.testRunnercCs>t}t|t|}~tt||dSr)rr"r#rrefgcZcollectZ assertIsNone)r r&r@r r rtestWeakReferencess   zTestBreak.testWeakReferencescCs|t}t|t|t||ttzt}t |t j Wnt yjYn0||j dSr)rr"r#rrr%r3rrrrrrr))r r&r r r rtestRemoveResults  zTestBreak.testRemoveResultc s(ttttttj}GfdddtGfdddtj}|d}||jdddddfg|j g||j |ttj|g_g_ |d}||jdddddfg|j g||j | ttj|dS) Ncs(eZdZgZgZddZfddZdS)z5TestBreak.testMainInstallsHandler..FakeRunnerc_s|j||fdSr)initArgsappend)r argskwargsr r r__init__sz>TestBreak.testMainInstallsHandler..FakeRunner.__init__cs|j|Sr)runArgsrEr r+r&r rr>s z9TestBreak.testMainInstallsHandler..FakeRunner.runN)__name__ __module__ __qualname__rDrIrHr>r rKr r FakeRunnersrOcseZdZfddZdS)z2TestBreak.testMainInstallsHandler..Programcs4d|_|_|_||_d|_|_|_d|_dS)NF)exit verbosityfailfast catchbreak tb_localsr?r+r&)r rSrOrRr+rQr rrHsz;TestBreak.testMainInstallsHandler..Program.__init__N)rLrMrNrHr rUr rProgramsrVFr )bufferrQrRrTwarningsT) objectrrrrZ TestProgramZrunTestsr2rDrIr&r)r rrVpr )rOrRr&r+rQrtestMainInstallsHandlers>       z!TestBreak.testMainInstallsHandlercCsPttj}tt|ttj|t|ttj|dSr)rrrrr removeHandlerr2)r rr r rtestRemoveHandlers  zTestBreak.testRemoveHandlercsFttjttjfdd}|ttjdS)NcsttjdSr)r2rrrr rr r rr+sz4TestBreak.testRemoveHandlerAsDecorator..test)rrrrrr\rrJr r^rtestRemoveHandlerAsDecorators  z&TestBreak.testRemoveHandlerAsDecorator)rLrMrNr rrr!r'r,r1r5r:r?rBrCr[r]r_r r r rr s   7 rc@seZdZejZdS)TestBreakDefaultIntHandlerN)rLrMrNrdefault_int_handlerr r r r rr`sr`c@seZdZejZdS)TestBreakSignalIgnoredN)rLrMrNrr/r r r r rrb srbc@seZdZejZdS)TestBreakSignalDefaultN)rLrMrNrSIG_DFLr r r r rrcsrc__main__)rAr<rsysrrrZ skipUnlesshasattrZskipIfplatformZTestCaserr`rbrcrLmainr r r rs*{