a ze}A@sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlmZddlmZddlmZddlmZddlmZddlmZmZddlm Z dd l!m"Z"dd l#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)dd l*m+Z+dd l,m-Z-m.Z.zddl/Z/ddl0Z0Wne1yhdZ/Z0Yn0Gd ddZ2GdddZ3GdddZ4dddddddddde5ej6ej6fde7fdde7fd e7fd!e7fd"e7fe8d#d$d%fe9d&e7fgZ:dddddddd'e7fdd(e7fe5ej6ej6fde7fd)e7fde7fd e7fd!e7fd"e7fe8d#d$d%fe9d&e7fgZ;Gd*d+d+Zd0d1Z?Gd2d3d3ej@ZAGd4d5d5ej@ZBeCe/d6Gd7d8d8ej@ZDGd9d:d:ej@ZEGd;d<dd>ej@ZGd?d@ZHeIdAkreJdS)BN) ExitStack)partial) CO_COROUTINE)product)dedent)AsyncGeneratorType FunctionType)neg)support)EnvironmentVarGuardTESTFNcheck_warnings swap_attrunlinkmaybe_get_event_loop_policy)assert_python_ok) MagicMockpatchc@s$eZdZddZddZddZdS)SquarescCs||_g|_dSNmaxsofarselfrrE/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_builtin.py__init__+szSquares.__init__cCs t|jSrlenrrrrr__len__/zSquares.__len__cCsRd|kr|jksntt|j}||krH|j|||d7}q&|j|SNr)r IndexErrorrrappendrinrrr __getitem__1s   zSquares.__getitem__N__name__ __module__ __qualname__rr!r*rrrrr)src@s$eZdZddZddZddZdS) StrSquarescCs||_g|_dSrrrrrrr;szStrSquares.__init__cCs t|jSrrr rrrr!?szStrSquares.__len__cCsVd|kr|jksntt|j}||krL|jt|||d7}q&|j|Sr#)rr%rrr&strr'rrrr*Bs  zStrSquares.__getitem__Nr+rrrrr/9sr/c@seZdZddZdS) BitBucketcCsdSrr)rlinerrrwriteLszBitBucket.writeN)r,r-r.r3rrrrr1Ksr1)0r)1r$)9 )10 )Z99c)Z100d)Z314:) 314r<)z314 r<) 314 r<z 1x) 1 r$z 1  z s\u0663\u0661\u0664 zraw-unicode-escaper<ir=r>r?c@seZdZddZdS)TestFailingBoolcCstdSr RuntimeErrorr rrr__bool__|szTestFailingBool.__bool__N)r,r-r.rErrrrrB{srBc@seZdZddZdS)TestFailingItercCstdSrrCr rrr__iter__szTestFailingIter.__iter__Nr,r-r.rGrrrrrFsrFcCst|tdkS)Nd)ordargrrr filter_charsrMcCstt|dSNr$)chrrJrKrrrmap_charsrPc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Zd7d8Zd9d:Zd;d<Z d=d>Z!d?d@Z"dAdBZ#dCdDZ$dEdFZ%dGdHZ&dIdJZ'dKdLZ(dMdNZ)dOdPZ*dQdRZ+dSdTZ,e-.e/j0j1dUdVdWZ2dXdYZ3dZd[Z4d\d]Z5d^d_Z6d`daZ7dbdcZ8e9:;ddoe9<;deZ=e>dfdfkZ?e-.e=oe?dgdhdiZ@djdkZAdldmZBdndoZCdpdqZDeEdrdsZFeEdtduZGGdvdwdweHZIdxdyZJdzd{ZKd|d}ZLd~dZMeNjOddZPddZQddZRddZSddZTddZUddZVdS) BuiltinTestcCs|}t||}t|}|t|t||t||t|}z t|WntyhYdS0t||}t|}|t||dddSrN)pickledumpsloads assertEqualtypelistnext StopIteration)ritseqprotoZitorgrIrrrcheck_iter_pickles       zBuiltinTest.check_iter_picklec Cstdtdtdtddtddd|ttd|ttdd d d |ttd |jttddd|t0|jttd ddd didddWdn1s0Y|ttddS)Nsystimestringnamer)rblevelZspamspamr$r@__main__) __package____spec__r,)foo)localsfromlistrczstring) __import__ assertRaises ImportError TypeError ValueError assertWarns ImportWarningModuleNotFoundErrorr rrr test_imports     $zBuiltinTest.test_importcCs|tdd|tdd|tdd|ttj ddk|tdd|tdd|tdd|ttd|td d|td d|tt|ttdGd d d t}|t|d dS)Nri.r$gQ @gQ aTFc@seZdZddZdS)z&BuiltinTest.test_abs..AbsClasscSsdS)Nrr rrr__abs__sz.BuiltinTest.test_abs..AbsClass.__abs__N)r,r-r.rzrrrrAbsClasssr{ry)rUabs assertTruer^maxsizernrpobject)rr{rrrtest_abss zBuiltinTest.test_abscCs|tgdd|tgdd|ttdtdg|ttt|ttd|tt|ttgdg|tgd|tdtgdd d g}|td d |Ddgd }|tdd |DddS)NrdrfT)rdNrFrdrr9r2<css|]}|dkVqdS*Nr.0xrrr r"z'BuiltinTest.test_all..)r(rcss|]}|dkVqdSrrrrrrrr")rUallrnrDrBrFrprSrrrtest_alls zBuiltinTest.test_allcCs|tgdd|tgdd|ttdtdg|ttt|ttd|tt|ttgdg|tgd|tdtgdgd }|td d |Ddgd }|td d |DddS)N)NNNF)NrfNTrr9rr$)rrcss|]}|dkVqdSrrrrrrrr"z'BuiltinTest.test_any..)r9rcss|]}|dkVqdSrrrrrrrr")rUanyrnrDrBrFrprrrrtest_anys zBuiltinTest.test_anycstddtddtddtgdtidg}||t|d i}||d<t|d fd d }|d |d|d|d|d|d|d|d|d|dtddd}t|ddS)Nr@''rr4r()[]{}[[...]] {0: {...}}cst|t|dSr)rUasciirepr)sr rr _check_unisz*BuiltinTest.test_ascii.._check_uni'"z"'z .…u῿u𒿿uuu𝄡z '\U0001d121'u'" abcd…é𒿿𝄡xxx.z:'\'\x00"\n\r\t abcd\x85\xe9\U00012fff\ud800\U0001d121xxx.')rUrr&)rrxrrrr r test_asciis6   zBuiltinTest.test_asciicCs4tj d}|t|t|| tjddSrN)r^r~r} isinstanceintrUrrrrrtest_negs zBuiltinTest.test_negcCs>|tt|td|tt|tdd|ttdd}|t|Gddd}|t||}|t|j|t|d|_|t|dd|_|t||`|t|Gd d d t}|}|t|d|_|t|Gd d d |}|}|t|dS) NrxcSs||Srrryrrrr"z+BuiltinTest.test_callable..cSsdSrrrrrrfr"z$BuiltinTest.test_callable..fc@seZdZddZdS)z%BuiltinTest.test_callable..C1cSsdSrrr rrrmethr"z*BuiltinTest.test_callable..C1.methN)r,r-r.rrrrrC1srcSsdSNrrr rrrrr"c@seZdZddZdS)z%BuiltinTest.test_callable..C2cSsdSrrr rrr__call__$r"z.BuiltinTest.test_callable..C2.__call__N)r,r-r.rrrrrC2#src@s eZdZdS)z%BuiltinTest.test_callable..C3Nr,r-r.rrrrC3)r"r)r}callabler assertFalse __builtins__rrr)rrrcrc2rZc3rrr test_callable s4 zBuiltinTest.test_callablecCs:|tdd|tdd|tdd|tdd|ttd |ttjtd d d |tt|td d|tdd|tdd|tdd|tdd|tdd|tdd|tdd|tdd|ttd|ttd |t tftd!dS)"N rAAAarxÿiz \U0010ffffrzunicode-escape￿𐀀𐀁󿿾󿿿􀀀􀀁􏿾􏿿il) rUrOrnrqr^ maxunicoder0encoderp OverflowErrorr rrrtest_chr-s*  zBuiltinTest.test_chrcCs|ttd dS)Ncmp)r}hasattrbuiltinsr rrrtest_cmpCszBuiltinTest.test_cmpc Cstdddd}t|dddtddddtd d d d d tdddddttddd|tt|ttddd|ttdddd|tttddd|jttdddd d d dtddd|tttddd|tttdddd}dd}d d |jd d fd!d"d#g}|D]x^}}g}|t|d$d|d%t |}|t|d$d|d%|D].} i} t | | | d} | | t |qfq dS)&Nz print(1) r@execs print(1) pass?)sourcefilenamemodeFtmpr4eval) dont_inheritrrrT)rrstextrbz print(42) Zbadmodesinglerrr)rrru print("å") za = 1ZbadaJdef f(): """doc""" debug_enabled = False if __debug__: debug_enabled = True try: assert False except AssertionError: return (True, f.__doc__, debug_enabled, __debug__) else: return (False, f.__doc__, debug_enabled, __debug__) cSsdS)docNrrrrrrfr"z#BuiltinTest.test_compile..fr)rTrTT)r$FrFF)rdFNFFz)optimize)compile memoryviewrnrprqrOr0__doc__r&astparserrUtuple) rbomZcodestrrvaluesZoptvalexpectedZcodeobjsZtreecodensrvrrr test_compileFsD        zBuiltinTest.test_compilecCs`d}gd}t||D]D\}}t|}t|d|tjd}|j|jt@td|d|dqdS) zCMake sure top level non-await codes get the correct coroutine flagsrr)z def f():pass z[x for x in l]z{x for x in l}z(x for x in l)z{x:x for x in l}rflagssource= mode=msgN)rrrrPyCF_ALLOW_TOP_LEVEL_AWAITassertNotEqualco_flagsr)rmodes code_samplesr code_samplercorrr$test_compile_top_level_await_no_corowsz0BuiltinTest.test_compile_top_level_await_no_coroc Cs0dd}d}gd}t}zt||D]\}}t|}|jtd|d|dt|d|Wd n1st0Yt|d|tjd }|j|j t @t d|d|dt d |d } t || } t | || d dt d |d } t t|| || d dq(Wt |n t |0d S)aITest whether code some top level await can be compiled. Make sure it compiles only with the PyCF_ALLOW_TOP_LEVEL_AWAIT flag set, and make sure the generated code object has the CO_COROUTINE flag set in order to execute it with `await eval(.....)` instead of exec, or via a FunctionType. cSst|D] }|VqdSrranger)r(rrraranges z8BuiltinTest.test_compile_top_level_await..aranger) z$a = await asyncio.sleep(0, result=1)z2async for i in arange(1): a = 1z8async with asyncio.Lock() as l: a = 1z#a = [x async for x in arange(2)][1]z%a = 1 in {x async for x in arange(2)}z%a = {x:1 async for x in arange(1)}[0]z.aranger)zdef f(): await arange(10) z(def f(): [x async for x in arange(10)] z.def f(): [await x async for x in arange(10)] z_def f(): async for i in arange(1): a = 1 zedef f(): async with asyncio.Lock() as l: a = 1 rrrrr) rrrrnrrrrrr ) rrrrr rrrrrrr*test_compile_top_level_await_invalid_casess( *(z6BuiltinTest.test_compile_top_level_await_invalid_casescCsBtd}t|ddtjd}i}t|||t|dtdS)z With the PyCF_ALLOW_TOP_LEVEL_AWAIT flag added in 3.8, we want to make sure AsyncGenerators are still properly not marked with the CO_COROUTINE flag. z~async def ticker(): for i in range(10): yield i await asyncio.sleep(0)rrrZtickerN)rrrrrrUrVr)rrrglobrrrtest_compile_async_generators  z(BuiltinTest.test_compile_async_generatorcCs dt_ttd|ttdS)Nr$spam)r^rdelattrrnrpr rrr test_delattrs zBuiltinTest.test_delattrc Cs|ttddd}|dt|dttGdddtj}|d}|tt||dtt|d ttGd ddt }|}|d t|Gd ddt }|}|d t|Gdddt }|}|d t||dt|Gdddt }|}| t|gdkGdddt }t|}| |t | |gdkGdddt }|}|tt|zt Wn(|tttddYn0|tgtgdS)Nrr$ local_varexitc@seZdZdZdS)!BuiltinTest.test_dir..FooN)r,r-r.__dict__rrrrFoo srrjstrip__mro__c@seZdZddZdS)rcSsd|_d|_d|_dS)Nrr7)rrzr rrrrs*BuiltinTest.test_dir..Foo.__init__N)r,r-r.rrrrrrsrc@seZdZgZdS)rN)r,r-r. __slots__rrrrr s__repr__c@seZdZddgZddZdS)r __class__rcSs d|_dS)NZwow)barr rrrr)srN)r,r-r.rrrrrrr'sr"c@seZdZddZdS)rcSsgdS)N)kangaroorr rrr__dir__1s)BuiltinTest.test_dir..Foo.__dir__Nr,r-r.r&rrrrr0s)r$r#r%c@seZdZddZdS)rcSsdS)N)brrxrr rrrr&8sr'Nr(rrrrr7srxr)rc@seZdZddZdS)rcSsdS)Nrrr rrrr&@sr'Nr(rrrrr?srdrf)rnrpdirassertInr^types ModuleTyper0 assertNotInrr}ZassertIsInstancerWr%rUrexc_infosortedr&)rrrrresrrrtest_dirsD  "zBuiltinTest.test_dircCs|tddd|tddd|tddd|tddd|ttj d d tjd d fd D]<\}}}t||}||d |d ||d |d qp|ttdS) N r)r$i)rdi)r6r6)r$ryr$rr)) @?)@g?) r8)g?)r7)r;g)r:r<)r9gп)rUdivmodr^r~assertAlmostEqualrnrp)rnumZdenomZ exp_resultresultrrr test_divmodNs$ zBuiltinTest.test_divmodcCs|tdd|tddddd}ddd}|td |d|td ||d|td ||d|td ||dddd}ddd}d }|t|d ||d|td|d|tt|ttd|tt|ddd Gddd}|ttdi|dS)N1+1rdz 1+1 r$rxr),)r)rrxr)rrau"å"årc@seZdZddZdS)z BuiltinTest.test_eval..XcSstdSrrqrkeyrrrr*ssz,BuiltinTest.test_eval..X.__getitem__Nr,r-r.r*rrrrXrsrLrj)rUrrnrprrq)rglobalsrkrrLrrr test_eval`s$     zBuiltinTest.test_evalc CsGddd}|}t}|td||d|ttd|||td||td|td||||td ||||ttd|Gd d d }|}|ttd||Gd d d t}|}|td||d|ttd|||td||td|td||||td |||td||td|t Gddd}|}d|d<d|d<d|d<||ddGddd} |ttdt| dS)Nc@s eZdZdZddZddZdS)z(BuiltinTest.test_general_eval..Mz9Test mapping interface versus possible calls from eval().cSs|dkr dStdSNrxr4KeyErrorrIrrrr*|sz4BuiltinTest.test_general_eval..M.__getitem__cSstdSNxyzrWr rrrkeyssz-BuiltinTest.test_general_eval..M.keysN)r,r-r.rr*rUrrrrMzsrVrxr4r)zdir()rSz globals()zlocals()c@seZdZdZdS)z(BuiltinTest.test_general_eval..Az Non-mappingN)r,r-r.rrrrrrsrc@seZdZddZddZdS)z(BuiltinTest.test_general_eval..DcSs|dkr dSt||SrO)dictr*rIrrrr*sz4BuiltinTest.test_general_eval..D.__getitem__cSstdSrRrTr rrrrUsz-BuiltinTest.test_general_eval..D.keysNr,r-r.r*rUrrrrDsrYz[locals() for i in (2,3)]c@s$eZdZdZiZddZddZdS)z2BuiltinTest.test_general_eval..SpreadSheetz6Sample application showing nested, calculated lookups.cSs||j|<dSr)_cells)rrJZformularrr __setitem__sz>BuiltinTest.test_general_eval..SpreadSheet.__setitem__cSst|j|t|Sr)rrZrMrIrrrr*sz>BuiltinTest.test_general_eval..SpreadSheet.__getitem__N)r,r-r.rrZr[r*rrrr SpreadSheetsr\5Za1za1*6Za2za2*7a3c@seZdZddZddZdS)z(BuiltinTest.test_general_eval..CcSs t|dSrrP)ritemrrrr*sz4BuiltinTest.test_general_eval..C.__getitem__cSsdSrNrr rrrrUsz-BuiltinTest.test_general_eval..C.keysNrXrrrrCsra) rMrUrrn NameErrorrWrprW collectionsUserDict) rrVmgrrYrIr\ssrarrrtest_general_evalws:  zBuiltinTest.test_general_evalcCsi}td|d|vr|d=||dditd|d|vrD|d=||ddii}i}t,tjddd d td ||Wdn1s0Yd|vr|d=d|vr|d=|||fd did difdS)Nzz = 1rrr$zz = 1+1rdignorezglobal statementr)modulezglobal a; a = 1; b = 2rxr))rrUr warningsfilterwarnings)rrflrrr test_execs*  *zBuiltinTest.test_execcstddd}|tdt|dii|tt|dditddd}|tdt|diiGd d d tGfd d d t}tt t j r|t j }n|t }td dd}|t|d|i|i}tddd}|t||dS)Nzprint('Hello World!')r@rzname 'print' is not definedr{z class A: passz__build_class__ not foundc@s eZdZdS)z7BuiltinTest.test_exec_globals..frozendict_errorNrrrrrfrozendict_errorsrpcseZdZfddZdS)z1BuiltinTest.test_exec_globals..frozendictcs ddS)Nzfrozendict is readonlyr)rrJvaluerprrr[sz=BuiltinTest.test_exec_globals..frozendict.__setitem__N)r,r-r.r[rrrrr frozendictsrsz1__builtins__['superglobal']=2; print(superglobal)testzx=1) rassertRaisesRegexrbrrnrp ExceptionrWrrr-r.r)rrrsZfrozen_builtins namespacerrrrtest_exec_globalss2          zBuiltinTest.test_exec_globalscCsDtj}dt_z*z tdWnty,Yn0W|t_n|t_0dS)Nrx)r^stdoutrrb)r savestdoutrrrtest_exec_redirecteds  z BuiltinTest.test_exec_redirectedc Csn|ttdddtd|ttdddgdgddd d gdddgd g|ttd dgd gd |ttdtdgd|ttddtdgddd}t|td|ttGdddt}|tttdd|dd}|ttt|td|ttddddg|ttdddddg|tttdddS) NcSsd|kodkSS)Nrxrr)rrrrrr"z)BuiltinTest.test_filter..z Hello WorldZelloorldr$Zhellorer@r7rcSs|dkSrrrrrrrr")r$r7rrd)r$r7rdr9) r$rfr7$1@QcSs|dS)Nrdrr|rrrrr")r$r7rrrcSsdSrNr)r`rrridentity sz)BuiltinTest.test_filter..identityr5c@seZdZddZdS)z'BuiltinTest.test_filter..BadSeqcSs|dkr dStdS)NrfrrHrindexrrrr*sz3BuiltinTest.test_filter..BadSeq.__getitem__NrKrrrrBadSeq srcSs|Srrr|rrrrr"cSsdSrrrrrrbadfuncsz(BuiltinTest.test_filter..badfuncr$rdrdcSs|dkS)Nrerr|rrrrr"r$rdrerfrfr) rUrWfilterrrnrprrqr)rrrrrrr test_filters2"" zBuiltinTest.test_filtercCs>ttjdD]*}ttd}ttd}||t||qdS)Nr$Z abcdeabcde)rrRHIGHEST_PROTOCOLrrMr]rW)rr\f1f2rrrtest_filter_pickles  zBuiltinTest.test_filter_picklecCsn|ttdtju|tttd|tttdd|tt|tttttj|ttdddS)Nryr$rju픞) r}getattrr^ryrnrpAttributeErrorrOrr rrr test_getattr"s  zBuiltinTest.test_getattrcCs|ttd|tttd|tt|dttttjGddd}|tt|dGddd}|t t|ddS) Nryr$Fc@seZdZddZdS)z#BuiltinTest.test_hasattr..AcSstdSr) SystemExitrZwhatrrr __getattr__4sz/BuiltinTest.test_hasattr..A.__getattr__Nr,r-r.rrrrrr3srr)c@seZdZddZdS)z#BuiltinTest.test_hasattr..BcSstdSrrHrrrrr8sz/BuiltinTest.test_hasattr..B.__getattr__NrrrrrB7sr) r}rr^rnrprUrOrrrq)rrrrrr test_hasattr+s zBuiltinTest.test_hasattrcCstd|tdtd|tdtdtd|tdtdtddd}t||ttg|ttiGdd d }|tt|tGd d d t}|t|d td dS) Nr$r8rsspamrr$rdrecSsdSrrrrrrrCr"z BuiltinTest.test_hash..fc@seZdZddZdS)z BuiltinTest.test_hash..XcSsddS)Nrdr;rr rrr__hash__Isz)BuiltinTest.test_hash..X.__hash__Nr,r-r.rrrrrrLHsrLc@seZdZddZdS)z BuiltinTest.test_hash..ZcSs|Srrr rrrrMsz)BuiltinTest.test_hash..Z.__hash__NrrrrrZLsrr)hashrUrnrprVr)rrrLrrrr test_hash<szBuiltinTest.test_hashcCs2|tdd|tdd|ttidS)Nr~Z0x10iz-0x10)rUhexrnrpr rrrtest_hexQszBuiltinTest.test_hexcCsHtdtdtdtdtdtgdtdddddS)Nr$r8rrrdre)rZeggsham)idr rrrtest_idVs zBuiltinTest.test_idcCsn|tt|ttdddddgdg}|D]:}t|}|t|d|t|d|tt|q.dS)Nr)r52r5rZ12)rnrpiterrUrXrY)rZlistsrmr(rrr test_iteras zBuiltinTest.test_itercCsGddd}Gddd|}Gddd}|}|}|}|t|||t|||t|| |t|| |td| |tt|d|ttdS)Nc@s eZdZdS)z&BuiltinTest.test_isinstance..CNrrrrrralsrac@s eZdZdS)z&BuiltinTest.test_isinstance..DNrrrrrrYnsrYc@s eZdZdS)z&BuiltinTest.test_isinstance..ENrrrrrEpsrrj)r}rrnrprrarYrrrIerrrtest_isinstancekszBuiltinTest.test_isinstancecCsGddd}Gddd|}Gddd}|}|}|}|t|||t|||t|| |ttd||tt|d|ttdS)Nc@s eZdZdS)z&BuiltinTest.test_issubclass..CNrrrrrra~srac@s eZdZdS)z&BuiltinTest.test_issubclass..DNrrrrrrYsrYc@s eZdZdS)z&BuiltinTest.test_issubclass..ENrrrrrrsrrj)r} issubclassrnrprrrrtest_issubclass}szBuiltinTest.test_issubclasscCsB|tdd|tdd|tdd|tgdd|tid|tddd dGd d d }|tt|Gd d d }|tt|Gddd}|tt|Gddd}|tt|Gddd}|tt|Gddd}|tt|Gdddt}|tt|dS)N123rerrrrfr$rdrCc@seZdZddZdS)z$BuiltinTest.test_len..BadSeqcSstdSrrHr rrrr!sz,BuiltinTest.test_len..BadSeq.__len__Nr,r-r.r!rrrrrsrc@seZdZddZdS)z(BuiltinTest.test_len..InvalidLencSsdSrrr rrrr!sz0BuiltinTest.test_len..InvalidLen.__len__Nrrrrr InvalidLensrc@seZdZddZdS)z&BuiltinTest.test_len..FloatLencSsdS)Ng@rr rrrr!sz.BuiltinTest.test_len..FloatLen.__len__NrrrrrFloatLensrc@seZdZddZdS)z)BuiltinTest.test_len..NegativeLencSsdS)Nirr rrrr!sz1BuiltinTest.test_len..NegativeLen.__len__Nrrrrr NegativeLensrc@seZdZddZdS)z%BuiltinTest.test_len..HugeLencSs tjdSrNr^r~r rrrr!sz-BuiltinTest.test_len..HugeLen.__len__NrrrrrHugeLensrc@seZdZddZdS)z-BuiltinTest.test_len..HugeNegativeLencSs tj dS)Nr9rr rrrr!sz5BuiltinTest.test_len..HugeNegativeLen.__len__NrrrrrHugeNegativeLensrc@s eZdZdS)z)BuiltinTest.test_len..NoLenMethodNrrrrr NoLenMethodr"r)rUrrnrqrprr)rrrrrrrrrrrtest_lens(zBuiltinTest.test_lenc s|ttddtddgdzddlmWntyNdd Yn0|ttfd dd dgd d ggddgddgg|ttddgdgdgddd}|tt|gdgd|tt|gdgdgd|tt|gdgdgdgd|ttttdgddd }|tt|td!td"ddg| t t| t td#dd$Gd%d&d&}| t ttd'd|d(d)}| t tt|td*dS)+NcSs||Srrr|rrrrr"z&BuiltinTest.test_map..r$rf)r$rfr7rsqrtcSs t|dS)N?)powr|rrrrsz"BuiltinTest.test_map..sqrtcstt|Sr)rWmapr|rrrrr"r~rr7@@g"@r9cSs||Srrrrrrrr")r$rerd)r7r$rf)r9rfrcWsd}|D] }||}q|Srr)vZaccur(rrrplussz"BuiltinTest.test_map..plus)r$rer)rfr7rd)r5r4r7)r$r$r)r r7r9) rr$rfr7r~rrrrrcSs"|dur |S|dur|St||Sr)rrCrrrMaxs z!BuiltinTest.test_map..MaxrerdcSs|Srrr|rrrrr"rc@seZdZddZdS)z$BuiltinTest.test_map..BadSeqcsstdVdSrrHr rrrrGsz-BuiltinTest.test_map..BadSeq.__iter__NrHrrrrrsrcSs|Srrr|rrrrr"cSstdSrrCr|rrrrsz%BuiltinTest.test_map..badfuncr5) rUrWrrmathrrorrrnrprqrD)rrrrrrrrtest_mapsX   zBuiltinTest.test_mapcCs>ttjdD]*}ttd}ttd}||t||qdS)Nr$zIs this the real life?)rrRrrrPr]rW)rr\Zm1Zm2rrrtest_map_pickles  zBuiltinTest.test_map_picklec Cs6|tdd|tdddd|tdd|tgdd|tdddd|tdddd|td ddd|td tWdn1s0Y|ttd |ttd Gd dd}|tt|dD]4}zt|tWntyYq0||q|tdt dd|tdt dd|tddt dd|td ddd|tdddd|tdddd|td dt dd|tddt dd|tddddddt dD}t dd|D}|j }|t||dt t||dddS)N1231233r$rdrer$rdrer$rdrer9rr8z'max expected at least 1 argument, got 0rrc@seZdZddZdS)z$BuiltinTest.test_max..BadSeqcSstdSrrHrrrrr*sz0BuiltinTest.test_max..BadSeq.__getitem__NrKrrrrrsr)z max(key=int)zmax(default=None)zmax(1, 2, default=None)zmax(default=None, key=int)zmax(1, key=int)zmax(1, 2, keystone=int)zmax(1, 2, key=int, abc=int)zmax(1, 2, key=1)r$rJrdefaultrrJcSsg|]}tdqSrDrandom randrangerr(rrr 'r"z(BuiltinTest.test_max..r;css|]}|tdfVqdSrNrrelemrrrr(r"z'BuiltinTest.test_max..r)rUrrurprnrqrrMfailr rrWr*r1reversedrrZstmtdatarUrrrrtest_maxsJ$  zBuiltinTest.test_maxc Cs2|tdd|tdddd|tdd|tgdd|tdddd|tdddd|td ddd |td tWdn1s0Y|ttd |ttd Gd dd}|tt|dD]4}zt|tWntyYq0||q|tdt dd|tdt dd|tddt dd|td ddd|tdddd|tdddd|td dt dd|tddt dd|tddddddt dD}t dd|D}|j }|t||dt ||dddS)Nrr5r$rdrerr9rr8z'min expected at least 1 argument, got 0rrc@seZdZddZdS)z$BuiltinTest.test_min..BadSeqcSstdSrrHrrrrr*@sz0BuiltinTest.test_min..BadSeq.__getitem__NrKrrrrr?sr)z min(key=int)zmin(default=None)zmin(1, 2, default=None)zmin(default=None, key=int)zmin(1, key=int)zmin(1, 2, keystone=int)zmin(1, 2, key=int, abc=int)zmin(1, 2, key=1)rrrrrcSsg|]}tdqSrrrrrrrbr"z(BuiltinTest.test_min..r;css|]}|tdfVqdSrrrrrrrcr"z'BuiltinTest.test_min..r)rUminrurprnrqrrMrr rrWr*r1rrrrtest_min-sJ$  zBuiltinTest.test_mincCsttd}|t|d|t|d|tt||tt||t|ddGdddt}t|}|t|dd|tt|dd}|}|t|d|tt||t|dddS) Nrdrr$rc@seZdZddZddZdS)z#BuiltinTest.test_next..ItercSs|Srrr rrrrGqsz,BuiltinTest.test_next..Iter.__iter__cSstdSr)rYr rrr__next__ssz,BuiltinTest.test_next..Iter.__next__N)r,r-r.rGrrrrrIterpsrcss dVdSrNrrrrrgenzsz"BuiltinTest.test_next..gen)rrrUrXrnrYr)rrZrrrrr test_nexths  zBuiltinTest.test_nextcCs2|tdd|tdd|ttddS)Nr;Z0o144iz-0o144r)rUoctrnrpr rrrtest_octszBuiltinTest.test_octcCszttd}|tt|L|d|d|d|d|d|dWdn1sl0YdS)Nw1+1 z+The quick brown fox jumps over the lazy dogz. z Dear John ,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX,YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY)openr addCleanuprr3rfprrrwrite_testfiles       zBuiltinTest.write_testfilecCs|ttd}|z||dd||d||dd||dd||dd ||d d Wdn1s0Y|ttd |ttd dS)Nrrfrz-The quick brown fox jumps over the lazy dog. ZDearr;z John rErrzabsab)rrr rUreadlinereadrnrqrrrr test_opens 0zBuiltinTest.test_openzutf-8 mode is enabledc Csttj}zdD]}|tjvrtj|=q|td}ttd}|||j |Wdn1sl0YWtj tj |ntj tj |0dS)N)LC_ALLLANGLC_CTYPEFr) rWosenvironrlocalegetpreferredencodingrr rUencodingclearupdate)rZ old_environrJZcurrent_locale_encodingrrrrtest_open_default_encodings     .  z&BuiltinTest.test_open_default_encodingcCsDtt}|$|t|Wdn1s60YdSr)r__file__rrget_inheritablefileno)rfileobjrrrtest_open_non_inheritablesz%BuiltinTest.test_open_non_inheritablecCsn|tdd|tdd|tdd|tdd|td d |td d|td d|td d|tdd|tdd |tttjtj|ttd|ttdd|tdd|tdd|tdd|tdd|tdd|tdd|tdd|td d!|td"ddS)#NrArrrrxr€rr ArFrrrrrrrrrrrrrrrrrrr)rUrJrOr^rrnrpr rrrtest_ords,zBuiltinTest.test_ordc Cs$|tddd|tddd|tddd|tddd|tddd|tddd|tddd|tddd |td dd|td dd |td dd |td d d |tddd|tddd|tddd|tddd|tddd|tddd|tddd|tddd|tddd|tddd|tddd|tdd ddD]j}dD]^}dD]R}t|tst|tst|tr|tt|||n|t|||dqĐqq|tddd|tddd|tdd d d|ttddd|tt|tddd d|tdd d!d"|td#dd$d%d&ttdd'}||d#d d(ttd#d }||dd(ttdd)}||dd*d ||d*dd+d dS),Nrr$rdr9irrr@r6rfrerwr8rg@g0AgAgr )rdr)r9$@)rg@@g8@rry?gUUUUUU?y?LXz?)exp)baser r~r5)rr mod )rr)rr)r r) rUrr>rfloatrnrprqr)rrrrZtwopowZ fifth_powerZmod10rrrtest_powsb      zBuiltinTest.test_powcCs |ttd}tj}tj}z|t_tt_|td|td|tdd|t_tj | t ttt_t dt_| ttddt dt_|tdt t_| ttt`| ttd t`| ttd W|t_|t_| n|t_|t_| 0dS) NrrBz,The quick brown fox jumps over the lazy dog.ztesting z Dear JohnzNULLrz 'whitespace'prompt)rrr r^stdinryr1rUinputclosernrqioStringIOrpEOFErrorrD)rrZ savestdinrzrrr test_inputs<        zBuiltinTest.test_inputcCs|tdd|tdd|tdd|tgd|tidg}|||t|d i}||d<|t|d dS) Nr@rrr4rrrrrr)rUrr&)rrxrrr test_repr:s zBuiltinTest.test_reprcCs0|tdd|ttdt|tdd|tdd|tdd|tdd|tdd|tdd|tdd|td d |td d|td d|td d|td d|tdd|tdd|tdd|tdd|tdd|tdd|tdd|tdd|tdd|tddd|ttddt|ttddt|ttddt|tdd|tdd|tdd|td d|tdd|td!d!|td"d"|ttdt|ttd"dt|ttd"dt|ttd"dt|tddd#d|ttGd$d%d%}Gd&d'd'}|t|d(|ttdd)d*|tt||}d+d,|_|tt||tt|ddS)-Nrwr8r geAg@xDr<g$geg@xg?g?g333333$@g eAgg333333$g eg?g#@g33dAgg#g33dr rrr$g@rg@gigrr )Znumberndigitsc@seZdZddZdS)z)BuiltinTest.test_round..TestRoundcSsdS)Nrr rrr __round__sz3BuiltinTest.test_round..TestRound.__round__N)r,r-r.rrrrr TestRoundsr c@s eZdZdS)z+BuiltinTest.test_round..TestNoRoundNrrrrr TestNoRoundsr!rrdrecWs|Srr)argsrrrrr"z(BuiltinTest.test_round..)rUroundrVrrrnrpr)rr r!trrr test_roundGsb  zBuiltinTest.test_roundZLinuxalpha7y1CzItest will fail; failure is probably due to a buggy system round functioncCsT|tdd|tdd|tdd|tdd|tdddS)Ng7y1Cg7y1Cr'g7y1Cg7y1C)rUr#r rrrtest_round_larges zBuiltinTest.test_round_largecCsXddtdtddfD]8}|t|dt||tt|dtt|qdS)Nrvg ףp=J@z1234.56i@r;)decimalZDecimal fractionsZFractionrUr#rVrrrrtest_bug_27936s zBuiltinTest.test_bug_27936cCs<ttdd|tjd|tttdd|ttdS)Nrr$)setattrr^rUrrnrpr rrr test_setattrs zBuiltinTest.test_setattrcCsj|tgd|tttddd|ttttddd|ttdd|tttdd|tdgdgdggggd |ttdd d |ttdd d d |ttdd d|ttddd|tddtdDd|tddtdDdd|tddtdDdd|tgdd|tddtdDd|tddtdDd d|tddtdDd d!|td"dgd#|tdd"gd#|ttd$gd%|ttd$gd$d&|ttgd$d&|t t|t td'|t tgd(|t tgd(d)|t td*d+gd,t d*t d-g}|t t|t d,|t tdgdgdgg|t tddig|t tddigdddi|t tgd)|t tgd,|t tgt Gd.d/d/}|t t|g}td0dtdD|||gdS)1Nrrdrr9ir$rer$rdreri)startil(ll(css|]}|ddkVqdSrdrNrrrrrrr"z'BuiltinTest.test_sum..r5css|]}|ddkVqdSr1rrrrrrr"ilcss|]}|ddkVqdSr1rrrrrrr"llFcss|]}|dVqdSrdNrrrrrrr"g6@css|]}|dVqdSr2rrrrrrr"g@css|]}|dVqdSr2rrrrrrr"gB@g@rg?gz0.0z-0.0rr*r@rFcr"bc@seZdZddZdS)z$BuiltinTest.test_sum..BadSeqcSstdSrrHrrrrr*sz0BuiltinTest.test_sum..BadSeq.__getitem__NrKrrrrrsrcss|] }|gVqdSrrrrrrrr") rUsumrWrrrassertIsrrnrp bytearrayrq)rrremptyrrrtest_sumsX"   zBuiltinTest.test_sumcCs,|tdtd|tdtddS)Nr@rr)rUrVrr rrr test_typeszBuiltinTest.test_typecCstSr)varsrrrr get_vars_f0szBuiltinTest.get_vars_f0cCstd}d}tS)Nr$rd)rQr<r;rCrrr get_vars_f2szBuiltinTest.get_vars_f2c@seZdZddZeedZdS)zBuiltinTest.C_get_varscCsddiS)Nrxrdrr rrrgetDictszBuiltinTest.C_get_vars.getDict)fgetN)r,r-r.r>propertyrrrrr C_get_varssrAcCs|tttt|tttttt||i||ddd|ttdd|ttd|t| ddidS)Nr$rdrCrrx) rUsetr;r+r^r<r=rnrprAr rrr test_varsszBuiltinTest.test_varscCsJd}d}gd}|tt|||gd}|tt|||d}|tt|||Gddd}|tt||||ttg|ttgg|ttdGddd}|tt|||tt|tGd d d }|tt|td tttd Gd dd}|t tt||dS)Nr/rfr5r)r$rf)rdr5)rer)rfr5rrc@seZdZddZdS)zBuiltinTest.test_zip..IcSs|dks|dkrt|dS)Nrrdrfr%rr(rrrr*sz+BuiltinTest.test_zip..I.__getitem__NrKrrrrIsrHc@s eZdZdS)zBuiltinTest.test_zip..GNrrrrrGsrIc@seZdZddZdS)z4BuiltinTest.test_zip..SequenceWithoutALengthcSs|dkrtn|SdSNr5rFrGrrrr*$sz@BuiltinTest.test_zip..SequenceWithoutALength.__getitem__NrKrrrrSequenceWithoutALength#srKr r5c@seZdZddZdS)z$BuiltinTest.test_zip..BadSeqcSs|dkrtn|SdSrJrHrGrrrr*/sz0BuiltinTest.test_zip..BadSeq.__getitem__NrKrrrrr.sr) rUrWziprnrprDrFr enumeraterq)rrxr)r$rHrIrKrrrrtest_zip s.zBuiltinTest.test_zipcCs@d}d}gd}ttjdD]}t||}||||qdS)Nr/rDrEr$)rrRrrLr])rrxr)r$r\Zz1rrrtest_zip_pickle6s  zBuiltinTest.test_zip_picklecs^tGfddd}|t}t|Wdn1sB0Y||jdS)NcseZdZfddZdS)z6BuiltinTest.test_zip_bad_iterable..BadIterablecsdSrrr  exceptionrrrGBsz?BuiltinTest.test_zip_bad_iterable..BadIterable.__iter__NrHrrPrr BadIterableAsrR)rprnrLr6rQ)rrRcmrrPrtest_zip_bad_iterable>s  (z!BuiltinTest.test_zip_bad_iterablecCs*tgg}t|tt|dSr)rLgcZcollectr}Z is_trackedrX)rrZrrrtest_zip_result_gcJs zBuiltinTest.test_zip_result_gcc s,tddddd}fdd}||fdd }|d |d |d |d |d|d|t|dGddd}tt|dtttdtttttd}|dttjdttjtttjdGddd}t|dt|ddt|ddGddd}Gdddt}t||fD]z} | } t| t| t| dt|  tdt | j t| dWdn1s0YqGdddt} td| dd dS)!Nrer@rcSs\Gdddt}Gddd|}Gdddt}Gddd|}Gd d d |}||||fS) Nc@seZdZddZddZdS)z7BuiltinTest.test_format..classes_new..AcSs ||_dSrr|rrrrr_sz@BuiltinTest.test_format..classes_new..A.__init__cSst|j|Srr0rr format_specrrr __format__aszBBuiltinTest.test_format..classes_new..A.__format__Nr,r-r.rrZrrrrr^src@s eZdZdS)zBBuiltinTest.test_format..classes_new..DerivedFromANrrrrr DerivedFromAcsr\c@s eZdZdS)z.classes_new..SimpleNrrrrrSimplefr"r]c@seZdZddZddZdS)zGBuiltinTest.test_format..classes_new..DerivedFromSimplecSs ||_dSrr|rrrrrhszPBuiltinTest.test_format..classes_new..DerivedFromSimple.__init__cSst|j|SrrWrXrrrrZjszRBuiltinTest.test_format..classes_new..DerivedFromSimple.__format__Nr[rrrrDerivedFromSimplegsr^c@s eZdZdS)zHBuiltinTest.test_format..classes_new..DerivedFromSimple2NrrrrrDerivedFromSimple2lr"r_)r)rr\r]r^r_rrr classes_new]s z,BuiltinTest.test_format..classes_newcs\t|dddt|dddt|dddt|d d d dS) NrespecZ3specrfZ4specr5abcZ5abcr9ZabcdefZ10abcdef)rUformat)rr\r^r_r rr class_testos z+BuiltinTest.test_format..class_testcs.t|dt|t|t|dSNr@)rUrcr0)rqr rrempty_format_specxsz2BuiltinTest.test_format..empty_format_specl.@r8g]]^Ug]]^g;q7r*g;q7rc@seZdZddZdS)z0BuiltinTest.test_format..BadFormatResultcSsdS)Nr8rrXrrrrZsz;BuiltinTest.test_format..BadFormatResult.__format__Nr,r-r.rZrrrrBadFormatResultsrhrfz.AcSs td|Sre)rc)rZfmt_strrrrrZsz-BuiltinTest.test_format..A.__format__Nrgrrrrrsrrc@s eZdZdS)z"BuiltinTest.test_format..BNrrrrrrsrc@s eZdZdS)z"BuiltinTest.test_format..CNrrrrrrasraz\b%s\bc@s eZdZdS)z/BuiltinTest.test_format..DerivedFromStrNrrrrrDerivedFromStrr"rirr8z 0) rUrcrrnrprZr} startswithr0rureescaper,) rr`rdrfrhrrrraclsobjrirr r test_formatVsL    .zBuiltinTest.test_formatcCs|tdd|tdd|tdd|tddd |tdddd |tdd d |tddd d dS) NrZ0b0r$Z0b1rz-0b1rdrZD0b100000000000000000000000000000000000000000000000000000000000000000ZC0b11111111111111111111111111111111111111111111111111111111111111111zE-0b100000000000000000000000000000000000000000000000000000000000000000zD-0b11111111111111111111111111111111111111111111111111111111111111111)rUbinr rrrtest_binszBuiltinTest.test_bincCs0td}|t|jdd|t|jdddS)Nsabc1r$s1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111)r7rnrq translaterprrrrtest_bytearray_translatesz$BuiltinTest.test_bytearray_translatecCs$t}ttd}|t|j|dS)NrL)r7rrrnrqextend)rarrayZbad_iterrrrtest_bytearray_extend_errors z'BuiltinTest.test_bytearray_extend_errorcCsLdttfD]<}t|}||||t|dd|jt|dddq dS)Nr$rdrC)EllipsisNotImplementedrVr6rnrp)rconsttprrrtest_construct_singletonss z%BuiltinTest.test_construct_singletonscCs||ttt|t|tWdn1s80Y|t|t Wdn1sn0YdSr)rrDeprecationWarningboolryr}rr rrrtest_warning_notimplementeds  ( z'BuiltinTest.test_warning_notimplementedN)Wr,r-r.r]rurrrrrrrrrrr rrrr3rArNrhrnrxr{rrrrrrrrrrrrrrrrrrrunittestskipIfr^r utf8_moderrrrrrr%platformsystemrjmachineZ linux_alphar#Zsystem_round_bugr(r+r-r9r: staticmethodr<r=rrArCrNrOrTr Z cpython_onlyrVrorqrtrwr|rrrrrrQs#"1:&ME$    "<;;  >% Q     4   ,  e rQc@seZdZddZddZddZddZd d Zd d Ze e j j d ddZe e j j d ddZe e j j d ddZddZe e j j d ddZddZdS)TestBreakpointcCsHt|_||jj|jt|_|jd=|jttdtj dS)NPYTHONBREAKPOINTbreakpointhook) r resourcesrr enter_contextr envrr^__breakpointhook__r rrrsetUps zTestBreakpoint.setUpcCs:td}tWdn1s$0Y|dSN pdb.set_trace)r breakpointZassert_called_oncermockrrrtest_breakpoints $zTestBreakpoint.test_breakpointcCst}|t_t|dSrrr^rrassert_called_once_withrmy_breakpointhookrrr'test_breakpoint_with_breakpointhook_setsz6TestBreakpoint.test_breakpoint_with_breakpointhook_setcCsdt}|t_t|tjt_td}t|Wdn1sN0Y|dSr)rr^rrrrr)rrrrrr)test_breakpoint_with_breakpointhook_resets &z8TestBreakpoint.test_breakpoint_with_breakpointhook_resetcCs6t}|t_tdddddd|jdddddddS)Nr$rdrerfr5ZfourZfiverrrrr&test_breakpoint_with_args_and_keywords sz5TestBreakpoint.test_breakpoint_with_args_and_keywordsc Cs*dd}|t_|jttdddddddS) NcSsdSrrrrrrrszMTestBreakpoint.test_breakpoint_with_passthru_error..my_breakpointhookr$rdrerfr5r)r^rrnrprrrrr#test_breakpoint_with_passthru_errorsz2TestBreakpoint.test_breakpoint_with_passthru_errorz -E was givencCsHd|jd<td"}td|dWdn1s:0YdS)Nrrz builtins.int7rrrrrrrrtest_envar_good_path_builtins  z+TestBreakpoint.test_envar_good_path_builtincCsDd|jd<td}t|Wdn1s60YdSNzsys.exitrrrrrrtest_envar_good_path_others  z)TestBreakpoint.test_envar_good_path_othercCsDd|jd<td}t|Wdn1s60YdS)Nr4rr)rrrassert_not_calledrrrrtest_envar_good_path_noop_0$s  z*TestBreakpoint.test_envar_good_path_noop_0cCsDd|jd<td}t|Wdn1s60YdS)Nr@rrrrrrr!test_envar_good_path_empty_string+s  z0TestBreakpoint.test_envar_good_path_empty_stringc CsdD]}|j|dr||jd<|jtd}|jtdd}t|t|j d|d||j t | Wdq1s0YqdS) N) .z..z.foozfoo.z.intzint.z.foo.barz ..foo.barz/./Z nosuchbuiltinznosuchmodule.nosuchcallable)envarrrT)quietz*Ignoring unimportable $PYTHONBREAKPOINT: "r) subTestrrrrr rrUr0messagecategoryRuntimeWarningr)rrrrrrrtest_envar_unimportable2s  z&TestBreakpoint.test_envar_unimportablecCsJd|jd<td$}tt_t|Wdn1s<0YdSr)rrrr^rrrrrrr#test_envar_ignored_when_hook_is_setEs   z2TestBreakpoint.test_envar_ignored_when_hook_is_setN)r,r-r.rrrrrrrrr^rignore_environmentrrrrrrrrrrrs      rz,the pty and signal modules must be availablec@sVeZdZdZeddZddZddZdd d Zd d Z d dZ ddZ ddZ dS)PtyTestszhTests that use a pseudo terminal to guarantee stdin and stdout are terminals in the test environmentcCsdSrr)signumframerrr handle_sighupRszPtyTests.handle_sighupc CsBttj|j}z|||Wttj|Sttj|0dSr)signalSIGHUPr _run_child)rchildterminal_inputZ old_sighuprrr run_childYs  zPtyTests.run_childc Cst\}}zt\}}WnNttfyj}z2t|t||d|WYd}~n d}~00|dkrznzJt dt|t |d}||Wdn1s0YWnt Yn0Wtdn td0t|t||t |d<} g} | } | dkr0q>| | qWdn1sT0Yt| dkrt} zt|d} WntyYqYn0| sq| | qrt|| dd } |d t| | ft|tj|dd | S) Nzpty.fork() raised {}rrdrrr@i rriz9got %d lines in pipe but expected 2, child output was: %s)exitcode)rpipeptyforkOSErrorrrskipTestrcralarmr traceback print_exc_exitr3rrr&rr7rrudecoderr Z wait_process)rrrrrpidfdrwpipeZrpipelinesr2Z child_outputchunkrrrr`sT      *     .     zPtyTests._run_childNcstjrtjs|dfdd}|||d}||dddh|ddkrf|dt|d }r|d }n|tjj }| ||dS) Nzstdin and stdout must be ttyscsjr4tjtjddt_tjtjddt_tdtjoJtj|dttt |ddS)Nsurrogateescape)rerrorsreplaceztty =file) r TextIOWrapperr^rdetachryprintisattyrrrrstdio_encodingrrrs  z'PtyTests.check_input_tty..childs rz tty = Truez tty = Falsez%standard IO in should have been a ttyr$r) r^rrryrrr,rrrrU)rrrrrrZ input_resultrrrrcheck_input_ttys     zPtyTests.check_input_ttycCs|dddS)Nrsquuxrr rrrtest_input_ttyszPtyTests.test_input_ttycCs|ddddS)Npromptéquuxzutf-8rr rrrtest_input_tty_non_asciisz!PtyTests.test_input_tty_non_asciicCs|ddddS)Nrrrrr rrr'test_input_tty_non_ascii_unicode_errorssz0PtyTests.test_input_tty_non_ascii_unicode_errorscCs(dd}||d}d}|||dS)NcSsBtdtj|dtt_tdtdttj |ddS)Nzstdin.isatty():rrz captured:) rr^rrrrryrrgetvaluerrrrrs z3PtyTests.test_input_no_stdout_fileno..childsquux )zstdin.isatty(): Truezcaptured: 'prompt')rZassertSequenceEqual)rrrrrrrtest_input_no_stdout_filenos z$PtyTests.test_input_no_stdout_fileno)N) r,r-r.rrrrrrrrrrrrrrrMs @ rc@s,eZdZddZddZddZddZd S) TestSortedcCsttd}|dd}t|||t|||||t|||t|ddd|||t|||t|dd|||dS)Nr;cSs| Srrr|rrrrr"z'TestSorted.test_basic..rT)reverse)rWrrshufflerUr1rr)rrcopyrrr test_basics       zTestSorted.test_basiccCstg|ttgdWdn1s20Ytgdd|ttgdWdn1sr0YdS)N)iterabler)r1rnrpr rrrtest_bad_argumentss  (  zTestSorted.test_bad_argumentscCsvd}tttg}|D]}|t|t||qdt|}ttttttj g}|D]}|t|t||qTdS)NZ abracadabrar@) rWrr0rUr1joinrB frozensetrWfromkeys)rrr-Trrrtest_inputtypess zTestSorted.test_inputtypescCs"d}|tt|ddddS)Nz,The quick Brown fox Jumped over The lazy DogcSsdSrrrrrrrr"z.TestSorted.test_baddecorator..)splitrnrpr1)rrrrrtest_baddecoratorszTestSorted.test_baddecoratorN)r,r-r.rrrrrrrrrs  rc@seZdZddZdS) ShutdownTestcCs4d}td|dd\}}}|ddg|dS)Nafif 1: import builtins import sys class C: def __del__(self): print("before") # Check that builtins still exist len(()) print("after") c = C() # Make this module survive until builtins and sys are cleaned builtins.here = sys.modules[__name__] sys.here = sys.modules[__name__] # Create a reference loop so that this module needs to go # through a GC phase. here = sys.modules[__name__] z-cr)ZPYTHONIOENCODINGbeforeZafter)rrUr splitlines)rrrcouterrrrr test_cleanups  zShutdownTest.test_cleanupN)r,r-r.rrrrrrsrc@sLeZdZddZddZddZddZd d Zd d Zd dZ ddZ dS)TestTypecCsntddi}||jd||jd||jt||jtf||jt|}|t||||j |Gddd}td|t fdddi}||jd||jd||jt||j|t f||jt | d|j | d |j |d }||d |t||||j |||d ||d ||d dddS)Nrrc@seZdZddZdS)z!TestType.test_new_type..BcSsd|S)Nzham%drr rrrr0sz%TestType.test_new_type..B.hamN)r,r-r.rrrrrr/srrarcSsd|S)Nzspam%srr rrrr2r"z(TestType.test_new_type..rrZham42Zspam42rdlittles*)rVrUr,r.r- __bases__rr6__base__r!rr,rr/rrto_bytes)rrrrrarrr test_new_type$s2  zTestType.test_new_typecCsv|t tddiddWdn1s00Y|ttddidWdn1sh0YdS)Nrxrr5r|rW)rnrprVr rrrtest_type_nokwargsBs . zTestType.test_type_nokwargsc CsVdD]f}|j|dFt|di}||j|||j|||jtWdq1s`0Yq|ttddiWdn1s0Y|ttddiWdn1s0Y|ttddiWdn1s0Ytddi}dD]d}|j|d@||_||j|||jd||jtWdn1sx0Yq tddi}|td|_Wdn1s0Y||jd|td|_Wdn1s0Y||jd|td|_Wdn1s:0Y||jddS)N)rÄ🐍zB.A42r@rarzABuABrra) rrVrUr,r.r-rnrqrp)rrbrrarrrtest_type_nameHs: . * * , 2  & & &zTestType.test_type_namecCstddddi}||jd||jd||jt|t tddddiWdn1sj0Y||jdd|_||jd||jd|td|_Wdn1s0Y||jddS)Nrrr.zB.CBzD.E)rVrUr,r.r-rnrp)rrrrrtest_type_qualnameis . $zTestType.test_type_qualnamecCsdD]"}tddd|i}||j|q|t tddddiWdn1sX0Ytddi}||jddD]}||_||j|qdS)N)rrrxyxrNrrrxy)rrrrrrrN)rVrUrrnUnicodeEncodeError)rrrrrr test_type_docys . zTestType.test_type_doccCs|ttWdn1s&0Y|ttddWdn1sZ0Y|ttddidWdn1s0Y|ttddidWdn1s0Y|ttdgiWdn1s0Y|t"tddtiWdn1s@0Y|ttddiWdn1sx0Y|ttdtfiWdn1s0Y|t tdttfiWdn1s0YdS)Nrrrr)rnrprVr-MappingProxyTyper~rr0r rrr test_bad_argss$ $ ( , , , 2 , . zTestType.test_bad_argscCsj|t tddddiWdn1s00Y|t"tdtfddiWdn1sl0Y|t tddddiWdn1s0Y|t tddddiWdn1s0Y|t tddddiWdn1s0Y|t"tdddd d Wdn1sZ0Y|t tdddd iWdn1s0Y|t tdddd iWdn1s0YGd dd}|t"td|fddiWdn1s0Y|t"td|fddiWdn1s\0YdS)Nrrrrrr@rrr)rr)rr) __weakref__r c@s eZdZdS)z"TestType.test_bad_slots..BNrrrrrrsrrr )rnrprVrrq)rrrrrtest_bad_slotss* . 0 . . 0 2 0 0 2 zTestType.test_bad_slotscCsVtddg}|dt|}tdd|}|t|jddddgdS)N)rxr$)r)rdrxrarrd)rc OrderedDict move_to_endrWitemsrVrUr)rZodrrarrrtest_namespace_orders    zTestType.test_namespace_orderN) r,r-r.rrrrrrr rrrrrr#s! rcCsddlm}||t|S)Nr) DocTestSuite)doctestrZaddTestr)loaderZtestspatternrrrr load_testss rrg)Krrrrcr)r*rUrrrrRrrrkr^rr-rrk contextlibr functoolsrinspectr itertoolsrtextwraprrroperatorr rtr Z test.supportr r r rrrZtest.support.script_helperrZ unittest.mockrrrrrorr/r1rr~rqr0rOZtest_conv_no_signZtest_conv_signrBrFrMrPZTestCaserQrZ skipUnlessrrrrrr,mainrrrrs             gi  +"