a  ze6@sddlmZddlZddlZddlmZmZddlZddlmZddlZddl m Z de_ Gdddej Z Gd d d eZGd d d ZGd ddej ZGdddej ZGdddej ZGdddej ZGdddej ZedkrejdddS))runN)captured_outputcaptured_stderr)mock)FuncTc@seZdZddZdS)PrintExceptionTestcCsGdddt}|d}|d}z ||Wn|yz|Wnx|ytP}tjtd"}dd|_tWdn1s0YWdn1s0YYn0Yn0| }| dt || d |d | d |d dS) Nc@seZdZddZdS)zOPrintExceptionTest.test_print_exception_unhashable..UnhashableExceptioncSsdS)NT)selfotherrrN/opt/bitninja-python-dojo/embedded/lib/python3.9/idlelib/idle_test/test_run.py__eq__szVPrintExceptionTest.test_print_exception_unhashable..UnhashableException.__eq__N)__name__ __module__ __qualname__r rrrr UnhashableExceptionsrex1ex2Zcleanup_tracebackcSs|SNr)terrr !zDPrintExceptionTest.test_print_exception_unhashable.. zUnhashableException: ex2zUnhashableException: ex1 ) ExceptionrrpatchobjectrZ side_effectprint_exceptiongetvaluestrip splitlines assertEquallenassertIn)r rrroutputcttbrrr test_print_exception_unhashables(    Pz2PrintExceptionTest.test_print_exception_unhashableN)r rrr(rrrr rsrc@s<eZdZddZddZddZddZd d Zd d Zd S)ScCsdt|jS)Nz%s:strtyper r rrr __str__-sz S.__str__cCsdt|jS)Nz %s:unicoder*r,rrr __unicode__/sz S.__unicode__cCsdSNrrr,rrr __len__1sz S.__len__cCstdS)Nabc)iterr,rrr __iter__3sz S.__iter__cGsdt|jS)Nz%s:itemr*r argsrrr __getitem__5sz S.__getitem__cGsdt|jS)Nz%s:slicer*r4rrr __getslice__7szS.__getslice__N) r rrr-r.r0r3r6r7rrrr r),s r)c@s<eZdZddZddZddZddZd d Zd d Zd S) MockShellcCs |dSr)resetr,rrr __init__<szMockShell.__init__cGs|j|dSr)writtenappendr4rrr write>szMockShell.writecCs |jSr)linespopr,rrr readline@szMockShell.readlinecCsdSrrr,rrr closeBszMockShell.closecCs g|_dSr)r;r,rrr r9DszMockShell.resetcCst|ddd|_dS)N)listr>)r r>rrr pushFszMockShell.pushN) r rrr:r=r@rAr9rDrrrr r8;s r8c@s<eZdZddZddZddZddZd d Zd d Zd S)StdInputFilesTestcCst}t|d}||tj||jd||jd| |j ||j d| |j ||||| || |dS)Nstdinutf-8strictz)r8r StdInputFileassertIsInstanceio TextIOBaser"encodingerrors assertIsNonenewlinesname assertFalseclosed assertTrueisattyreadablewritableseekabler shellfrrr test_miscLs   zStdInputFilesTest.test_misccCsdt}t|d}|t|j|t|j|t|jd|t|jd|t|j dgdS)NrFrx) r8rrI assertRaisesOSErrorfilenotellseekr= writelinesrYrrr test_unsupportedZs z"StdInputFilesTest.test_unsupportedcCs t}t|d}|gd||d|gd||dd|gd||dd|gd||dd||dd ||d d |d d g||dd|t|jd|t|jd|t|jdddS)NrFone two one two rB)rfrgthree rhonrze trz wo three rfrgrrh?1)r8rrIrDr"readr^ TypeErrorrYrrr test_readcs" zStdInputFilesTest.test_readcCsZt}t|d}|gd||d||dd||dd|dg||d||d|gd||d ||d |gd ||d d ||dd||dd||dd|ddg||dd|t|jd|t|jd|t|jdddS)NrF)rfrgrjzfour rfrBrgrjri)onetwoZthreersrt)rfrgrjrkrlror rrrhrmrn) r8rrIrDr"r@r^rq readlinesrYrrr test_readlinews,  zStdInputFilesTest.test_readlinecCs*t}t|d}|gd||ddg|gd||dddg|gd||dddg|gd||dddg|gd||ddg|gd||dddg|gd|t|jd |t|jd |t|jd d dS) NrFrerfrgrBrrrmrnro)r8rrIrDr"rvr^rqrYrrr test_readliness$ z StdInputFilesTest.test_readlinescCstt}t|d}|gd||j||d|||j||d| t |jddS)NrFrerfrgro) r8rrIrDrRrSr"r@rAr^rqrYrrr test_closes   zStdInputFilesTest.test_closeN) r rrr\rdrrrwryrzrrrr rEJs  rEc@s<eZdZddZddZddZddZd d Zd d Zd S)StdOutputFilesTestcCst}t|d}||tj||jd||jd| |j ||j d| |j ||| |||| |dS)NstdoutrGrHz)r8r StdOutputFilerJrKrLr"rMrNrOrPrQrRrSrTrUrVrWrXrYrrr r\s   zStdOutputFilesTest.test_misccCsbt}t|d}|t|j|t|j|t|jd|t|jd|t|j ddS)Nr|r) r8rr}r^r_r`rarbrpr@rYrrr rds z#StdOutputFilesTest.test_unsupportedcCst}t|d}|d||jdg||d||jdg||td||jdg|t|jddt || t |j||jg| t |jd| t |jd||jg| t |jdd ||jgdS) Nr|testr~r| tèś𝖙)rr|rtest{spam r8rr}r=r"r;r9r)r+strr^rqrYrrr test_writes&   zStdOutputFilesTest.test_writecCst}t|ddd}|d||jdg||td||jdg|t|jddt || t |j||jg| t |jd| t |jd||jg| t |jd d ||jgdS) Nstderrz iso-8859-15backslashreplaceu tèś𝖙¤)utè\u015b\U0001d599\xa4rrrrr~rrrYrrr test_write_stderr_nonencodables  z1StdOutputFilesTest.test_write_stderr_nonencodablecCsTt}t|d}|g||jg||ddg||jddg||ddg||jdd g||td g||jd g|t|jd d t || t |j||jg| t |jd ||jg| t |jdg| t |jd g||jg| t |jgg||jgdS)Nr|rfrt)rfr|)rtr|onè twò)rr|)rr|tèst)rr|rrr) r8rr}rcr"r;r9r)r+rr^rqrYrrr test_writeliness8  z"StdOutputFilesTest.test_writelinescCsxt}t|d}||j|d|||j|t |jd| |j dg||t |jddS)Nr|r~r]rro) r8rr}rRrSr=rArTr^ ValueErrorr"r;rqrYrrr rzs    zStdOutputFilesTest.test_closeN) r rrr\rdrrrrzrrrr r{s  r{c@s,eZdZddZddZddZddZd S) RecursionLimitTestcCsLt|tjtj}|jt|dd|t|dd|t|ddS)Nd)limitir) rinstall_recursionlimit_wrappers addCleanup!uninstall_recursionlimit_wrapperssyssetrecursionlimitr^rqr)r r[rrr test_bad_setrecursionlimit_calls#s  z3RecursionLimitTest.test_bad_setrecursionlimit_callscCsTt|tjt}|tj|t|dt}|||ddSr/)rrrrrgetrecursionlimitrr"r Z orig_reclimitZ new_reclimitrrr test_roundtrip+s z!RecursionLimitTest.test_roundtripcCs4t}t|tjt}|||dSr)rrrrrrr"rrrr &test_default_recursion_limit_preserved8s  z9RecursionLimitTest.test_default_recursion_limit_preservedcCsFdd}t|d||jdd|_t|d||jddS)NcSsdSrrrrrr funcArz,RecursionLimitTest.test_fixdoc..funcZmorezdocstring more)rZfixdocr"__doc__)r rrrr test_fixdoc?s   zRecursionLimitTest.test_fixdocN)r rrrrrrrrrr r s rc@seZdZddZdS)HandleErrorTestc Cs&|j}td}tjdtd}ztWn"tyLtjdddYn0|tj ddt_ || dzt Wn"t ytjdddYn0|tj ddt_ | }| d|| d|| d |||jd Wdn1s0YWdn1s0YdS) N __stderr__z!idlelib.run.thread.interrupt_main)Z new_callabler1Z123TFrh IndexErrorrk)r"rrrrEOFErrorrZ MyRPCServerZ handle_errorZexit_nowrrZquittingr$Zcalled)r eqerrrmsgrrr test_fatal_errorKs2        z HandleErrorTest.test_fatal_errorN)r rrrrrrr rIsrc@s,eZdZeddZeddZddZdS)ExecRuncodeTestcCsH|ttdtjt|_|jt_t}tdd|j_ t ||_ dS)NrF)result) ZaddClassCleanupsetattrrrrprtrZMockZconsoleZgetvarZ Executiveex)clsZmockrpcrrr setUpClassgs zExecRuncodeTest.setUpClasscCsdSrr)rrrr tearDownClasspszExecRuncodeTest.tearDownClasscCs|j}|d||jdt|ttdtjddt_ |d||j j dtddt_ |d|j\}}}||t | t|jtdS)Nz1/0r excepthookcSs t|Sr)rr)rrr'rrr rzrz1ExecRuncodeTest.test_exceptions..cSsdSrrrrrr r~r)rZruncodeZassertIsZ user_exc_infoZeroDivisionErrorrrr__excepthook__rrr5rqrT isinstance __context__)r rrrr'rrr test_exceptionsts       zExecRuncodeTest.test_exceptionsN)r rr classmethodrrrrrrr res   r__main__rk) verbosity)ZidlelibrrKrZ test.supportrrZunittestrZidlelib.idle_test.mock_idlerZtestingZTestCaserrr)r8rEr{rrrr mainrrrr s$   go)