a 5êdgÖgã@s&ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl m Z ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZzddlmZWneyÊdZYn0ddlmZmZmZmZddlmZmZddlm Z m!Z!ddl"m#Z$ddl"m%Z&dd l"m'Z'dd l(m)Z)e$j*Z+e+ ,d ¡rRe+dd …Z+e e+ƒZ+d d„Z-e$ .¡Z/dd„Z0dd„Z1d 2¡Z3Gdd„dej4ƒZ5dd„Z6dd„Z7dd„Z8ej9dd„ƒZ:Gdd„de5ƒZ;Gd d!„d!e5ƒZGd&d'„d'e=ƒZ?Gd(d)„d)e=ƒZ@Gd*d+„d+e=ƒZAGd,d-„d-e=ƒZBGd.d/„d/e=ƒZCGd0d1„d1e=ƒZDGd2d3„d3e=ƒZEGd4d5„d5eFƒZGGd6d7„d7eFƒZHd8d9„ZIGd:d;„d;ej4ƒZJGdd?„d?ej4ƒZMGd@dA„dAej4ƒZNGdBdC„dCeNƒZOGdDdE„dEeOƒZPGdFdG„dGej4ƒZQGdHdI„dIej4ƒZRGdJdK„dKej4ƒZSGdLdM„dMejTƒZUGdNdO„dOejVƒZWGdPdQ„dQej4ƒZXGdRdS„dSej4ƒZYGdTdU„dUej4ƒZZGdVdW„dWej4ƒZ[GdXdY„dYej4ƒZ\GdZd[„d[ej4ƒZ]Gd\d]„d]ƒZ^Gd^d_„d_ej4ƒZ_Gd`da„daej4ƒZ`Gdbdc„dcej4ƒZaddde„Zbecdfkr"ebƒdS)géN©Únormcase)ÚThreadPoolExecutor)Ú run_unittestÚTESTFNÚ DirsOnSysPathÚ cpython_only)ÚMISSING_C_DOCSTRINGSÚ ALWAYS_EQ)Úassert_python_okÚassert_python_failure)Úinspect_fodder)Úinspect_fodder2)Úsupport)Ú_ready_to_import)ÚcÚoéÿÿÿÿcGst|ƒf|S©Nr)ÚfilenameÚargs©rú-/usr/local/lib/python3.9/test/test_inspect.pyÚrevise7srccs„gd¢}tddt|ƒƒD]d}g}d}tt|ƒƒD]}|||>@r2| ||¡q2dd |¡d}i}t|||ƒ|dVqdS) z— Yields a whole bunch of functions with only keyword-only parameters, where those parameters are always in lexicographically sorted order. )ÚaÚbarrZdeltaZephraimZmagicalZyoyoÚzééz def foo(*, z, z): passÚfooN)ÚrangeÚlenÚappendÚjoinÚexec)Ú parametersÚiÚpÚbitÚjZfn_textZsymbolsrrrÚ5signatures_with_lexicographic_keyword_only_parameters=s  r*cCsdSrr)ÚthrowÚoutZtheZbabyZwith_Zthe_Z bathwaterrrrÚ#unsorted_keyword_only_parameters_fnOsr-z'throw out the baby with_ the_ bathwaterc@sTeZdZeejejejejej ej ej ej ej ejejejejejgƒZdd„ZdS)Ú IsTestBasecCs€t|ƒ}| ||ƒd|j|f¡|jt|gƒD]H}|tjksT|tjksT|tjkr`|tj kr`q2|  ||ƒd|j|f¡q2dS)Nz%s(%s)z not %s(%s)) ÚevalÚ assertTrueÚ__name__Ú predicatesÚsetÚinspectÚisgeneratorfunctionÚisasyncgenfunctionÚiscoroutinefunctionÚ isfunctionÚ assertFalse)ÚselfÚ predicateÚexpÚobjÚotherrrrÚistest]s ÿþýzIsTestBase.istestN)r1Ú __module__Ú __qualname__r3r4Ú isbuiltinÚisclassÚiscodeÚisframer8ÚismethodÚismoduleÚ istracebackÚ isgeneratorr5Ú iscoroutiner7Ú isasyncgenr6r2r?rrrrr.Us ûr.ccstdƒD] }|VqdS©Nr©r ©r:r&rrrÚgenerator_function_exampleis rOcCs"tdƒ2z3dHW}|Vq6dSrLrMrNrrrÚ async_generator_function_examplemsrPcÃsdS©NÚspamr©r:rrrÚcoroutine_function_exampleqsrTccs dVdSrQrrSrrrÚgen_coroutine_function_exampletsrUc@sLeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dS)ÚTestPredicatesc Cs¾| tjd¡| tjd¡| tjd¡z|z ddWnft ¡da| tjd¡| tjd¡t t d ƒr‚| tj d ¡n|  t  t tjƒj¡¡Yn0Wdanda0| tjd ¡| tjd ¡| tjd ¡| tjd¡| tjd¡| tjd¡| tjd¡| tjd¡| tjd¡| tjd¡t ¡6t d¡| tjd¡| tjd¡Wdƒn1s€0Yt t dƒr¦| tjd¡n|  t tjj ¡¡dS)Nzsys.exitz [].appendzmod.spam.__code__rrrz tb.tb_frameÚtbÚGetSetDescriptorTypeztype(tb.tb_frame).f_localszmod.spamzmod.StupidGit.abusez git.arguezmod.custom_methodÚmodz'collections.defaultdict.default_factoryz(x for x in range(2))rOz#async_generator_function_example(1)rPÚignorezcoroutine_function_example(1)rTÚMemberDescriptorTypezdatetime.timedelta.days)!r?r4rBrDÚsysÚexc_inforWrErHÚhasattrÚtypesZisgetsetdescriptorr9ÚtypeÚtb_frameÚf_localsr8rFrGÚisdatadescriptorrIr5rKr6ÚwarningsÚcatch_warningsÚ simplefilterrJr7ZismemberdescriptorÚdatetimeZ timedeltaZdaysrSrrrÚtest_excluding_predicates{sH   ÿ  ÿÿ  . z(TestPredicates.test_excluding_predicatesc CsXtdƒ}tdƒ}tdƒ}| t t¡¡| t t t t¡¡¡¡| t |¡¡|  t  t¡¡|  t  t t t¡¡¡¡|  t  |¡¡|  t t¡¡|  t t t t¡¡¡¡|  t |¡¡| t  t¡¡| t  t t t¡¡¡¡| t  |¡¡|  t  t¡¡|  t  t t t¡¡¡¡|  t  |¡¡| ¡| ¡dS©Nr)rPrUrTr9r4r7Ú functoolsÚpartialrJr0r5rIr6rKÚclose)r:Zasync_gen_coroÚgen_coroÚcororrrÚtest_iscoroutine¥svÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿzTestPredicates.test_iscoroutinecCs¼dd„}| t |ƒ¡¡tdƒ}tdƒ}| t |¡¡| t |¡¡Gdd„dƒ}| t |ƒ¡¡| t |¡¡Gdd„dƒ}|ƒ}dd „|_| t |¡¡| ¡| ¡dS) Ncss dVdSrrrrrrÚgenÕóz,TestPredicates.test_isawaitable..genrc@seZdZdd„ZdS)z/TestPredicates.test_isawaitable..FuturecSsdSrrrrrrÚ __await__ßsz9TestPredicates.test_isawaitable..Future.__await__N)r1r@rArrrrrrÚFutureÞsrsc@s eZdZdS)z2TestPredicates.test_isawaitable..NotFutureN©r1r@rArrrrÚ NotFutureärqrucSsdSrrrrrrÚærqz1TestPredicates.test_isawaitable..)r9r4Z isawaitablerTrUr0rrrl)r:rprnrmrsruZnot_futrrrÚtest_isawaitableÔs zTestPredicates.test_isawaitablecCs(| t tj¡¡| t gj¡¡dSr)r0r4Z isroutinerYrRÚcountrSrrrÚtest_isroutineëszTestPredicates.test_isroutinecCsD| tjd¡| t t¡¡Gdd„dtƒ}| t |ƒ¡¡dS)Nz mod.StupidGitc@seZdZdd„ZdS)z2TestPredicates.test_isclass..CustomGetattrcSsdSrr)r:ÚattrrrrÚ __getattr__ôsz>TestPredicates.test_isclass..CustomGetattr.__getattr__N)r1r@rAr{rrrrÚ CustomGetattrósr|)r?r4rCr0ÚlistÚobjectr9)r:r|rrrÚ test_isclassïszTestPredicates.test_isclasscCsFGdd„dtƒ}|ƒ}d|_tt |¡ƒ}| d|¡| d|¡dS)Nc@seZdZdZdS)z/TestPredicates.test_get_slot_members..C©rÚbN©r1r@rAÚ __slots__rrrrÚCùsr„é*rr)r~rÚdictr4Ú getmembersÚassertInÚ assertNotIn)r:r„ÚxÚmembersrrrÚtest_get_slot_membersøs  z$TestPredicates.test_get_slot_memberscsddlm}m‰G‡fdd„d|d}Gdd„d|ƒ}|ƒ}| t |¡¡| t |¡¡| t |¡¡| t t¡¡| t d¡¡dS) Nr©ÚABCMetaÚabstractmethodcseZdZ”dd„ƒZdS)z.AbstractClassExamplecSsdSrrrSrrrrsz@TestPredicates.test_isabstract..AbstractClassExample.fooN©r1r@rArr©rrrÚAbstractClassExamplesr’©Ú metaclassc@seZdZdd„ZdS)z4TestPredicates.test_isabstract..ClassExamplecSsdSrrrSrrrr sz8TestPredicates.test_isabstract..ClassExample.fooNrrrrrÚ ClassExample sr•é)ÚabcrŽrr0r4Ú isabstractr9Úint)r:rŽr’r•rrr‘rÚtest_isabstractszTestPredicates.test_isabstractcsªddlm}m‰g‰G‡fdd„d|d}G‡fdd„d|ƒ}Gdd „d |ƒ}| ˆd d g¡ˆ ¡Gd d „d |ƒ}Gdd„d|ƒ}Gdd„d|ƒ}| ˆgd¢¡dS)NrrcseZdZ‡fdd„ZdS)zLTestPredicates.test_isabstract_during_init_subclass..AbstractCheckercsˆ t |¡¡dSr)r"r4r˜©Úcls©Úisabstract_checksrrÚ__init_subclass__sz^TestPredicates.test_isabstract_during_init_subclass..AbstractChecker.__init_subclass__N)r1r@rArŸrrrrÚAbstractCheckersr r“cseZdZ”dd„ƒZdS)zQTestPredicates.test_isabstract_during_init_subclass..AbstractClassExamplecSsdSrrrSrrrrszUTestPredicates.test_isabstract_during_init_subclass..AbstractClassExample.fooNrrr‘rrr’sr’c@seZdZdd„ZdS)zITestPredicates.test_isabstract_during_init_subclass..ClassExamplecSsdSrrrSrrrr"szMTestPredicates.test_isabstract_during_init_subclass..ClassExample.fooNrrrrrr•!sr•TFc@s eZdZdS)zJTestPredicates.test_isabstract_during_init_subclass..AbstractChildNrtrrrrÚ AbstractChild'sr¡c@s eZdZdS)zOTestPredicates.test_isabstract_during_init_subclass..AbstractGrandchildNrtrrrrÚAbstractGrandchild)sr¢c@s eZdZdS)zOTestPredicates.test_isabstract_during_init_subclass..ConcreteGrandchildNrtrrrrÚConcreteGrandchild+sr£)TTF)r—rŽrÚ assertEqualÚclear)r:rŽr r’r•r¡r¢r£r)rržrÚ$test_isabstract_during_init_subclasssz3TestPredicates.test_isabstract_during_init_subclassN) r1r@rArhrorwryrrŒršr¦rrrrrVys*/  rVc@s<eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd S)ÚTestInterpreterStackcOs,tjj|g|¢Ri|¤Žt ddd¡dS)Nééé )ÚunittestÚTestCaseÚ__init__ÚgitÚabuse©r:rÚkwargsrrrr­1szTestInterpreterStack.__init__cCs | tjd¡| tjd¡dS)Nz git.ex[2]zmod.fr)r?r4rHrErSrrrÚtest_abuse_done6sz$TestInterpreterStack.test_abuse_donecCs&| ttjƒdk¡| ttjddd…Žtdddgdf¡| ttjddd…Žtddd gdf¡| ttjd dd…Žtd d d gdf¡| ttjddd…Žtdddgdf¡tjd}| |jtj ¡| |j d¡| |j tj ¡| |j d¡| d|jd¡| |jd¡dS)Nr–rréÚeggsz st = inspect.stack() rªrRú eggs(b + d, c + f) ré+Úargueú spam(a, b, c) éé'r¯z self.argue(a, b, c) zinspect.stack())r0r!rYÚstr¤rÚmodfileÚassertIsÚframeÚfrÚlinenorÚ__file__ÚfunctionrˆÚ code_contextÚindex)r:ÚrecordrrrÚ test_stack:s(ÿÿÿÿ zTestInterpreterStack.test_stackcCs”| ttjƒd¡| ttjddd…Žtdddgdf¡| ttjddd…Žtddd gdf¡| ttjd dd…Žtd d d gdf¡dS)Nr¹rrr¶r·r¸rªrRrµrér´z q = y / 0 )r¤r!r®Útrrr¼rSrrrÚ test_traceMsÿÿÿzTestInterpreterStack.test_tracecCslt tj¡\}}}}| |ddg¡| |d¡| |d¡| |ddddœ¡| t ||||¡d¡dS)NrŠÚyé é)rŠr'rÊz (x=11, y=14))r4Ú getargvaluesrYr¿r¤Úformatargvalues©r:rÚvarargsÚvarkwÚlocalsrrrÚ test_frameVs  ÿzTestInterpreterStack.test_framecCsZt tjj¡\}}}}| |gd¢¡| |d¡| |d¡| t ||||¡d¡dS)N©rrrÚdÚeÚfÚgÚhz-(a=7, b=8, c=9, d=3, e=4, f=5, *g=(), **h={}))r4rÍrYr¿Úf_backr¤rÎrÏrrrÚtest_previous_frame_s  ÿz(TestInterpreterStack.test_previous_frameN) r1r@rAr­r²rÆrÉrÓrÛrrrrr§0s   r§c@s(eZdZdZdd„Zdd„Zdd„ZdS)Ú GetSourceBaseNcCs>tt |j¡ƒ}| ¡|_Wdƒn1s00YdSr)Úopenr4Ú getsourcefileÚ fodderModuleÚreadÚsource)r:ÚfprrrÚsetUpkszGetSourceBase.setUpcCs.|j d¡}d ||d|…¡|r(dndS)NÚ rÚ)ráÚsplitr#)r:ÚtopÚbottomÚlinesrrrÚ sourcerangeos zGetSourceBase.sourcerangecCs| t |¡| ||¡¡dSr)r¤r4Ú getsourcerê)r:r=rçrèrrrÚassertSourceEqualss  ÿzGetSourceBase.assertSourceEqual)r1r@rArßrãrêrìrrrrrÜgsrÜc@seZdZdZdddœZdS)ÚSlotUserzDocstrings for __slots__úmeasured in kilowattsúmeasured in kilometers)ÚpowerÚdistanceN)r1r@rAÚ__doc__rƒrrrrríwsÿríc@säeZdZeZdd„Zdd„Ze e j j dkd¡dd„ƒZ e e j j dkd¡d d „ƒZ e ed ¡d d „ƒZdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Zd(d)„Zd*d+„Zd,S)-ÚTestRetrievingSourceCodec Cs.t ttj¡}| |dtjfdtjfdtjfdtjfdtjfdtj fg¡t  dd„|Dƒ¡}| |t d ftjt fftjtjtjffgtjt fftjtjfftjtjtjffggtj t ffgg¡t  d d„|Dƒd ¡}| |t d ftjt fftjt fftjtjfftjtjtjffggtj t ffgg¡dS) NÚ FesteringGobÚMalodorousPervertÚParrotDroppingsÚ StupidGitZTitÚ WhichCommentscSsg|] }|d‘qS©rr©Ú.0rœrrrÚ ‰rqz.rcSsg|] }|d‘qSrùrrúrrrrü™rqT) r4r‡rYrCr¤rôrõrör÷røZ getclasstreer~)r:ÚclassesZtreerrrÚtest_getclassessRûÿ ÿ  ÿÿ öÿÿ   ÿÿ ùÿÿz(TestRetrievingSourceCode.test_getclassescCs6t ttj¡}| |dtjfdtjfdtjfg¡dS)Nr´ÚlobbestrR)r4r‡rYr8r¤r´rÿrR)r:Z functionsrrrÚtest_getfunctions§s þz*TestRetrievingSourceCode.test_getfunctionsrz)Docstrings are omitted with -O2 and abovecCsf| t t¡d¡| t tj¡d¡| t tj¡d¡| t tj¡d¡| t tj ¡d¡dS)NzA module docstring.úA longer, indented docstring.ú$Another docstring containing tabsrîrï) r¤r4ÚgetdocrYr÷r®r¯rírðrñrSrrrÚ test_getdoc­sÿÿÿÿz$TestRetrievingSourceCode.test_getdoccCs\| t tj¡d¡| t tjj¡d¡| t t ¡j¡d¡| t tjj¡d¡dS)NrrzThe automatic gainsaying.)r¤r4rrYrôr¯Z contradictionrSrrrÚtest_getdoc_inheritedºsÿÿÿÿz.TestRetrievingSourceCode.test_getdoc_inheritedztest requires docstringscCsvtj}| |tƒtj¡| |tjƒtjj¡| |tƒjƒtjj¡| |tjƒtjj¡| |tjƒtjj¡dSr)r4Z_finddocr¤r™ròÚto_bytesÚ from_bytesÚreal)r:ZfinddocrrrÚ test_finddocÆs z%TestRetrievingSourceCode.test_finddoccCs| t d¡d¡dS)NzAn indented docstring.zAn indented docstring.)r¤r4ZcleandocrSrrrÚ test_cleandocÏs ÿz&TestRetrievingSourceCode.test_cleandoccCsj| t t¡d¡| t tj¡d¡| t tj¡d¡tdddƒ}| t |¡¡| t t ¡¡dS)Nú # line 1 z # line 20 z # line 159 úx=1z_non_existing_filename.pyr$) r¤r4Z getcommentsrYr÷Úmod2Úcls160ÚcompileÚ assertIsNoner})r:ÚcorrrÚtest_getcommentsÓs  z)TestRetrievingSourceCode.test_getcommentscCs‚| t t¡t¡| t tj¡t¡| t tjj¡t¡| t tjj¡t¡| t t¡tjd¡| t dt ¡t¡dS)NÚbuiltins) r¤r4Ú getmodulerYr÷r¯Ústrr\Úmodulesr¼rSrrrÚtest_getmoduleÝs z'TestRetrievingSourceCode.test_getmodulecCs8t |jjd¡}| |jdd¡| |jdd¡dS)Né2rr rz'A module docstring.' )r4Z getframeinforßr¿r¤rÃ)r:Z frame_inforrrÚ test_getframeinfo_get_first_lineësz9TestRetrievingSourceCode.test_getframeinfo_get_first_linecCs4| tjdd¡| tjdd¡| tjdd¡dS)Nérºéé3éKéL)rìr®r¯rYr÷rÿrSrrrÚtest_getsourceðsz'TestRetrievingSourceCode.test_getsourcecCsž| tt tj¡ƒt¡| tt tj¡ƒt¡d}t d|dƒ}| t |¡d¡ddd|j ft j |j <z$| tt |¡ƒ|¡Wt j |j =n t j |j =0dS)Nz2_non_existing_filename_used_for_sourcefile_test.pyr r$rÚNone) r¤rr4rÞrYrRr¼r®r¯rÚ co_filenameÚ linecacheÚcache)r:ÚfnrrrrÚtest_getsourcefileõs z+TestRetrievingSourceCode.test_getsourcefilecCs| t tj¡tj¡dSr)r¤r4ÚgetfilerYr÷rÁrSrrrÚ test_getfilesz%TestRetrievingSourceCode.test_getfilecCsN| t¡}t t¡Wdƒn1s*0Y| t|jƒ d¡¡dS)Nz.CMcSst‚dSr©ÚAttributeErrorr›rrrr@szQTestRetrievingSourceCode.test_getfile_class_without_module..CM.__module__N)r1r@rAÚpropertyrrrrÚCMsr4c@s eZdZdS)zETestRetrievingSourceCode.test_getfile_class_without_module..CNrtrrrrr„sr„r“)r`r(r)r4r&)r:r4r„rrrÚ!test_getfile_class_without_modules z:TestRetrievingSourceCode.test_getfile_class_without_modulecCsLGdd„dƒ}|ƒ}| t¡t |¡Wdƒn1s>0YdS)Nc@seZdZdd„ZdS)zDTestRetrievingSourceCode.test_getfile_broken_repr..ErrorReprcSs tdƒ‚dS)NZxyz)Ú ExceptionrSrrrÚ__repr__"szMTestRetrievingSourceCode.test_getfile_broken_repr..ErrorRepr.__repr__N)r1r@rAr7rrrrÚ ErrorRepr!sr8)r(r)r4r&)r:r8ZerrrrÚtest_getfile_broken_repr s z1TestRetrievingSourceCode.test_getfile_broken_reprcCsnddlm}d}||ƒ}tj|<d|_d|_td|jƒ| t   |j j ¡d¡tj|=t   tddd ƒ¡dS) Nr)Ú ModuleTypeZ__inspect_dummyúÚdummyz def x(): passza=10råÚsingle)r_r:r\rrÁÚ __loader__r$Ú__dict__r¤r4rÞrŠÚ__code__rr)r:r:ÚnameÚmrrrÚtest_getmodule_recursion(s  z1TestRetrievingSourceCode.test_getmodule_recursioncsbd\‰‰tj‰d‡‡‡fdd„ }|t_z.i}ttˆˆdƒ|ƒt |d¡Wˆt_nˆt_0dS)z4doctest monkeypatches linecache to enable inspection)zzdef x(): pass Ncs"|ˆkrˆjddSˆ||ƒSdS)NT)Úkeepends)Ú splitlines)rÚmodule_globals©r$ÚgetlinesrárrÚmonkey7s zHTestRetrievingSourceCode.test_proceed_with_fake_filename..monkeyr=rŠ)N)r"rHr$rr4rë)r:rIÚnsrrGrÚtest_proceed_with_fake_filename3sz8TestRetrievingSourceCode.test_proceed_with_fake_filenamecCs| tjjdd¡dS)Né rÇ)rìrYr´r@rSrrrÚtest_getsource_on_code_objectDsz6TestRetrievingSourceCode.test_getsource_on_code_objectN)r1r@rArYrßrþrr«ÚskipIfr\ÚflagsÚoptimizerrr r r rrrrr%r'r-r.r0r5r9rCrKrMrrrrró|s8(ÿ ÿ      róc@s eZdZeZdd„Zdd„ZdS)Ú!TestGettingSourceOfToplevelFramescCsd|_| tjdd¡dSri)ZmaxDiffrìrYÚ currentframerSrrrÚtest_range_toplevel_frameJsz;TestGettingSourceOfToplevelFrames.test_range_toplevel_framecCs| tjdd¡dSri)rìrYrWrSrrrÚ#test_range_traceback_toplevel_frameNszETestGettingSourceOfToplevelFrames.test_range_traceback_toplevel_frameN)r1r@rArYrßrSrTrrrrrQGsrQc@s0eZdZeZdd„Zdd„Zdd„Zdd„Zd S) ÚTestDecoratorscCs| tjdd¡dS)NrÌé)rìr ÚwrappedrSrrrÚtest_wrapped_decoratorTsz%TestDecorators.test_wrapped_decoratorcCs| tjdd¡dS)Nrªé )rìr ZgonerSrrrÚtest_replacing_decoratorWsz'TestDecorators.test_replacing_decoratorcCs| tjdd¡dS)Né‚é„)rìr rrSrrrÚtest_getsource_unwrapZsz$TestDecorators.test_getsource_unwrapcCs| tjdd¡dS)Néqés)rìr Zfunc114rSrrrÚtest_decorator_with_lambda]sz)TestDecorators.test_decorator_with_lambdaN) r1r@rAr rßrXrZr]r`rrrrrUQs rUc@sPeZdZeZdd„Zdd„Zdd„Zdd„Zd d „Z d d „Z d d„Z dd„Z dS)Ú TestOnelinerscCs| tjdd¡dS)Né)rìr ZollrSrrrÚtest_oneline_lambdabsz!TestOneliners.test_oneline_lambdacCs| tjdd¡dS)Néé)rìr ZtllrSrrrÚtest_threeline_lambdafsz#TestOneliners.test_threeline_lambdacCs| tjdd¡dS)Né!é")rìr ZtllirSrrrÚtest_twoline_indented_lambdaksz*TestOneliners.test_twoline_indented_lambdacCs| tjdd¡dS)Né%)rìr Z onelinefuncrSrrrÚtest_onelinefuncpszTestOneliners.test_onelinefunccCs| tjdd¡dS)Né(é))rìr ZmanyargsrSrrrÚ test_manyargstszTestOneliners.test_manyargscCs| tjdd¡dS)Né,é-)rìr Z twolinefuncrSrrrÚtest_twolinefunczszTestOneliners.test_twolinefunccCs| tjddd¡dS)Nré1)rìr rrSrrrÚtest_lambda_in_list€sz!TestOneliners.test_lambda_in_listcCs| tjdd¡dS)Né7)rìr Z anonymousrSrrrÚtest_anonymous…szTestOneliners.test_anonymousN) r1r@rAr rßrcrfrirkrnrqrsrurrrrra`srac@s(eZdZeZdd„Zdd„Zdd„ZdS)ÚTestBlockCommentscCs| tjdd¡dS)Né`ér)rìrYrørSrrrÚtest_toplevel_classsz%TestBlockComments.test_toplevel_classcCs| tjjdd¡dS)Nécéh)rìrYrør×rSrrrÚtest_class_methodsz#TestBlockComments.test_class_methodcCs| tjjdd¡dS)Némép)rìrYrøZasyncfrSrrrÚtest_class_async_method“sz)TestBlockComments.test_class_async_methodN)r1r@rArYrßryr|rrrrrrvŠsrvc@sàeZdZeZdd„Zdd„Zdd„Zdd„Zd d „Z d d „Z d d„Z e   eedƒ p^ej d¡d¡dd„ƒZdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Zd(d)„Zd*d+„Zd,d-„Zd.d/„Z d0S)1ÚTestBuggyCasescCs| tjdd¡dS)Né:é;)rìr Z with_commentrSrrrÚtest_with_comment™sz TestBuggyCases.test_with_commentcCs| tjddd¡dS)Nré?é@)rìr Z multiline_sigrSrrrÚtest_multiline_sigœsz!TestBuggyCases.test_multiline_sigcCs| t ¡jdd¡dS)NéGéH)rìr Zfunc69Zfunc71rSrrrÚtest_nested_classŸsz TestBuggyCases.test_nested_classcCs| tjdd¡dS)NéM)rìr Zfunc77rSrrrÚ#test_one_liner_followed_by_non_name¢sz2TestBuggyCases.test_one_liner_followed_by_non_namecCs| tjjdd¡dS)NéS)rìr Zcls82Zfunc83rSrrrÚtest_one_liner_dedent_non_name¥sz-TestBuggyCases.test_one_liner_dedent_non_namecCs| tjdd¡dS)NéXéZ)rìr Zfunc88rSrrrÚ&test_with_comment_instead_of_docstring¨sz5TestBuggyCases.test_with_comment_instead_of_docstringcCs| tjdd¡dS)Né_éa)rìr Zmethod_in_dynamic_classrSrrrÚtest_method_in_dynamic_class«sz+TestBuggyCases.test_method_in_dynamic_classrÁz.pyz,unicodedata is not an external binary modulecCs$| ttjt¡| ttjt¡dSr)r(ÚOSErrorr4rëÚ unicodedataÚ findsourcerSrrrÚtest_findsource_binary°sz%TestBuggyCases.test_findsource_binarycCs˜dg}t|dddƒ}| ttj|¡| ttj|¡dd||jftj|j<z:|  t |¡|df¡|  t |¡|d¡Wtj|j=n tj|j=0dS)Nr rZ_dynamically_created_filer$r) rr(r”r4r–rër!r"r#r¤)r:rérrrrÚ!test_findsource_code_in_linecache·sz0TestBuggyCases.test_findsource_code_in_linecachecCs:dD]0}td|dƒ}| ttj|¡| ttj|¡qdS)N)rår;r r$)rr(ÚIOErrorr4r–rë)r:ZfnamerrrrÚ test_findsource_without_filenameÃs z/TestBuggyCases.test_findsource_without_filenamecCs˜tt t¡ƒ}d|d}t|tjdƒ}ii}}t|||ƒ|d}| |jj dd|¡|  t d¡t  |¡Wdƒn1sŠ0YdS)Nz z def f(): passr$r×rrzlineno is out of bounds) r!r4rërYrrÁr/r¤r@Úco_firstlinenoÚassertRaisesRegexr™r–)r:Zmod_lenÚsrcrrØÚlÚfuncrrrÚ)test_findsource_with_out_of_bounds_linenoÉs   z8TestBuggyCases.test_findsource_with_out_of_bounds_linenocCs| tjjdd¡dS)Névéw)rìr ZClassWithMethodÚmethodrSrrrÚtest_getsource_on_methodÔsz'TestBuggyCases.test_getsource_on_methodcCs| tjjdd¡dS)Néˆé‹)rìr Zcls135Zfunc136rSrrrÚtest_nested_func×szTestBuggyCases.test_nested_funccCs| tjdd¡dS)Né•é˜)rìr Zcls149rSrrrÚ4test_class_definition_in_multiline_string_definitionÚszCTestBuggyCases.test_class_definition_in_multiline_string_definitioncCs| tjdd¡dS)Né é£)rìr rrSrrrÚ*test_class_definition_in_multiline_commentÝsz9TestBuggyCases.test_class_definition_in_multiline_commentcCs| tjjdd¡dS)Né¯é°)rìr Zcls173Zcls175rSrrrÚ,test_nested_class_definition_indented_stringàsz;TestBuggyCases.test_nested_class_definition_indented_stringcCs&| tjdd¡| tjjdd¡dS)Né·é¼é¹)rìr Zcls183Zcls185rSrrrÚtest_nested_class_definitionãsz+TestBuggyCases.test_nested_class_definitioncCs&| tjdd¡| tjjdd¡dS)NéÂéÉéÆ)rìr Zcls196Zcls200rSrrrÚtest_class_decoratorçsz#TestBuggyCases.test_class_decoratorcCs&| tjdd¡| tjjdd¡dS)Néîéðéï)rìr Zcls238Zcls239rSrrrÚtest_class_inside_conditionalësz,TestBuggyCases.test_class_inside_conditionalcCs`| tjdd¡| tjjdd¡| tjjjdd¡| tjjdd¡| tjjjdd¡dS)NéËéÑéÌéÎéÍéÏéÐ)rìr Zcls203Zcls204Zcls205Zcls207rSrrrÚtest_multiple_children_classesïs z-TestBuggyCases.test_multiple_children_classescCs<| t ¡dd¡| tjdd¡| t ¡ ¡dd¡dS)NéÕéÖéÚéÞéÜéÝ)rìr Zfunc212Zcls213Zfunc219rSrrrÚ,test_nested_class_definition_inside_functionösz;TestBuggyCases.test_nested_class_definition_inside_functioncCs^ddl}| |jd¡| | t ¡¡dd¡| tjdd¡| | t ¡ ¡¡dd¡dS)Nréâéãéçéëéééê) ÚasyncioZ addCleanupZset_event_loop_policyrìÚrunr Zfunc225Zcls226Zfunc232)r:rÒrrrÚ2test_nested_class_definition_inside_async_functionûs zATestBuggyCases.test_nested_class_definition_inside_async_functionN)!r1r@rAr rßrƒr†r‰r‹rrr“r«rNr^r•rÁÚendswithr—r˜ršr r¤r§rªr­r°r´r¸r¼rÄrËrÔrrrrr€–s6 þ   r€cs,eZdZ‡fdd„Zdd„Zdd„Z‡ZS)Ú TestNoEOLcs¢td|_t |j¡ttj |jdtj¡dƒ}| d¡Wdƒn1sR0Yt |jƒddl }Wdƒn1s„0Y||_ t ƒ  ¡dS)NZ_dirzinspect_fodder3%spyÚwzclass X: pass # No EOLr)rÚtempdirÚosÚmkdirrÝÚpathr#ÚextsepÚwriterZinspect_fodder3rßÚsuperrã)r:r×Zmod3©Ú __class__rrrãs   ÿÿ( &zTestNoEOL.setUpcCst |j¡dSr)ÚshutilÚrmtreerØrSrrrÚtearDownszTestNoEOL.tearDowncCs| |jjdd¡dS)Nrr)rìrßÚXrSrrrÚ test_classszTestNoEOL.test_class)r1r@rArãrãråÚ __classcell__rrrßrrÖs rÖc@s(eZdZdZdd„Zdd„Zdd„ZdS) Ú_BrokenDataDescriptorz2 A broken data descriptor. See bug #1785. cGs tdƒ‚dS©Nzbroken data descriptorr1©rrrrÚ__get__sz_BrokenDataDescriptor.__get__cGst‚dSr)Ú RuntimeErrorrérrrÚ__set__sz_BrokenDataDescriptor.__set__cGs tdƒ‚dSrèr1rérrrr{sz!_BrokenDataDescriptor.__getattr__N)r1r@rAròrêrìr{rrrrrçsrçc@s eZdZdZdd„Zdd„ZdS)Ú_BrokenMethodDescriptorz4 A broken method descriptor. See bug #1785. cGs tdƒ‚dS©Nzbroken method descriptorr1rérrrrê'sz_BrokenMethodDescriptor.__get__cGs tdƒ‚dSrîr1rérrrr{*sz#_BrokenMethodDescriptor.__getattr__N)r1r@rAròrêr{rrrrrí#srícCsdd„t |¡DƒS)NcSsg|]}|dd…‘qS©Nr¹r)rûÚtrrrrü0rqz!attrs_wo_objs..)r4Úclassify_class_attrsr›rrrÚ attrs_wo_objs/sròc@seZdZdd„Zd5dd„Zdddggdidfdd„Zdd „Zd d „Zd d „Zdd„Z dd„Z e   e d¡dd„ƒZee   e d¡dd„ƒƒZee   e d¡dd„ƒƒZdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zd1d2„Zd3d4„ZdS)6ÚTestClassesAndFunctionscCsjGdd„dtƒ}Gdd„d|ƒ}Gdd„d|ƒ}Gdd„d||ƒ}||||tf}t |¡}| ||¡dS) Nc@s eZdZdS)z4TestClassesAndFunctions.test_newstyle_mro..ANrtrrrrÚA6rqrôc@s eZdZdS)z4TestClassesAndFunctions.test_newstyle_mro..BNrtrrrrÚB7rqrõc@s eZdZdS)z4TestClassesAndFunctions.test_newstyle_mro..CNrtrrrrr„8rqr„c@s eZdZdS)z4TestClassesAndFunctions.test_newstyle_mro..DNrtrrrrÚD9rqrö)r~r4Zgetmror¤)r:rôrõr„röÚexpectedZgotrrrÚtest_newstyle_mro4s z)TestClassesAndFunctions.test_newstyle_mroNc Csº| t¡"t |¡\}}} } Wdƒn1s20Y| ||¡| ||¡| | |¡| | |¡|dur¶| t¡(| t ||| | ¡|¡Wdƒn1s¬0YdSr)Ú assertWarnsÚDeprecationWarningr4Z getargspecr¤Ú formatargspec) r:ÚroutineÚargs_eÚ varargs_eÚvarkw_eÚ defaults_eÚ formattedrrÐrÑÚdefaultsrrrÚassertArgSpecEquals?s 0     ÿz+TestClassesAndFunctions.assertArgSpecEqualsc  CsÀt |¡\} } } }}}}| | |¡| | |¡| | |¡| ||¡| ||¡| ||¡| || ¡| dur¼| t¡.| t | | | ||||¡| ¡Wdƒn1s²0YdSr)r4Úgetfullargspecr¤rùrúrû)r:rürýrþrÿrZ posonlyargs_eÚ kwonlyargs_eÚkwonlydefaults_eÚann_errrÐrÑrÚ kwonlyargsZkwonlydefaultsÚannrrrÚassertFullArgSpecEqualsLs ÿ        ÿþz/TestClassesAndFunctions.assertFullArgSpecEqualscCsp|jtjddgdd| tjgd¢dddd ¡| t|jtjg¡| t|jtjg¡| t|jtj g¡dS) NrŠrÊú(x, y)©rrÔrØrÙ)r¹ér–z!(a, b, c, d=3, e=4, f=5, *g, **h)) rrYr´rRr(Ú ValueErrorr Ú keywordedÚ annotatedÚkeyword_only_argrSrrrÚtest_getargspec`sý ÿ ÿ ÿz'TestClassesAndFunctions.test_getargspeccCs´|jtjgddgddidd|jtjdgdtidd|jtjgdgd d |jtjgd ¢d d gdd |jtjgd ¢ddd d gdd|jtjgd ¢dd d gdddœdddS)NÚarg1Úarg2rz(*arg1, arg2=1))rþrrrz (arg1: list))rrÚargz(*, arg))rr©rrrrÕrÖr×z(a, b, c, d, *, e, f)rr±z#(a, b, c, d, *args, e, f, **kwargs))rþrÿrr©rrr¹r r–)rÖr×z(a, b=1, c=2, d=3, *, e=4, f=5))rrrr) r r rrr}rZ all_markersZ all_markers_with_args_and_kwargsZall_markers_with_defaultsrSrrrÚtest_getfullargspecqs< ý þ þþûüz+TestClassesAndFunctions.test_getfullargspeccsÖt tj¡dd„ƒ}ˆj|ddgddˆj|ddgddˆjt |¡ddgdd‡fdd„}Gd d „d ƒ}||ƒƒ||jƒ||ƒjƒ||jƒ||ƒjƒGd d „d ƒ}||ƒGd d„dƒ}||ƒdS)NcSsdSrr©rŠrÊrrrÚham‘szETestClassesAndFunctions.test_argspec_api_ignores_wrapped..hamrŠrÊr r csˆj|gd¢dddS)N©r:rŠrÊz (self, x, y)r )r©r×rSrrÚ check_methodšs ÿzNTestClassesAndFunctions.test_argspec_api_ignores_wrapped..check_methodc@s>eZdZe ej¡dd„ƒZe e¡Z e ej¡dd„ƒZ dS)zCTestClassesAndFunctions.test_argspec_api_ignores_wrapped..CcSsdSrrrrrrržszGTestClassesAndFunctions.test_argspec_api_ignores_wrapped..C.hamcSsdSrrrrrrÚ__call__¢szLTestClassesAndFunctions.test_argspec_api_ignores_wrapped..C.__call__N) r1r@rArjÚwrapsrYrRrÚ partialmethodÚphamrrrrrr„s     r„c@s eZdZe ej¡dd„ƒZdS)zGTestClassesAndFunctions.test_argspec_api_ignores_wrapped..C_newcSsdSrrrrrrÚ__new__¬szOTestClassesAndFunctions.test_argspec_api_ignores_wrapped..C_new.__new__N)r1r@rArjrrYrRr"rrrrÚC_new«s r#c@s eZdZe ej¡dd„ƒZdS)zHTestClassesAndFunctions.test_argspec_api_ignores_wrapped..C_initcSsdSrrrrrrr­²szQTestClassesAndFunctions.test_argspec_api_ignores_wrapped..C_init.__init__N)r1r@rArjrrYrRr­rrrrÚC_init±s r$) rjrrYrRrr rkrr!)r:rrr„r#r$rrSrÚ test_argspec_api_ignores_wrappeds$   ÿ      z8TestClassesAndFunctions.test_argspec_api_ignores_wrappedcCs>dd„}t dtjj¡}tj|fd|_|j|dgdddS)NcSsdSrrrrrrÚtest¸szHTestClassesAndFunctions.test_getfullargspec_signature_attr..testrR©r%ú(spam)r )r4Ú ParameterÚPOSITIONAL_ONLYÚ SignatureÚ __signature__r )r:r&Z spam_paramrrrÚ"test_getfullargspec_signature_attr·sz:TestClassesAndFunctions.test_getfullargspec_signature_attrcCsPdddœdd„}t |¡}| |j|j¡dd„}t |¡}| |j|j¡dS)NrRr©rÚreturncSsdSrr©rrrrr&ÀrqzITestClassesAndFunctions.test_getfullargspec_signature_annos..testcSsdSrrrrrrr&Ärq)r4rr¤Ú__annotations__Ú annotations)r:r&ÚspecrrrÚ#test_getfullargspec_signature_annos¿s   z;TestClassesAndFunctions.test_getfullargspec_signature_annosú6Signature information for builtins requires docstringscCs^|jtjjddgdd|jt t ¡¡jddgdd|jtjdgddgddd œd d dS) Nr:r=z (self, obj)r rÛÚdir_fdÚfollow_symlinksT)r6r7z,(path, *, dir_fd=None, follow_symlinks=True))rýrrr)r Ú_pickleÚPicklerÚdumpÚioÚBytesIOrÙÚstatrSrrrÚ#test_getfullargspec_builtin_methodsÈsÿÿûz;TestClassesAndFunctions.test_getfullargspec_builtin_methodscCs.ddl}|j}t |¡}| |jdd¡dS)NrÚavocado)Ú _testcapiÚ&docstring_with_signature_with_defaultsr4rr¤r)r:r@Úbuiltinr3rrrÚ test_getfullargspec_builtin_funcØs z8TestClassesAndFunctions.test_getfullargspec_builtin_funccCsFddl}|j}| t¡t |¡Wdƒn1s80YdS)Nr)r@Údocstring_no_signaturer(r)r4r)r:r@rBrrrÚ-test_getfullargspec_builtin_func_no_signatureás zETestClassesAndFunctions.test_getfullargspec_builtin_func_no_signaturecCsbtƒD]6}t |¡}t|jƒ}t|ƒ}| |¡| ||¡qt t¡}t|jƒ}| |t ¡dSr) r*r4rr}rÚsortedr0r¤r-Ú unsorted_keyword_only_parameters©r:r$Ú signatureržZsorted_lrrrÚ8test_getfullargspec_definition_order_preserved_on_kwonlyês      zPTestClassesAndFunctions.test_getfullargspec_definition_order_preserved_on_kwonlycCs$Gdd„dtƒ}| |jdg¡dS)Nc@seZdZdd„ZdS)z9TestClassesAndFunctions.test_getargspec_method..AcSsdSrrrSrrrrB÷sz;TestClassesAndFunctions.test_getargspec_method..A.mN©r1r@rArBrrrrrôösrôr:)r~rrB©r:rôrrrÚtest_getargspec_methodõsz.TestClassesAndFunctions.test_getargspec_methodcCsGdd„dtƒ}t|ƒ}| ddtf|d¡| ddtf|d¡| d d|f|d ¡| d d |f|d ¡| dd|f|d¡| dd|f|d|¡| dd|f|d¡| dd|f|d¡| dd|f|d¡| dd|f|d¡Gdd„d|ƒ}t|ƒ}| d d|f|d ¡| d d |f|d ¡| dd|f|d¡| dd|f|d¡| dd|f|d¡| dd|f|d¡| dd|f|d¡| dd|f|d¡Gdd„d|ƒ}t|ƒ}| d d|f|d ¡| d d|f|d¡| dd|f|d¡| dd|f|d¡| dd|f|d¡| dd|f|d¡| dd|f|d¡| dd|f|d¡Gd d!„d!||ƒ}t|ƒ}| d d|f|d ¡| d d|f|d¡| dd|f|d¡| dd|f|d¡| dd|f|d¡| dd|f|d¡| dd|f|d¡| dd|f|d¡dS)"Nc@s\eZdZdd„ZeeƒZdd„ZeeƒZdd„ZeeƒZ dd„Z d d „Z d Z e ƒZeƒZd S) z9TestClassesAndFunctions.test_classify_newstyle..AcSsdSrrrrrrÚsþrqz;TestClassesAndFunctions.test_classify_newstyle..A.scSsdSrrr›rrrrrqz;TestClassesAndFunctions.test_classify_newstyle..A.ccSsdSrrrSrrrÚgetprqz>TestClassesAndFunctions.test_classify_newstyle..A.getpcSsdSrrrSrrrrBrqz;TestClassesAndFunctions.test_classify_newstyle..A.mcSsdSrrrSrrrÚm1 rqz.A.m1Ú1N)r1r@rArNÚ staticmethodrÚ classmethodrOr3r'rBrPÚdatablobrçÚddríÚmdrrrrrôüsrôr"ú static methodúmissing __new__r­r£zmissing __init__rNzmissing static methodrú class methodúmissing class methodr'r3zmissing propertyrBzmissing plain method: %rrPúmissing plain methodrTÚdataz missing datarVzmissing method descriptorrUzmissing data descriptorc@seZdZdd„ZdS)z9TestClassesAndFunctions.test_classify_newstyle..BcSsdSrrrSrrrrB"rqz;TestClassesAndFunctions.test_classify_newstyle..B.mNrKrrrrrõ srõc@seZdZdd„Zdd„ZdS)z9TestClassesAndFunctions.test_classify_newstyle..CcSsdSrrrSrrrrB1rqz;TestClassesAndFunctions.test_classify_newstyle..C.mcSsdSrrrSrrrr2rqz;TestClassesAndFunctions.test_classify_newstyle..C.cN)r1r@rArBrrrrrr„/sr„c@seZdZdd„ZdS)z9TestClassesAndFunctions.test_classify_newstyle..DcSsdSrrrSrrrrP@rqz.D.m1N)r1r@rArPrrrrrö>srö)r~ròrˆ)r:rôÚattrsrõr„rörrrÚtest_classify_newstyleûs\ÿÿz.TestClassesAndFunctions.test_classify_newstylecCsœttƒD]"}tt|ƒ}t|tƒrt |¡qttƒ}|  ddtf|d¡|  ddt f|d¡|  ddt f|d ¡|  d dt f|d ¡|  d dtf|d ¡dS) Nr"rWrXrrYrZrr£r[Ú__add__Ú__and__) ÚdirÚ __builtins__ÚgetattrÚ isinstancer`r4rñròÚboolrˆr™)r:rArBr]rrrÚtest_classify_builtin_typesLs(    ÿÿÿÿÿz3TestClassesAndFunctions.test_classify_builtin_typescCspGdd„dtƒ}Gdd„d|d}t dd||jd¡}| |t |¡¡t dd|d¡}| |t |¡¡dS) NcseZdZ‡fdd„Z‡ZS)zITestClassesAndFunctions.test_classify_DynamicClassAttribute..Metacs|dkr dStƒ |¡S)NrrR©rÞr{©r:rArßrrr{bszUTestClassesAndFunctions.test_classify_DynamicClassAttribute..Meta.__getattr__©r1r@rAr{rærrrßrÚMetaasrjc@seZdZejdd„ƒZdS)zGTestClassesAndFunctions.test_classify_DynamicClassAttribute..VAcSsdS)Nr´rrSrrrrgszKTestClassesAndFunctions.test_classify_DynamicClassAttribute..VA.hamN)r1r@rAr_ÚDynamicClassAttributerrrrrÚVAfsrlr“rr\rR)r`r4Ú Attributer?rˆrñ)r:rjrlZshould_find_dcaZshould_find_garrrÚ#test_classify_DynamicClassAttribute`s z;TestClassesAndFunctions.test_classify_DynamicClassAttributecsPG‡fdd„dtƒ‰G‡fdd„dtƒ}t dd||j¡}| |t |¡¡dS)Ncs eZdZ‡fdd„Zdd„ZdS)zDTestClassesAndFunctions.test_classify_overrides_bool..NoBoolcsˆƒSrr)r:r>©ÚNoBoolrrÚ__eq__qszKTestClassesAndFunctions.test_classify_overrides_bool..NoBool.__eq__cSs tdƒ‚dS)Nz,This object does not specify a boolean value)ÚNotImplementedErrorrSrrrÚ__bool__tsÿzMTestClassesAndFunctions.test_classify_overrides_bool..NoBool.__bool__N)r1r@rArqrsrrorrrpps rpcseZdZ”ƒZdS)zCTestClassesAndFunctions.test_classify_overrides_bool..HasNBN)r1r@rArUrrorrÚHasNBxsrtrUr\)r~r4rmrUrˆrñ)r:rtZshould_find_attrrrorÚtest_classify_overrides_boolosz4TestClassesAndFunctions.test_classify_overrides_boolcCsHGdd„dtƒ}Gdd„d|d}t dd|d¡}| |t |¡¡dS) Nc@seZdZdZdd„ZdS)zMTestClassesAndFunctions.test_classify_metaclass_class_attribute..MetaÚslapcSsgd¢S)N)ràr@r1ÚfishrrSrrrÚ__dir__szUTestClassesAndFunctions.test_classify_metaclass_class_attribute..Meta.__dir__N)r1r@rArwrxrrrrrjsrjc@s eZdZdS)zNTestClassesAndFunctions.test_classify_metaclass_class_attribute..ClassNrtrrrrÚClassƒsryr“rwr\rv©r`r4rmrˆrñ©r:rjryZ should_findrrrÚ'test_classify_metaclass_class_attribute~sz?TestClassesAndFunctions.test_classify_metaclass_class_attributecCsHGdd„dtƒ}Gdd„d|d}t dd|d¡}| |t |¡¡dS) Ncs$eZdZdd„Z‡fdd„Z‡ZS)zDTestClassesAndFunctions.test_classify_VirtualAttribute..MetacSsgd¢S)N)ràr@r1ÚBOOMrr›rrrrxŠszLTestClassesAndFunctions.test_classify_VirtualAttribute..Meta.__dir__cs|dkr dStƒ |¡S)Nr}r…)rÞZ_Meta__getattrrhrßrrr{ŒszPTestClassesAndFunctions.test_classify_VirtualAttribute..Meta.__getattr__©r1r@rArxr{rærrrßrrj‰srjc@s eZdZdS)zETestClassesAndFunctions.test_classify_VirtualAttribute..ClassNrtrrrrrysryr“r}r\r…rzr{rrrÚtest_classify_VirtualAttributeˆsz6TestClassesAndFunctions.test_classify_VirtualAttributec s¸Gdd„dtƒ‰Gdd„dtƒ‰G‡‡fdd„dˆˆƒ}Gdd„dˆd }Gd d „d ||d }t d d ˆd¡}t dd ˆd¡}t dd |d¡}t |¡}|||fD]}| ||¡q¢dS)Ncs$eZdZdd„Z‡fdd„Z‡ZS)zSTestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes..Meta1cSsgd¢S)N)ràr@r1Úonerr›rrrrx—sz[TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes..Meta1.__dir__cs|dkr dStƒ |¡S)Nr€rrgrhrßrrr{™sz_TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes..Meta1.__getattr__r~rrrßrÚMeta1–srcs$eZdZdd„Z‡fdd„Z‡ZS)zSTestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes..Meta2cSsgd¢S)N)ràr@r1Útworr›rrrrxžsz[TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes..Meta2.__dir__cs|dkr dStƒ |¡S)Nr‚rrgrhrßrrr{ sz_TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes..Meta2.__getattr__r~rrrßrÚMeta2srƒcs*eZdZ‡‡fdd„Z‡fdd„Z‡ZS)zSTestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes..Meta3cs(tttgd¢ˆ |¡ˆ |¡ƒƒƒS)N)ràr@r1Úthree)r}rFr3rxr›©rrƒrrrx¥s  ÿÿz[TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes..Meta3.__dir__cs|dkr dStƒ |¡S)Nr„r¹rgrhrßrrr{¨sz_TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes..Meta3.__getattr__r~rr…rßrÚMeta3¤sr†c@s eZdZdS)zTTestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes..Class1NrtrrrrÚClass1¬sr‡r“c@s eZdZdS)zTTestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes..Class2NrtrrrrÚClass2®srˆr€r\rr‚rr„r¹)r`r4rmrñrˆ) r:r†r‡rˆZ should_find1Z should_find2Z should_find3ZccaZsfrr…rÚ,test_classify_VirtualAttribute_multi_classes•s zDTestClassesAndFunctions.test_classify_VirtualAttribute_multi_classescCsFGdd„dtƒ}Gdd„d|d}dd„t |¡Dƒ}| d|¡dS) Nc@seZdZdd„ZdS)zKTestClassesAndFunctions.test_classify_class_attrs_with_buggy_dir..McSsgd¢S©N)ràr1Úmissingrr›rrrrxºszSTestClassesAndFunctions.test_classify_class_attrs_with_buggy_dir..M.__dir__N©r1r@rArxrrrrÚM¹src@s eZdZdS)zKTestClassesAndFunctions.test_classify_class_attrs_with_buggy_dir..CNrtrrrrr„¼sr„r“cSsg|] }|d‘qS©rr©rûrrrrrü¾rqzTTestClassesAndFunctions.test_classify_class_attrs_with_buggy_dir..r‹)r`r4rñr‰©r:rr„r]rrrÚ(test_classify_class_attrs_with_buggy_dir¸sz@TestClassesAndFunctions.test_classify_class_attrs_with_buggy_dircCsÀGdd„dtƒ}dd„}|tjƒ}|tjƒ}| t ||¡d|jdfg¡| t ||¡d|jdfg¡Gdd„d|ƒ}| t ||¡d|jdfg¡| t ||¡d|jdfg¡dS) Nc@seZdZeƒZeƒZdS)z>TestClassesAndFunctions.test_getmembers_descriptors..AN)r1r@rArçrUrírVrrrrrôÂsrôcs"Gdd„dtƒ‰‡‡fdd„}|S)Nc@s eZdZdS)zXTestClassesAndFunctions.test_getmembers_descriptors..pred_wrapper..EmptyNrtrrrrÚEmptyÉsr’cs$dt|ƒvrtˆ|jƒrdSˆ|ƒS)Nr1F)rar^r1©rŠ©r’ÚpredrrrWËszZTestClassesAndFunctions.test_getmembers_descriptors..pred_wrapper..wrapped©r~)r•rWrr”rÚ pred_wrapperÆszITestClassesAndFunctions.test_getmembers_descriptors..pred_wrapperrVrUc@s eZdZdS)z>TestClassesAndFunctions.test_getmembers_descriptors..BNrtrrrrrõÙsrõ)r~r4Úismethoddescriptorrcr¤r‡r?)r:rôr—r˜rcrõrrrÚtest_getmembers_descriptorsÁs"  ÿÿÿÿz3TestClassesAndFunctions.test_getmembers_descriptorscCs€Gdd„dƒ}| d|jft |¡¡| d|jft |tj¡¡|ƒ}| d|jft |¡¡| d|jft |tj¡¡dS)Nc@seZdZdd„ZdS)z9TestClassesAndFunctions.test_getmembers_method..BcSsdSrrrSrrrr×ãsz;TestClassesAndFunctions.test_getmembers_method..B.fN©r1r@rAr×rrrrrõâsrõr×)rˆr×r4r‡r‰rF)r:rõrrrrÚtest_getmembers_methodás z.TestClassesAndFunctions.test_getmembers_methodcCsLGdd„dtƒ}Gdd„d|d}| dt |¡¡| dt |ƒ¡¡dS)NcseZdZ‡fdd„Z‡ZS)zCTestClassesAndFunctions.test_getmembers_VirtualAttribute..Mcs|dkr dStƒ |¡S)Nr´Ú scrambledrg)rœrArßrrr{îszOTestClassesAndFunctions.test_getmembers_VirtualAttribute..M.__getattr__rirrrßrrísrc@seZdZejdd„ƒZdS)zCTestClassesAndFunctions.test_getmembers_VirtualAttribute..AcSsdSrQrrSrrrr´ószHTestClassesAndFunctions.test_getmembers_VirtualAttribute..A.eggsN)r1r@rAr_rkr´rrrrrôòsrôr“)r´rœ)r´rR)r`rˆr4r‡)r:rrôrrrÚ test_getmembers_VirtualAttributeìsz8TestClassesAndFunctions.test_getmembers_VirtualAttributecCsFGdd„dtƒ}Gdd„d|d}dd„t |¡Dƒ}| d|¡dS) Nc@seZdZdd„ZdS)zATestClassesAndFunctions.test_getmembers_with_buggy_dir..McSsgd¢SrŠrr›rrrrxûszITestClassesAndFunctions.test_getmembers_with_buggy_dir..M.__dir__NrŒrrrrrúsrc@s eZdZdS)zATestClassesAndFunctions.test_getmembers_with_buggy_dir..CNrtrrrrr„ýsr„r“cSsg|] }|d‘qSrŽrrrrrrüÿrqzJTestClassesAndFunctions.test_getmembers_with_buggy_dir..r‹)r`r4r‡r‰rrrrÚtest_getmembers_with_buggy_dirùsz6TestClassesAndFunctions.test_getmembers_with_buggy_dir)NNNN) r1r@rArørr rrr%r-r4r«rNr r>rrCrErJrMr^rfrnrur|rr‰r‘r™r›rržrrrrró3sV ÿ ü ( ÿ ÿ ÿ  Q  #    róc@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) ÚTestIsDataDescriptorcCsŒGdd„dƒ}Gdd„dƒ}Gdd„dƒ}Gdd„dƒ}| t |ƒ¡d ¡| t |ƒ¡d ¡| t |ƒ¡d ¡| t |ƒ¡d ¡dS) Nc@seZdZddd„ZdS)zGTestIsDataDescriptor.test_custom_descriptors..NonDataDescriptorNcSsdSrr)r:Úvaluer`rrrrêrqzOTestIsDataDescriptor.test_custom_descriptors..NonDataDescriptor.__get__)N©r1r@rArêrrrrÚNonDataDescriptorsr¢c@seZdZdd„ZdS)zETestIsDataDescriptor.test_custom_descriptors..DataDescriptor0cSsdSrr)r:rAr rrrrìrqzMTestIsDataDescriptor.test_custom_descriptors..DataDescriptor0.__set__N©r1r@rArìrrrrÚDataDescriptor0sr¤c@seZdZdd„ZdS)zETestIsDataDescriptor.test_custom_descriptors..DataDescriptor1cSsdSrrrhrrrÚ __delete__ rqzPTestIsDataDescriptor.test_custom_descriptors..DataDescriptor1.__delete__N)r1r@rAr¥rrrrÚDataDescriptor1 sr¦c@seZdZdZdS)zETestIsDataDescriptor.test_custom_descriptors..DataDescriptor2Nr£rrrrÚDataDescriptor2 sr§z-class with only __get__ not a data descriptorz'class with __set__ is a data descriptorz*class with __delete__ is a data descriptorz.class with __set__ = None is a data descriptor)r9r4rcr0)r:r¢r¤r¦r§rrrÚtest_custom_descriptorss ÿÿÿÿz,TestIsDataDescriptor.test_custom_descriptorscCs&Gdd„dƒ}| t |j¡d¡dS)Nc@seZdZdZdS)z/TestIsDataDescriptor.test_slot..Slotted©rNr‚rrrrÚSlottedsrªza slot is a data descriptor)r0r4rcr)r:rªrrrÚ test_slotsÿzTestIsDataDescriptor.test_slotcCs&Gdd„dƒ}| t |j¡d¡dS)Nc@seZdZedd„ƒZdS)z6TestIsDataDescriptor.test_property..PropertiedcSsdSrrrSrrrÚ a_propertyszATestIsDataDescriptor.test_property..Propertied.a_propertyN)r1r@rAr3r¬rrrrÚ Propertiedsr­za property is a data descriptor)r0r4rcr¬)r:r­rrrÚ test_propertysÿz"TestIsDataDescriptor.test_propertycCsŠGdd„dtƒ}dd„}dd„}| t |ƒj¡d¡| t |ƒj¡d¡| t |ƒj¡d ¡| t |¡d ¡| t |¡d ¡dS) Nc@s,eZdZdd„Zedd„ƒZedd„ƒZdS)z1TestIsDataDescriptor.test_functions..TestcSsdSrrrSrrrÚinstance_method&rqzATestIsDataDescriptor.test_functions..Test.instance_methodcSsdSrrr›rrrÚ class_method'sz>TestIsDataDescriptor.test_functions..Test.class_methodcSsdSrrrrrrÚ static_method)sz?TestIsDataDescriptor.test_functions..Test.static_methodN)r1r@rAr¯rSr°rRr±rrrrÚTest%s  r²cSsdSrrrrrrrÂ+sz5TestIsDataDescriptor.test_functions..functioncSsdSrrrrrrrv-rqz5TestIsDataDescriptor.test_functions..z*a instance method is not a data descriptorz'a class method is not a data descriptorz(a static method is not a data descriptorz#a function is not a data descriptorz!a lambda is not a data descriptor)r~r9r4rcr¯r°r±)r:r²rÂZa_lambdarrrÚtest_functions$s$ÿÿÿ ÿ ÿz#TestIsDataDescriptor.test_functionsN)r1r@rAr¨r«r®r³rrrrrŸsrŸc@s\eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dS)ÚTestGetClosureVarscCsVdd„}tƒ}d|i}dti}dti}dh}t ||||¡}| t ||ƒ¡|¡dS)Ncs‡fdd„}|S)Ncst|ˆttƒdSr©ÚprintÚ _global_refÚ unbound_ref©Z local_ref©Ú nonlocal_refrrrØ@sz=TestGetClosureVars.test_name_resolution..f..gr©r»rØrrºrr×?s z2TestGetClosureVars.test_name_resolution..fr»r·r¶r¸©r~r·r¶r4Ú ClosureVarsr¤Úgetclosurevars©r:r×Ú_argÚ nonlocal_varsÚ global_varsÚ builtin_varsÚ unbound_namesr÷rrrÚtest_name_resolution=sÿz'TestGetClosureVars.test_name_resolutioncCsVdd„}tƒ}d|i}dti}dti}dh}t ||||¡}| t ||ƒ¡|¡dS)Ncs‡fdd„}|S)Nc3st|ˆttƒdVdSrrµr¹rºrrrØNsz?TestGetClosureVars.test_generator_closure..f..grr¼rrºrr×Ms z4TestGetClosureVars.test_generator_closure..fr»r·r¶r¸r½rÀrrrÚtest_generator_closureLsÿz)TestGetClosureVars.test_generator_closurecCs`Gdd„dƒ}tƒ}d|i}dti}dti}dh}t ||||¡}| t |ƒ |¡¡|¡dS)Nc@seZdZdd„ZdS)z1TestGetClosureVars.test_method_closure..Ccs‡fdd„}|S)Ncst|ˆttƒdSrrµr¹rºrrrØ^sz>TestGetClosureVars.test_method_closure..C.f..gr)r:r»rØrrºrr×]s z3TestGetClosureVars.test_method_closure..C.fNršrrrrr„\sr„r»r·r¶r¸)r~r·r¶r4r¾r¤r¿r×)r:r„rÁrÂrÃrÄrÅr÷rrrÚtest_method_closure[sÿz&TestGetClosureVars.test_method_closurecs¼dd„‰dd„}dd„}dd„}‡fd d „‰‡‡‡fd d „}|d ƒ}|dƒ}||dƒ}ˆ ˆ|ƒdd i¡ˆ ˆ|ƒddi¡ˆ ˆ|ƒd|dœ¡ˆ ˆdd„dƒƒddi¡ˆ|ƒdS)NcSs t |¡jSr)r4r¿Z nonlocalsrrrrÚ_nonlocal_varslsz=TestGetClosureVars.test_nonlocal_vars.._nonlocal_varscs‡fdd„}|S)Ncsˆ|Srr©rÊr“rrÚaddpszFTestGetClosureVars.test_nonlocal_vars..make_adder..addr)rŠrËrr“rÚ make_adderos z9TestGetClosureVars.test_nonlocal_vars..make_addercs‡‡fdd„S)Ncs ˆˆ|ƒSrr©r©rrŸrrrvurqzFTestGetClosureVars.test_nonlocal_vars..curry..r)rŸrrrÎrÚcurrytsz4TestGetClosureVars.test_nonlocal_vars..currycSs||kSrrr€rrrÚ less_thanwsz8TestGetClosureVars.test_nonlocal_vars..less_thancs‡fdd„}|ˆ_||ƒS)Ncsˆ‡fdd„ƒS)Ncs ˆˆƒ|ƒSrrr“rrrrv}rqzMTestGetClosureVars.test_nonlocal_vars..Y..g..rr©ÚlerrrØ|sz;TestGetClosureVars.test_nonlocal_vars..Y..g)Úg_ref)rÒrØ)ÚYrÑrrÔ{s z0TestGetClosureVars.test_nonlocal_vars..Ycsˆ ˆ|ƒdˆji¡dS)Nr×)r¤rÓ©rŸ©rÔrÉr:rrÚcheck_y_combinatorszATestGetClosureVars.test_nonlocal_vars..check_y_combinatorrrr–rŠrÎcs ‡fdd„S)Ncsˆ|SrrrÊr“rrrvŒrqzITestGetClosureVars.test_nonlocal_vars....rr“rr“rrvŒrqz7TestGetClosureVars.test_nonlocal_vars..r¹)r¤)r:rÌrÏrÐr×ZincZadd_twoZgreater_than_fiverrÖrÚtest_nonlocal_varsjs$   ÿÿz%TestGetClosureVars.test_nonlocal_varscCsFdd„}t iiitƒ¡}| t dd„¡|¡| t |¡|¡dS)NcSsdSrrrrrrr‘rqz9TestGetClosureVars.test_getclosurevars_empty..foocSsdS©NTrrrrrrv“rqz>TestGetClosureVars.test_getclosurevars_empty..)r4r¾r3r¤r¿)r:rZ_emptyrrrÚtest_getclosurevars_emptysz,TestGetClosureVars.test_getclosurevars_emptycCsBGdd„dƒ}| ttjd¡| ttjt¡| ttji¡dS)Nc@s eZdZdS)z7TestGetClosureVars.test_getclosurevars_error..TNrtrrrrÚT—rqrÛr)r(r)r4r¿r})r:rÛrrrÚtest_getclosurevars_error–sz,TestGetClosureVars.test_getclosurevars_errorcCsd}i}t||ƒ|d|fS)Nzdef f(): print(path)r×)r$)r:ÚcoderJrrrÚ_private_globalsœs z#TestGetClosureVars._private_globalscCsD| ¡\}}| dd¡t iidtidh¡}| t |¡|¡dS)Nrbr¶rÛ)rÞÚpopr4r¾r¶r¤r¿©r:r×rJr÷rrrÚtest_builtins_fallback¢s  z)TestGetClosureVars.test_builtins_fallbackcCsD| ¡\}}ddi|d<t iiddidh¡}| t |¡|¡dS)NrÛrrbr¶)rÞr4r¾r¤r¿ràrrrÚtest_builtins_as_dict¨s  z(TestGetClosureVars.test_builtins_as_dictcCsB| ¡\}}t|d<t iidtjidh¡}| t |¡|¡dS)NrbrÛr¶)rÞrÙr4r¾rÛr¤r¿ràrrrÚtest_builtins_as_module®s z*TestGetClosureVars.test_builtins_as_moduleN) r1r@rArÆrÇrÈrØrÚrÜrÞrárârãrrrrr´;s&r´c@s`eZdZddd„Zddd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dd„Z dd„Z dd„Z dS)ÚTestGetcallargsFunctionsNcCs@t|pi|d}td|d|ƒ}td|d|ƒ}| ||¡dS)NrÕúfunc(%s)úinspect.getcallargs(func, %s))r†r/r¤)r:rŸÚcall_params_stringÚlocsZr1Zr2rrrÚassertEqualCallArgs·s  ÿz,TestGetcallargsFunctions.assertEqualCallArgsc CsÐt|pi|d}ztd|d|ƒWn(tyL}z|}WYd}~nd}~00| d¡ztd|d|ƒWn(ty”}z|}WYd}~nd}~00| d¡| t|ƒt|ƒ¡| t|ƒt|ƒ¡~~dS)NrÕråzException not raisedræ)r†r/r6Zfailr½r`r¤r)r:rŸZcall_param_stringrèrÖZex1Zex2rrrÚassertEqualException¾s   ÿ z-TestGetcallargsFunctions.assertEqualExceptioncCsd}t||ƒS)z+Create a function that returns its locals()zlambda %s: locals())r/)r:rIrÝrrrÚ makeCallableÑsz%TestGetcallargsFunctions.makeCallablecCsæ| d¡}| |d¡| |d¡| |d¡| |d¡| |d¡| |d¡| |d¡| |d ¡| |d ¡| |d ¡| |d ¡| |d ¡| |d¡| |d¡| |d¡| |d¡| |d¡| |d¡dS)Núa, b=1Ú2ú2, 3úa=2zb=3, a=2z2, b=3z*(2,)z*[2]z*(2, 3)z*[2, 3]z **{"a":2}zb=3, **{"a":2}z 2, **{"b":3}z**{"b":3, "a":2}z*collections.UserList([2])z*collections.UserList([2, 3])z**collections.UserDict(a=2)z2, **collections.UserDict(b=3)z b=2, **collections.UserDict(a=3)©rëré©r:r×rrrÚ test_plainÖs&                  z#TestGetcallargsFunctions.test_plaincCsV| d¡}| |d¡| |d¡| |d¡| |d¡| |d¡| |d¡dS)Nz a, b=1, *crírîú2, 3, 4z*(2,3,4)z 2, *[3,4]z 2, 3, *collections.UserList([4])rðrñrrrÚ test_varargsís      z%TestGetcallargsFunctions.test_varargscCsz| d¡}| |d¡| |d¡| |d¡| |d¡| |d¡| |d¡| |d¡| |d ¡| |d ¡dS) Nz a, b=1, **crïz 2, b=3, c=4z b=3, a=2, c=4zc=4, **{"a":2, "b":3}z2, c=4, **{"b":3}zb=2, **{"a":3, "c":4}z%**collections.UserDict(a=2, b=3, c=4)z#2, c=4, **collections.UserDict(b=3)z%b=2, **collections.UserDict(a=3, c=4)rðrñrrrÚ test_varkwös         z#TestGetcallargsFunctions.test_varkwcCsV| d¡}| |d¡| |d¡| |d¡| |d¡| |d¡| |d¡dS)Nú**cråza=1za=1, b=2zc=3, **{"a": 1, "b": 2}z **collections.UserDict(a=1, b=2)z%c=3, **collections.UserDict(a=1, b=2)rðrñrrrÚtest_varkw_onlys      z(TestGetcallargsFunctions.test_varkw_onlycCsœ| d¡}| |d¡| |d¡| |d¡| |d¡| |d¡| |d¡| |d¡| |d ¡| d ¡}| |d¡| |d ¡| |d ¡dS) Nza=3, *, c, d=2zc=3zc=3, a=3za=2, c=4z4, c=4råÚ3za=3zd=4z *, c, d=2zc=3, d=4zd=4, c=3)rërérêrñrrrÚtest_keyword_only s            z*TestGetcallargsFunctions.test_keyword_onlycCs´| d¡}| |d¡| |d¡| |d¡| |d¡| |d¡| |d¡| |d¡| d ¡}| |d¡| |d¡| |d ¡| |d ¡| |d ¡| |d ¡dS)Nza, b=2, *f, **gz2, 3, 7z 2, 3, x=8z2, 3, x=8, *[(4,[5,6]), 7]z2, x=8, *[3, (4,[5,6]), 7], y=9zx=8, *[2, 3, (4,[5,6])], y=9z@x=8, *collections.UserList([2, 3, (4,[5,6])]), **{"y":9, "z":10}zP2, x=8, *collections.UserList([3, (4,[5,6])]), **collections.UserDict(y=9, z=10)za, b=2, *f, x, y=99, **gz%2, x=8, *[3, (4,[5,6]), 7], y=9, z=10z"x=8, *[2, 3, (4,[5,6])], y=9, z=10zEx=8, *collections.UserList([2, 3, (4,[5,6])]), q=0, **{"y":9, "z":10}zU2, x=8, *collections.UserList([3, (4,[5,6])]), q=0, **collections.UserDict(y=9, z=10)rðrñrrrÚtest_multiple_featuress              z/TestGetcallargsFunctions.test_multiple_featuresc Cs | d¡}| d¡}| d¡}| |d¡| |d¡| |d¡| |d¡| |d¡| |d¡| |d¡| |d¡| |d¡||fD]ˆ}| |d ¡| |d ¡| |d ¡| |d ¡| |d ¡| |d¡| |d¡| |d¡| |d¡| |d¡| |d¡q’| d¡}| |d¡| |d¡| d¡}| |d¡| |d¡dd„}| td¡t |¡Wdƒn1s–0Ydd„}| td¡t |¡Wdƒn1sÖ0Y| td¡$tjdtjjd d!Wdƒn1s0Y| td"¡ tjd#d$d d!Wdƒn1sV0Y| td%¡tjd&d'd(Wdƒn1s’0YdS))Nråza, brìrQr z1,x=1rïzb=3róz 1, 2, 3, a=1z 2, 3, 4, c=5zc=2z2, c=3z 2, 3, c=4z 2, c=4, b=3u**{u"πι": 4}z1, a=2z 1, **{"a":2}z 1, 2, b=3röz1, 2z1, 2, a=1, b=2z *, a, b=0cSsdSrrr0rrrÚf5crqz0TestGetcallargsFunctions.test_errors..f5zmissing 1 required keyword-onlycSsdSrr©rrrrrrÚf6jsz0TestGetcallargsFunctions.test_errors..f6z'a', 'b' and 'c'z6variadic keyword parameters cannot have default valuesrr…©ÚkindÚdefaultz%value 5 is not a valid Parameter.kindrr–zname must be a str, not a inté{r ©rÿ) rërêrœr)r4Z getcallargsrr)Ú VAR_KEYWORD) r:Zf0Úf1Úf2r×Úf3Úf4rûrýrrrÚ test_errors4sh                             ÿ**ÿ ÿ&ÿ0ÿz$TestGetcallargsFunctions.test_errors)N)N) r1r@rArérêrëròrôrõr÷rùrúrrrrrräµs     räcs$eZdZdd„Z‡fdd„Z‡ZS)ÚTestGetcallargsMethodscCs"Gdd„dtƒ}||_|ƒ|_dS)Nc@s eZdZdS)z)TestGetcallargsMethods.setUp..FooNrtrrrrÚFoo€sr )r~rœÚinst)r:r rrrrãszTestGetcallargsMethods.setUpcs$tt|ƒj}|d|ƒ|j_|jjS)Nzself, )rÞr rërœr£r )r:rIÚmkrßrrrë…s z#TestGetcallargsMethods.makeCallable)r1r@rArãrërærrrßrr }sr csBeZdZ‡fdd„Zd ‡fdd„ Zd ‡fdd„ Zd dd „Z‡ZS) ÚTestGetcallargsUnboundMethodscstt|ƒ |¡|jjSr)rÞr rërœr£©r:rIrßrrrësz*TestGetcallargsUnboundMethods.makeCallableNcstt|ƒj| |||¡ŽSr)rÞr réÚ_getAssertEqualParams©r:rŸrçrèrßrrré‘s  ÿz1TestGetcallargsUnboundMethods.assertEqualCallArgscstt|ƒj| |||¡ŽSr)rÞr rêrrrßrrrê•s  ÿz2TestGetcallargsUnboundMethods.assertEqualExceptioncCs t|pi|jd}|d||fS)N)r zinst,)r†r rrrrr™sz3TestGetcallargsUnboundMethods._getAssertEqualParams)N)N)N)r1r@rArërérêrrærrrßrr ‹s r c@s¼eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-S).ÚTestGetattrStaticcCs”Gdd„dtƒ}|ƒ}| t |d¡|j¡| t |dd¡|j¡| t¡t |d¡Wdƒn1sp0Y| t |dd¡d¡dS)Nc@seZdZeƒZdS)z+TestGetattrStatic.test_basic..ThingN©r1r@rAr~rŠrrrrÚThing¢srrŠrÊr¹)r~r¤r4Úgetattr_staticrŠr(r2©r:rÚthingrrrÚ test_basic¡s *zTestGetattrStatic.test_basiccCs@Gdd„dtƒ}Gdd„d|ƒ}|ƒ}| t |d¡|j¡dS)Nc@seZdZeƒZdS)z/TestGetattrStatic.test_inherited..ThingNrrrrrr®src@s eZdZdS)z4TestGetattrStatic.test_inherited..OtherThingNrtrrrrÚ OtherThing°srrŠ©r~r¤r4rrŠ)r:rrZ somethingrrrÚtest_inherited­sz TestGetattrStatic.test_inheritedcCsHGdd„dtƒ}|dƒ}| t |d¡d¡|`| t |d¡d¡dS)Nc@seZdZdZdd„ZdS)z3TestGetattrStatic.test_instance_attr..ThingrcSs ||_dSrr“©r:rŠrrrr­¹sz.Thing.__init__N)r1r@rArŠr­rrrrr·srr¹rŠrrrrrrÚtest_instance_attr¶s z$TestGetattrStatic.test_instance_attrcCs0Gdd„dtƒ}|ƒ}| t |d¡|j¡dS)Nc@seZdZedd„ƒZdS)z.TestGetattrStatic.test_property..ThingcSs tdƒ‚dS©NzI'm pretending not to existr1rSrrrrŠÂsz0TestGetattrStatic.test_property..Thing.xN)r1r@rAr3rŠrrrrrÁsrrŠrrrrrr®ÀszTestGetattrStatic.test_propertycsHGdd„dtƒ}|ƒ‰G‡fdd„dtƒ}|ƒ}| t |d¡ˆ¡dS)Nc@seZdZdd„ZdS)zKTestGetattrStatic.test_descriptor_raises_AttributeError..descriptorcWs tdƒ‚dSrr1)Ú_rrrrêÊszSTestGetattrStatic.test_descriptor_raises_AttributeError..descriptor.__get__Nr¡rrrrÚ descriptorÉsrcseZdZ”ZdS)zFTestGetattrStatic.test_descriptor_raises_AttributeError..ThingN©r1r@rArŠr©ZdescrrrÍsrrŠ)r~r¤r4r)r:rrrrr!rÚ%test_descriptor_raises_AttributeErrorÈs z7TestGetattrStatic.test_descriptor_raises_AttributeErrorcCs*Gdd„dtƒ}| t |d¡|j¡dS)Nc@seZdZeƒZdS)z4TestGetattrStatic.test_classAttribute..ThingNrrrrrrÓsrrŠr©r:rrrrÚtest_classAttributeÒsz%TestGetattrStatic.test_classAttributecCs.Gdd„dtƒ}| t |d¡|jd¡dS)Nc@s eZdZejdd„ƒZeƒZdS)z;TestGetattrStatic.test_classVirtualAttribute..ThingcSs|jSr)Ú_xrSrrrrŠÚsz=TestGetattrStatic.test_classVirtualAttribute..Thing.xN)r1r@rAr_rkrŠr~r%rrrrrÙs rrŠ)r~r¤r4rr?r#rrrÚtest_classVirtualAttributeØsz,TestGetattrStatic.test_classVirtualAttributecCs:Gdd„dtƒ}Gdd„d|ƒ}| t |d¡|j¡dS)Nc@seZdZeƒZdS)z>TestGetattrStatic.test_inherited_classattribute..ThingNrrrrrrâsrc@s eZdZdS)zCTestGetattrStatic.test_inherited_classattribute..OtherThingNrtrrrrräsrrŠr©r:rrrrrÚtest_inherited_classattributeász/TestGetattrStatic.test_inherited_classattributecCs^Gdd„dtƒ}|ƒ}| t |d¡|j¡| t |d¡d¡|`| t |d¡|j¡dS)Nc@seZdZdZdgZdd„ZdS)z+TestGetattrStatic.test_slots..ThingrrŠcSs d|_dS©Nrr“rSrrrr­ísz4TestGetattrStatic.test_slots..Thing.__init__N)r1r@rArÊrƒr­rrrrrêsrrŠrÊrrrrrrÚ test_slotsés zTestGetattrStatic.test_slotscCs˜Gdd„dtƒ}Gdd„dt|d}| t |d¡d¡Gdd „d |ƒ}Gd d „d t|d}| t |d¡d¡Gd d „d |ƒ}| t |d¡d¡dS)Nc@seZdZdZdS)z.TestGetattrStatic.test_metaclass..metarN)r1r@rArzrrrrÚmeta÷sr+c@s eZdZdS)z/TestGetattrStatic.test_metaclass..ThingNrtrrrrrùsrr“rzrc@s eZdZdS)z-TestGetattrStatic.test_metaclass..subNrtrrrrÚsubýsr,c@seZdZdZdS)z4TestGetattrStatic.test_metaclass..OtherThingr¹Nr rrrrrÿsrc@s eZdZdS)z9TestGetattrStatic.test_metaclass..OtherOtherThingNrtrrrrÚOtherOtherThingsr-rŠr¹©r`r~r¤r4r)r:r+rr,rr-rrrÚtest_metaclassösz TestGetattrStatic.test_metaclasscCs.| t ddd¡d¡| t dd¡d¡dS)NrrÚlower)r¤r4rÚassertNotEqualrSrrrÚtest_no_dict_no_slotssz'TestGetattrStatic.test_no_dict_no_slotscCsFttƒ*}| t |d¡t|ƒj¡Wdƒn1s80YdS)NrA)rÝrÁr¤r4rr`rA)r:ÚhandlerrrÚ%test_no_dict_no_slots_instance_member s z7TestGetattrStatic.test_no_dict_no_slots_instance_membercCs<Gdd„dtƒ}Gdd„d|ƒ}| t |ƒd¡|j¡dS)Nc@seZdZdgZdd„ZdS)z5TestGetattrStatic.test_inherited_slots..ThingrŠcSs d|_dSr)r“rSrrrr­sz>TestGetattrStatic.test_inherited_slots..Thing.__init__N)r1r@rArƒr­rrrrrsrc@s eZdZdS)z:TestGetattrStatic.test_inherited_slots..OtherThingNrtrrrrrsrrŠrr'rrrÚtest_inherited_slotssz&TestGetattrStatic.test_inherited_slotscspGdd„dtƒ‰G‡fdd„dtƒ}|ƒ}d|jd<| t |d¡d¡dd„ˆ_| t |d¡|jd¡dS) Nc@seZdZdd„ZdS)z5TestGetattrStatic.test_descriptor..descriptorcSsdSrïr©r:ÚinstanceÚownerrrrrê sz=TestGetattrStatic.test_descriptor..descriptor.__get__Nr¡rrrrrsrcseZdZ”ƒZdS)z.TestGetattrStatic.test_descriptor..FooN©r1r@rArÕr©rrrr "sr rrÕcSsdSrr)rNr&Úvrrrrv-rqz3TestGetattrStatic.test_descriptor..)r~r?r¤r4rrì©r:r rrr:rÚtest_descriptors  z!TestGetattrStatic.test_descriptorcsVGdd„dtƒ‰G‡fdd„dtƒ}Gdd„dt|d}| t |d¡|jd¡dS) Nc@seZdZdd„ZdS)zDTestGetattrStatic.test_metaclass_with_descriptor..descriptorcSsdSrïrr6rrrrê3szLTestGetattrStatic.test_metaclass_with_descriptor..descriptor.__get__Nr¡rrrrr2srcseZdZ”ƒZdS)z>TestGetattrStatic.test_metaclass_with_descriptor..metaNr9rr:rrr+5sr+c@s eZdZdS)z?TestGetattrStatic.test_metaclass_with_descriptor..ThingNrtrrrrr7srr“rÕ)r~r`r¤r4rr?)r:r+rrr:rÚtest_metaclass_with_descriptor1sz0TestGetattrStatic.test_metaclass_with_descriptorcCs^Gdd„dtƒ}Gdd„d|ƒ}|ƒ}| t |d¡d¡| |j¡| t |d¡d¡dS)Nc@seZdZdZdS)z6TestGetattrStatic.test_class_as_property..Baser¹NrrrrrÚBase=sr?c@seZdZdZedd„ƒZdS)z;TestGetattrStatic.test_class_as_property..SomethingFcSs d|_tSrÙ)Úexecutedr~rSrrrràBszETestGetattrStatic.test_class_as_property..Something.__class__N)r1r@rAr@r3ràrrrrÚ Something@srArr¹)r~r¤r4rr9r@)r:r?rAr7rrrÚtest_class_as_property<s  z(TestGetattrStatic.test_class_as_propertycCsbGdd„dtƒ}Gdd„dtƒ}Gdd„d||d}| t |ƒd¡d ¡| t |d¡d ¡dS) Nc@seZdZedd„ƒZdS)z4TestGetattrStatic.test_mro_as_property..MetacSstfSrr–rSrrrÚ__mro__Nsz.Meta.__mro__N)r1r@rAr3rCrrrrrjMsrjc@seZdZdZdS)z4TestGetattrStatic.test_mro_as_property..Baser¹Nrrrrrr?Rsr?c@s eZdZdS)z9TestGetattrStatic.test_mro_as_property..SomethingNrtrrrrrAUsrAr“rr¹r.)r:rjr?rArrrÚtest_mro_as_propertyLs z&TestGetattrStatic.test_mro_as_propertycsN|‰dˆ_G‡fdd„dtƒ}|ƒ}d|_| t |d¡d¡| ˆj¡dS)NFcs eZdZdZe‡fdd„ƒZdS)z4TestGetattrStatic.test_dict_as_property..Foor¹cs dˆ_iSrÙ)ÚcalledrS©r&rrr?asz=TestGetattrStatic.test_dict_as_property..Foo.__dict__N)r1r@rArr3r?rrFrrr _sr r rr¹)rEr†rr¤r4rr9r<rrFrÚtest_dict_as_property[sz'TestGetattrStatic.test_dict_as_propertycs`|‰dˆ_G‡fdd„dtƒ}Gdd„dtƒ}|ƒ}|ƒ|_| t |d¡d¡| ˆj¡dS)NFcs eZdZd‡‡fdd„ Z‡ZS)z9TestGetattrStatic.test_custom_object_dict..CustomNcsdˆ_tƒ ||¡dSrÙ)rErÞÚget)r:Úkeyr)ràr&rrrHpsz=TestGetattrStatic.test_custom_object_dict..Custom.get)N)r1r@rArHrærrFrßrÚCustomosrJc@seZdZdZdS)z6TestGetattrStatic.test_custom_object_dict..Foor¹N)r1r@rArrrrrr tsr rr¹)rEr†r~r?r¤r4rr9)r:rJr rrrFrÚtest_custom_object_dictksz)TestGetattrStatic.test_custom_object_dictcCsLGdd„dtƒ}Gdd„d|d}|ƒ}| t |d¡d¡| |j¡dS)Nc@seZdZedd„ƒZdS)z?TestGetattrStatic.test_metaclass_dict_as_property..MetacSs d|_dSrÙ)r@rSrrrr?}szHTestGetattrStatic.test_metaclass_dict_as_property..Meta.__dict__N©r1r@rAr3r?rrrrrj|srjc@seZdZdZdd„ZdS)z@TestGetattrStatic.test_metaclass_dict_as_property..ThingFcSs d|_dS©Nr…©rRrSrrrr­„szITestGetattrStatic.test_metaclass_dict_as_property..Thing.__init__N)r1r@rAr@r­rrrrrsrr“rRr…)r`r¤r4rr9r@)r:rjrr7rrrÚtest_metaclass_dict_as_property{s z1TestGetattrStatic.test_metaclass_dict_as_propertycCs tƒ}| t td|¡|¡dS)NÚversion)r~Ú assertIsNotr4rr\)r:ÚsentinelrrrÚ test_module‹sÿzTestGetattrStatic.test_modulecCs|Gdd„dtƒ}Gdd„dt|d}Gdd„d|d}| t¡t |d¡Wdƒn1sb0Y| |j¡dS) Nc@seZdZedd„ƒZdS)zWTestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_property..MetaMetacSsd|_tddS)NTr…rN)r@r†rSrrrr?’sz`TestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_property..MetaMeta.__dict__NrLrrrrÚMetaMeta‘srTc@seZdZdZdS)zSTestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_property..MetaFN)r1r@rAr@rrrrrj—srjr“c@s eZdZdS)zTTestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_property..ThingNrtrrrrršsrrR)r`r(r2r4rr9r@)r:rTrjrrrrÚ3test_metaclass_with_metaclass_with_dict_as_propertys  *zETestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_propertyN)r1r@rArrrr®r"r$r&r(r*r/r2r4r5r=r>rBrDrGrKrOrSrUrrrrrŸs,        rc@sdeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dS)ÚTestGetGeneratorStatecCsdd„}|ƒ|_dS)NcsstdƒD] }|VqdS©Nr–rM©ZnumberrrrÚnumber_generator¤s z5TestGetGeneratorState.setUp..number_generator)Ú generator)r:rYrrrrã£szTestGetGeneratorState.setUpcCs t |j¡Sr)r4ZgetgeneratorstaterZrSrrrÚ_generatorstate©sz%TestGetGeneratorState._generatorstatecCs| | ¡tj¡dSr)r¤r[r4Z GEN_CREATEDrSrrrÚ test_created¬sz"TestGetGeneratorState.test_createdcCs t|jƒ| | ¡tj¡dSr)ÚnextrZr¤r[r4Z GEN_SUSPENDEDrSrrrÚtest_suspended¯s z$TestGetGeneratorState.test_suspendedcCs"|jD]}q| | ¡tj¡dSr)rZr¤r[r4Ú GEN_CLOSEDrNrrrÚtest_closed_after_exhaustion³s z2TestGetGeneratorState.test_closed_after_exhaustioncCsL| t¡|j t¡Wdƒn1s,0Y| | ¡tj¡dSr)r(rërZr+r¤r[r4r_rSrrrÚ%test_closed_after_immediate_exception¸s *z;TestGetGeneratorState.test_closed_after_immediate_exceptioncs,‡fdd„}|ƒˆ_tˆjƒtˆjƒdS)Nc3s<tdƒD].}ˆ ˆ ¡tj¡|Vˆ ˆ ¡tj¡qdSrW)r r¤r[r4Z GEN_RUNNINGrXrSrrÚrunning_check_generatorÂs zCTestGetGeneratorState.test_running..running_check_generator)rZr])r:rbrrSrÚ test_running½s  z"TestGetGeneratorState.test_runningcCs@d ¡}|D].}tt|ƒ}| |t|ƒ¡| |t|ƒ¡q dS)Nz0GEN_CREATED GEN_RUNNING GEN_SUSPENDED GEN_CLOSED©rærcr4rˆÚreprr©r:ÚnamesrAÚstaterrrÚtest_easy_debuggingÍs  z)TestGetGeneratorState.test_easy_debuggingc Csâd dd„}|gd¢ƒ}| t |¡dgd¢dœ¡t|ƒ| t |¡dgd¢dddœ¡t|ƒ| t |¡dgd¢dddœ¡t|ƒ| t |¡dgd¢ddd d œ¡z t|ƒWntyÊYn0| t |¡i¡dS) Ncss$d}|D]}|dkrd}|VqdS)Nrr¹rLr)Úlstrrr;rrrrÚeachÖs z;TestGetGeneratorState.test_getgeneratorlocals..eachr)rrjr)rrjr;rrr¹rL)rrjr;rr)N©r¤r4Úgetgeneratorlocalsr]Ú StopIteration)r:rkZnumbersrrrÚtest_getgeneratorlocalsÕs8    ÿ  ÿÿ  ÿÿ  ÿÿ  z-TestGetGeneratorState.test_getgeneratorlocalscCsVdd„}|ƒ}| t |¡i¡z t|ƒWnty>Yn0| t |¡i¡dS)Ncss dVdSrirrrrrÚ yield_oneószFTestGetGeneratorState.test_getgeneratorlocals_empty..yield_onerl)r:rpr€rrrÚtest_getgeneratorlocals_emptyòs  z3TestGetGeneratorState.test_getgeneratorlocals_emptycCsH| ttjd¡| ttjdd„¡| ttjt¡| ttjd¡dS)NrcSsdSrÙrr“rrrrvÿrqzETestGetGeneratorState.test_getgeneratorlocals_error..)rr¹)r(r)r4rmr3rSrrrÚtest_getgeneratorlocals_errorýsz3TestGetGeneratorState.test_getgeneratorlocals_errorN)r1r@rArãr[r\r^r`rarcrirorqrrrrrrrV¡s rVc@sTeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dS)ÚTestGetCoroutineStatecs&tjdd„ƒ‰‡fdd„}|ƒ|_dS)NcsstdƒD] }|VqdSrWrMrXrrrÚnumber_coroutines z5TestGetCoroutineState.setUp..number_coroutinec“sˆƒIdHdSrrr©rtrrÚ coroutine sz.TestGetCoroutineState.setUp..coroutine)r_rv)r:rvrrurrãs  zTestGetCoroutineState.setUpcCs|j ¡dSr)rvrlrSrrrrãszTestGetCoroutineState.tearDowncCs t |j¡Sr)r4ZgetcoroutinestatervrSrrrÚ_coroutinestatesz%TestGetCoroutineState._coroutinestatecCs| | ¡tj¡dSr)r¤rwr4Z CORO_CREATEDrSrrrr\sz"TestGetCoroutineState.test_createdcCs"|j d¡| | ¡tj¡dSr)rvÚsendr¤rwr4ZCORO_SUSPENDEDrSrrrr^s z$TestGetCoroutineState.test_suspendedcCs@z|j d¡Wqty&Yq*Yq0q| | ¡tj¡dSr)rvrxrnr¤rwr4Ú CORO_CLOSEDrSrrrr`s   z2TestGetCoroutineState.test_closed_after_exhaustioncCsL| t¡|j t¡Wdƒn1s,0Y| | ¡tj¡dSr)r(rërvr+r¤rwr4ryrSrrrra%s *z;TestGetCoroutineState.test_closed_after_immediate_exceptioncCs@d ¡}|D].}tt|ƒ}| |t|ƒ¡| |t|ƒ¡q dS)Nz4CORO_CREATED CORO_RUNNING CORO_SUSPENDED CORO_CLOSEDrdrfrrrri*s  z)TestGetCoroutineState.test_easy_debuggingcshtjdd„ƒ‰ˆƒ‰d‡fdd„ }|ƒ}| t |¡dˆdœ¡| d¡| t |¡dˆddœ¡dS) Ncss dVdSrrrrrrÚgencoro3sz>TestGetCoroutineState.test_getcoroutinelocals..gencoroc“sd}ˆIdHdSrQrr€©rzrrrŸ8sz;TestGetCoroutineState.test_getcoroutinelocals..func)rrzrR)rrzr)N)r_rvr¤r4Zgetcoroutinelocalsrx)r:rŸrnrr{rÚtest_getcoroutinelocals2s  ÿ   ÿz-TestGetCoroutineState.test_getcoroutinelocalsN) r1r@rArãrãrwr\r^r`rarir|rrrrrss  rsc@s eZdZdS)Ú MySignatureNrtrrrrr}Dsr}c@s eZdZdS)Ú MyParameterNrtrrrrr~Isr~c@seZdZedd„ƒZdd„Zdd„Zdd„Zd d „Zd d „Z d d„Z dd„Z dd„Z e e ed¡dd„ƒƒZe e ed¡dd„ƒƒZe dd„ƒZdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Zd(d)„Zd*d+„Zd,d-„Zd.d/„Zd0d1„Ze ed¡d2d3„ƒZ e ed¡d4d5„ƒZ!d6d7„Z"d8d9„Z#d:d;„Z$dd?„Z&d@dA„Z'dBdC„Z(dDdE„Z)dFdG„Z*dHdI„Z+e ed¡dJdK„ƒZ,dLdM„Z-dNdO„Z.dPS)QÚTestSignatureObjectcKs@tj|fi|¤Ž}tdd„|j ¡Dƒƒ|j|jur8dn|jfS)NcssJ|]B}|j|j|jurdn|j|j|jur.dn|jt|jƒ ¡fVqdS).N)rArÚemptyÚ annotationrrÿr0)rûÚparamrrrÚ Tsû üz0TestSignatureObject.signature...)r4rIÚtupler%ÚvaluesÚreturn_annotationr€)rŸÚkwÚsigrrrrIQsûùzTestSignatureObject.signaturec CsÖtj}tj}| t|ƒƒd¡| t|ƒjƒd¡ddd„}t |¡}|jdj|j d}|jd j|j d}|jd }|jd }|jd } |jd } |jd} |||| | | fƒ|  t d¡"|||| | | fƒWdƒn1sæ0Y|  t d¡"||| || | fƒWdƒn1s&0Y|  t d¡"|| ||| | fƒWdƒn1sf0Y|  t d¡"|||| | | fƒWdƒn1s¦0Y| jd d} |  t d¡"|||| | | fƒWdƒn1sò0Y|  t d¡|||fƒWdƒn1s,0Y|  t d¡||||fƒWdƒn1sh0Y|  t d¡|||fƒWdƒn1s¢0Y|  t|ƒ  d¡¡|  dt|ƒv¡dS)Nú()zmappingproxy(OrderedDict())r…édc_sdSrr)ÚpoÚpkÚpodÚpkdÚkorr±rrrr&dsz7TestSignatureObject.test_signature_object..testr‹rrrŒrŽrrr±zwrong parameter order©rAzduplicate parameter namezfollows default argumentz .foor0F)Ú pickle_verÚsubclassr)rArÿ)r%r†T)rjrkr4rIr ÚpickleÚHIGHEST_PROTOCOLÚsubTestÚloadsÚdumpsr¤r~r)r*Ú collectionsÚ OrderedDictr%r}r‘r…r†r0rd) r:rZ foo_partialrˆÚverZ sig_pickledZmyparamZmyparamsZmysigrrrÚtest_signature_object_pickles. ,  ÿ ÿz0TestSignatureObject.test_signature_object_picklecCszdd„}t |¡}| t¡d|_Wdƒn1s80Y| t¡d|jd<Wdƒn1sl0YdS)NcSsdSrrr0rrrr&ªsz=TestSignatureObject.test_signature_immutability..testrr)r4rIr(r2rr)r%©r:r&rˆrrrÚtest_signature_immutability©s   $ z/TestSignatureObject.test_signature_immutabilitycCsdd„}| | |¡d¡dS)NcSsdSrrrrrrr&µsz9TestSignatureObject.test_signature_on_noarg..test©r.©r¤rI©r:r&rrrÚtest_signature_on_noarg´sz+TestSignatureObject.test_signature_on_noargcCs&dddœdd„}| | |¡d¡dS)Nrr©rr/cSsdSrrr€rrrr&ºsz9TestSignatureObject.test_signature_on_wargs..test))©r..Úpositional_or_keyword)r.rr«rr¦r§rrrÚtest_signature_on_wargs¹s ÿz+TestSignatureObject.test_signature_on_wargscCs@tttdœdd„}| | |¡ddtdfddtdfftf¡dS)N)rrr/cSsdSrrr€rrrr&Âsz;TestSignatureObject.test_signature_on_wkwonly..testr.Ú keyword_onlyr)Úfloatrr™r¤rIr§rrrÚtest_signature_on_wkwonlyÁs   ÿþÿz-TestSignatureObject.test_signature_on_wkwonlyc CsJdddœdddtdœdd „}| | |¡d d d d dddtdffdf¡dS)NrYr)rrrÚbaz)rrrRr±c_sdSrr)rrrRrrr±rrrr&Êsz@TestSignatureObject.test_signature_on_complex_args..testrª)rrYrr«)r.rÚvar_positional)rR.r°r­)rr.r­r±.Ú var_keyword)rY)r™r¤rIr§rrrÚtest_signature_on_complex_argsÉs  ûúÿz2TestSignatureObject.test_signature_on_complex_argscsœdd„‰dd„‰G‡‡fdd„dƒ}| | ˆ¡d¡| | ˆ¡d¡| | |j¡d¡| | |j¡d¡| | |j¡d¡| | |j¡d¡dS) NcWsdSrrrérrrÚtest_args_onlyÖszGTestSignatureObject.test_signature_without_self..test_args_onlyc_sdSrr©rr±rrrÚtest_args_kwargs_onlyÙszNTestSignatureObject.test_signature_without_self..test_args_kwargs_onlycsTeZdZedd„ƒZedd„ƒZe ed¡Z e ”d¡Z e ed¡Z e ”d¡Z dS)z:TestSignatureObject.test_signature_without_self..AcWsdSrrrérrrÚtest_classmethodÝszKTestSignatureObject.test_signature_without_self..A.test_classmethodcWsdSrrrérrrÚtest_staticmethodászLTestSignatureObject.test_signature_without_self..A.test_staticmethodrN) r1r@rArSr·rRr¸rjr rrrrr©r¶r´rrrôÜs     rô©)©r..r±.©)r»©r±..r².)r¤rIrrrrrLrr¹rÚtest_signature_without_selfÕs* ÿ ÿÿÿÿÿz/TestSignatureObject.test_signature_without_selfr5csºddl}‡fdd„}‡fdd„}||jƒ‰‡fdd„}ˆ |dƒd ¡ˆ |d ƒd ¡ˆ |d ƒd ¡ˆ |dƒd¡ˆ |dƒd¡ˆ |dƒd¡ˆ |dƒd¡ˆ |dƒd¡ˆ |dƒtj¡ˆ dˆj¡|tƒ|tj j ƒt  t   ¡¡}||j ƒ|t jƒ|djƒ|tjƒ|ijƒ|tjƒ|tjƒ|djƒ|tjƒˆ td¡(Gdd„dƒ}||ƒƒWdƒn1sŽ0Y|tjƒ|tjƒ||jƒdS)Nrcs<t |¡}ˆ t|tjƒ¡ˆ t|j ¡ƒdj d¡|S)zAUse this to test unbound methods (things that should have a self)rr:) r4rIr0rdr+r¤r}r%r…rA©rrIrSrrÚtest_unbound_methodþs zKTestSignatureObject.test_signature_on_builtins..test_unbound_methodcsBt |¡}ˆ t|tjƒ¡|jr>ˆ t|j ¡ƒdj d¡|S)zRUse this to test bound methods or normal callables (things that don't expect self)rr:) r4rIr0rdr+r%r1r}r…rAr¿rSrrÚ test_callable s  zETestSignatureObject.test_signature_on_builtins..test_callablecs ˆj|jSr)r%rr)rIrrr' rqz9TestSignatureObject.test_signature_on_builtins..prNr?rsbytesrÕg…ëQ¸ @r&é#ÚnrðTr×FÚlocalr¹r\r<sabczno signature foundc@seZdZeZdS)zDTestSignatureObject.test_signature_on_builtins..ThisWorksNowN)r1r@rAr`rrrrrÚ ThisWorksNow6 srÅ)r@rAr¤r\Úmaxsizer‰r%r~r8r9r:r;ÚStringIOÚbytesÚ maketransr†Úfromkeysr`rr™r_ÚminrœrÚ __delitem__r3r¥Z#docstring_with_signature_but_no_doc)r:r@rÀrÁr'rÕrÅrrrÚtest_signature_on_builtinsøsB              *  z.TestSignatureObject.test_signature_on_builtinscCsdddl}|j}dd„}||ƒ}| t |¡t |¡¡tdœdd„}| tj|ddt |¡¡dS) Nrcs t ˆ¡tdœ‡fdd„ ƒ}|S)N©r/csˆ|i|¤ŽSrrrµrÕrrÚwrapperI sz\TestSignatureObject.test_signature_on_decorated_builtins..decorator..wrapper)rjrr™©rŸrÏrrÕrÚ decoratorH szKTestSignatureObject.test_signature_on_decorated_builtins..decoratorrÎc_sdSrrrµrrrÚ wrapper_likeS rqzNTestSignatureObject.test_signature_on_decorated_builtins..wrapper_likeF©Zfollow_wrapped)r@rAr¤r4rIr™)r:r@rŸrÑZdecorated_funcrÒrrrÚ$test_signature_on_decorated_builtinsA s ÿ ÿþz8TestSignatureObject.test_signature_on_decorated_builtinscCszddl}| td¡t |j¡Wdƒn1s60Y| td¡t t¡Wdƒn1sl0YdS)Nrzno signature found for builtin)r@rœrr4rIrDr)r:r@rrrÚ'test_signature_on_builtins_no_signatureX sÿ*ÿz;TestSignatureObject.test_signature_on_builtins_no_signaturecCs:| td¡t d¡Wdƒn1s,0YdS)Núis not a callable objectr…)rœr)r4rIrSrrrÚtest_signature_on_non_functionc sz2TestSignatureObject.test_signature_on_non_functioncsddœdd„}Gdd„dƒ}tj |¡}tj ||ƒ¡}| ||¡t ||ƒ¡}| ||¡||ƒ}|`| | |¡d¡tj‰‡fdd „}tj  d |¡P||ƒ}|  t |¡¡d|_ |  t |¡¡| t |¡|¡Wdƒn1sò0YdS) NT©Úkwonlyc_sdSrr©rrrÙZ kwonlyreqrr±rrrrŸh szITestSignatureObject.test_signature_from_functionlike_object..funcc@seZdZdd„Zdd„ZdS)zMTestSignatureObject.test_signature_from_functionlike_object..funclikecSs2|j|_|j|_|j|_|j|_|j|_||_dSr)r1r@r1Ú __defaults__Ú__kwdefaults__rŸ)r:rŸrrrr­p s zVTestSignatureObject.test_signature_from_functionlike_object..funclike.__init__c_s|j|i|¤ŽSrrÕr°rrrrx szVTestSignatureObject.test_signature_from_functionlike_object..funclike.__call__N)r1r@rAr­rrrrrÚfunclikek srÝr¼cst|dƒrdSˆ|ƒS)NÚ _builtinmockT©r^)r=©Z _orig_isdescrrÚ_isdesc s zLTestSignatureObject.test_signature_from_functionlike_object.._isdesczinspect.ismethoddescriptor) r4r+Ú from_callabler¤rIrÛr˜r«ZmockZpatchr9rÞr0)r:rŸrÝZsig_funcZ sig_funclikeZflráZ builtin_funcrràrÚ'test_signature_from_functionlike_objectg s(    ÿ z;TestSignatureObject.test_signature_from_functionlike_objectcs:ddœdd„‰G‡fdd„dƒ}| tt |¡ƒd¡dS)NTrØc_sdSrrrÚrrrrŸ  szCTestSignatureObject.test_signature_functionlike_class..funccs2eZdZdd„Z”jZ”jZ”jZ”jZ”jZdS)zGTestSignatureObject.test_signature_functionlike_class..funclikecSsdSrr)r:Zmarkerrrrr­¤ szPTestSignatureObject.test_signature_functionlike_class..funclike.__init__N)r1r@rAr­r@r1rÛrÜrrÕrrrÝ£ s rÝz(marker))r¤rr4rI)r:rÝrrÕrÚ!test_signature_functionlike_classœ s z5TestSignatureObject.test_signature_functionlike_classcCsŒGdd„dƒ}| | |ƒj¡dtf¡| | |ƒj¡d¡| | |¡d¡| td¡| |ƒ¡Wdƒn1s~0YdS)Nc@s4eZdZdd„Zd edœdd„Zdd„Zd d „Zd S) z:TestSignatureObject.test_signature_on_method..TestcWsdSrrrérrrr­± szCTestSignatureObject.test_signature_on_method..Test.__init__rrÎcSsdSrr©r:rrrrrrP³ sz=TestSignatureObject.test_signature_on_method..Test.m1cWsdSrrrérrrÚm2µ sz=TestSignatureObject.test_signature_on_method..Test.m2cSsdSrrr0rrrr· szCTestSignatureObject.test_signature_on_method..Test.__call__N)r)r1r@rAr­r™rPrærrrrrr²° sr²©©r..r«)rr.r«rºzinvalid method signature)r¤rIrPr™rærœr)r:r²rrrÚtest_signature_on_method¯ s þÿÿ ÿz,TestSignatureObject.test_signature_on_methodcCs>Gdd„dƒ}t |ƒj¡dd„ƒ}| | |¡dtf¡dS)Nc@seZdZdedœdd„ZdS)zETestSignatureObject.test_signature_wrapped_bound_method..TestrrÎcSsdSrrrårrrrPÍ szHTestSignatureObject.test_signature_wrapped_bound_method..Test.m1N)r)r1r@rAr™rPrrrrr²Ì sr²c_sdSrrrµrrrÚm1dÏ szDTestSignatureObject.test_signature_wrapped_bound_method..m1drç)rjrrPr¤rIr™)r:r²rêrrrÚ#test_signature_wrapped_bound_methodÊ s   þÿz7TestSignatureObject.test_signature_wrapped_bound_methodcCsDGdd„dƒ}|ƒj}| | |¡d¡|j}| | |¡d¡dS)Nc@seZdZeddœdd„ƒZdS)z?TestSignatureObject.test_signature_on_classmethod..TestrrÍcSsdSrr)rœrrrrrrÙ szCTestSignatureObject.test_signature_on_classmethod..Test.fooN)r1r@rArSrrrrrr²Ø sr²))rè)rr.r­.©rr¤rI©r:r²ÚmethrrrÚtest_signature_on_classmethod× s ÿ ÿz1TestSignatureObject.test_signature_on_classmethodcCsDGdd„dƒ}|ƒj}| | |¡d¡|j}| | |¡d¡dS)Nc@seZdZedd„ƒZdS)z@TestSignatureObject.test_signature_on_staticmethod..TestcSsdSrr)rœrrrrrë szDTestSignatureObject.test_signature_on_staticmethod..Test.fooN)r1r@rArRrrrrrr²ê sr²)))rœ..r«)r..r­.rìrírrrÚtest_signature_on_staticmethodé s ÿ ÿz2TestSignatureObject.test_signature_on_staticmethodc Csˆddlm}tj}dd„}| | ||ƒ¡d¡| td¡ t ||dƒ¡Wdƒn1sb0Y| td¡"t ||dd¡Wdƒn1s 0Yd d„}| | ||ƒ¡d ¡| | ||dƒ¡d ¡| | ||dd d ¡d¡| | ||dd d¡d¡| | ||ddd d¡d¡| | ||dd¡d¡dd„}| | ||dƒ¡d¡| | ||dd¡d¡| | ||dd dƒ¡d¡| | ||dd ddd¡d¡| | ||dd dddd¡d¡| | ||dd¡d¡| | ||ddd¡d¡tddœd d„}t |¡}|_ | | |||dƒƒ¡d!d"d#td$ffdf¡| | |||dƒd ƒ¡d"d#td$ffdf¡t |||dƒd ƒ¡}d%d&„}|||d'dd(d}| | |¡d)¡| |ƒd(¡d*d&„}|||dd(dd+d}| | |¡d,¡| |d'd d-¡d.d&„}|||d(d(d/d'd+d0}| | |¡d1¡t |¡j d2d3d4}| ||j i|j ¤Žd5¡dGd6d&„}||d7d }t |¡j d3d}| ||j i|j ¤Žd8¡t |¡  d3d9¡}| ||j i|j ¤Žd:¡t |¡j d3d9d}| ||j i|j ¤Žd:¡t |¡j d9d}| ||j i|j ¤Žd;¡||d'd(d}t |¡  d9¡}| ||j i|j ¤Žd<¡d=d&„}t |¡}|j  ¡} | d>j|jd?| d><| d@j|jd?| d@<t |  ¡¡|_ t |¡}| t|ƒdA¡| | ||dƒ¡dB¡| | ||dd ƒ¡dC¡| | ||dd dƒ¡dD¡| | ||dd dd ¡dE¡| | ||ddd ¡dF¡dS)HNr)rkcSsdSrrrrrrr& sz;TestSignatureObject.test_signature_on_partial..testr¥úhas incorrect argumentsrr0cSsdSrrrrrrr& s))rª©r..r«©r..r­©rÕ..r­.))ròrórô.rr•))rò©rr.r­rô.)rr))rª©rr.r­rõrô.))rörõrô.))©rr.r­©r..r­rórô.c_sdSrr)rrrr±rrrr&5 s))r»rør½.))r÷rør½.r¹TrF)r&r))r»©rr.r­r½.©r))rªr»rùr½.)rr&r…r–cSsdSrrrürrrr&d sròr.r«cSs|Srrr0rrrrt sz:TestSignatureObject.test_signature_on_partial..foorYé)))rrû.r­.cSs |||fSrrrürrrr~ sre)))rre.r­ró.)rrerYcSs ||||fSrrrrrrrˆ s)rÕr)rrÕ))rª)rrY.r­)rrû.r­)rÕre.r­.éÈrËr€)rürËrûrecSs |||fSrrrürrrr• sé )rËrrýrL)rËrLrý)rrLrý)rLrYrûc[sdSrr)rrrrÕr±rrrrª srrrz(a, b, /, c, d, **kwargs)))©r..Zpositional_only©r..r«©rÕ..r«r½.))rÿrr½.))rr½.))©rr¹.r­rôr½.))rþrrôr½.)rrr¹)rjrkr4r)r¤rIrœrr™r,Úbindrr±r%Úcopyr‘r*r+r…r) r:rkr)r&rˆZpsigrZ_fooÚbaÚparamsrrrÚtest_signature_on_partialû sî .0ÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿþÿ ÿÿ ÿ ÿ ÿ     ÿÿÿÿÿz-TestSignatureObject.test_signature_on_partialcs¼ddlm‰G‡fdd„dƒ}| td¡t |j¡Wdƒn1sL0YG‡fdd„dƒ}| | |j¡d¡| | |ƒj¡d¡G‡fd d„dƒ}| | |j¡d ¡dS) Nr©r cseZdZdd„Z”eƒZdS)úATestSignatureObject.test_signature_on_partialmethod..SpamcSsdSrrrrrrr&× súFTestSignatureObject.test_signature_on_partialmethod..Spam.testN©r1r@rAr&rrrrrÚSpamÖ sr rñcs&eZdZddœdd„Z”eddZdS)rrRrÎcSsdSrr)Úitrrrrrr&ß sr rr•Nr rrrrr Þ s)))r ..r«rª©rr.r­rR))rªr rRcs$eZdZddœdd„Z”edƒZdS)rÚannorScSsdSrrrrrrr&ï sr rN)r1r@rAr&rØrrrrr î s)))r:.rr«.) rjr rœrr4rIrr¤rØ)r:r rrrÚtest_signature_on_partialmethodÓ s *ÿÿÿz3TestSignatureObject.test_signature_on_partialmethodcCs(dd„}d|_| tt |¡ƒd¡dS)NcSsdSrrr0rrrrù rqzETestSignatureObject.test_signature_on_fake_partialmethod..foorRz(a))Ú_partialmethodr¤rr4rI©r:rrrrÚ$test_signature_on_fake_partialmethodø sz8TestSignatureObject.test_signature_on_fake_partialmethodcsÖddl‰‡fdd„‰G‡fdd„dƒ}| | |j¡d¡| | |ƒj¡d¡| |j|jdd d ¡‡fd d„‰G‡fd d„dƒ}| | |j¡d¡| | |ƒj¡d ¡dd„}|j|_| | |¡d¡dS)Nrcs ˆ ˆ¡tdœ‡fdd„ ƒ}|S)NrÎcsˆ|i|¤ŽSrrrµrÕrrrÏ súSTestSignatureObject.test_signature_on_decorated..decorator..wrapper)rr™rЩrjrÕrrÑ szBTestSignatureObject.test_signature_on_decorated..decoratorcseZdZ”dd„ƒZdS)ú.FoocSsdSrr©r:rrrrrr sz@TestSignatureObject.test_signature_on_decorated..Foo.barN)r1r@rArr©rÑrrr  sr ))©r:..r«rªrò.))rªrò.FrÓr¼csNˆ ˆ¡tdœ‡fdd„ ƒ}t ˆ¡}t|j ¡ƒdd…}|j|d|_|S)NrÎcsˆdg|¢Ri|¤ŽSrMrrµrÕrrrÏ srrr') rr™r4rIr„r%r…r‘r,)rŸrÏrˆÚ new_paramsrrÕrrÑ s  cseZdZ”dd„ƒZdS)rcSsdSrrrrrrr( szETestSignatureObject.test_signature_on_decorated..Foo.__call__N©r1r@rArrrrrr ' s©)rò.cSsdSrrrrrrÚwrapped_foo_call6 szITestSignatureObject.test_signature_on_decorated..wrapped_foo_call)rjr¤rIrrÚ __wrapped__)r:r rr)rÑrjrÚtest_signature_on_decoratedý s2 ÿÿÿ ÿÿ ÿz/TestSignatureObject.test_signature_on_decoratedcCs>Gdd„dƒ}| | |¡d¡Gdd„dtƒ}Gdd„d|d}| | |¡d¡Gdd„dtƒ}Gd d„d|d}| | |¡d ¡| | |¡d ¡Gd d „d tƒ}Gdd„dt|d}Gdd„d|d}| | |¡d ¡| | |¡d¡| | |¡d ¡Gdd„dtƒ}Gdd„d|d}| | |¡d¡dS)Nc@seZdZdd„ZdS)ú6TestSignatureObject.test_signature_on_class..CcSsdSrr©r:rrrrr­B sú?TestSignatureObject.test_signature_on_class..C.__init__N©r1r@rAr­rrrrr„A sr„©)rª.c@seZdZdd„ZdS)ú7TestSignatureObject.test_signature_on_class..CMcSsdSrr)rœrrrrrJ sz@TestSignatureObject.test_signature_on_class..CM.__call__Nrrrrrr4I sr4c@seZdZdd„ZdS)rcSsdSrr©r:rrrrr­M sr!Nr"rrrrr„L sr“cs"eZdZddœ‡fdd„ Z‡ZS)r$rr©cstƒ ||||¡Sr©rÞr"©ÚmclsrAÚbasesÚdctrrßrrr"U sú?TestSignatureObject.test_signature_on_class..CM.__new__©r1r@rAr"rærrrßrr4T sc@seZdZdd„ZdS)rcSsdSrrr%rrrr­X sr!Nr"rrrrr„W sr))©rA..r«©r)..r«©r*..r«)rr.r­.cs*eZdZddœ‡fdd„ Zdd„Z‡ZS)z8TestSignatureObject.test_signature_on_class..CMMrr©cstƒ ||||¡Srr&r'rßrrr"g sz@TestSignatureObject.test_signature_on_class..CMM.__new__cSs t|||ƒSr)r`)rœÚnmÚbsÚdtrrrri szATestSignatureObject.test_signature_on_class..CMM.__call__)r1r@rAr"rrærrrßrÚCMMf sr3cs"eZdZddœ‡fdd„ Z‡ZS)r$r©rcstƒ ||||¡Srr&)r(rAr)r*rrßrrr"l sr+r,rrrßrr4k sc@seZdZdd„ZdS)rcSsdSrrr%rrrr­o sr!Nr"rrrrr„n s)))r0..r«)r1..r«)r2..r«.cs"eZdZddœ‡fdd„ Z‡ZS)r$rr4cstƒ |||¡Sr)rÞr­)rœrAr)r*rrßrrr­„ sz@TestSignatureObject.test_signature_on_class..CM.__init__)r1r@rAr­rærrrßrr4ƒ sc@seZdZdd„ZdS)rcSsdSrrr%rrrr­‡ sr!Nr"rrrrr„† s))r-r.r/)rr.r­.)r¤rIr`)r:r„r4r3rrrÚtest_signature_on_class@ sD ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿz+TestSignatureObject.test_signature_on_classcCsêGdd„dƒ}| tt |¡ƒd¡Gdd„d|ƒ}| tt |¡ƒd¡Gdd„dtƒ}Gdd„d|ƒ}| td¡"| t |¡d¡Wdƒn1sž0Y| td¡"| t |¡d¡Wdƒn1sÜ0YdS) Nc@s eZdZdS©zCTestSignatureObject.test_signature_on_class_without_init..CNrtrrrrr„• rqr„r‰c@s eZdZdS©zCTestSignatureObject.test_signature_on_class_without_init..DNrtrrrrrö— rqröc@s eZdZdSr6rtrrrrr„› rqc@s eZdZdSr7rtrrrrröœ rqzcallable.*is not supported)r¤rr4rIr`rœr)r:r„rörrrÚ$test_signature_on_class_without_init‘ s0z8TestSignatureObject.test_signature_on_class_without_initcCsÞd}| tt tj¡ƒ|¡Gdd„dtjƒ}Gdd„dƒ}Gdd„d||ƒ}| tt |¡ƒ|¡| tt |¡ƒ|¡Gdd „d |ƒ}| tt |¡ƒd ¡Gd d „d tƒ}Gd d„d||d}| tt |¡ƒd¡dS)Nz=(file, protocol=None, fix_imports=True, buffer_callback=None)c@s eZdZdS)z>TestSignatureObject.test_signature_on_builtin_class..PNrtrrrrr“© rqr“c@s eZdZdS)zGTestSignatureObject.test_signature_on_builtin_class..EmptyTraitNrtrrrrÚ EmptyTraitª rqr9c@s eZdZdS)z?TestSignatureObject.test_signature_on_builtin_class..P2NrtrrrrÚP2« rqr:c@seZdZdd„ZdS)z?TestSignatureObject.test_signature_on_builtin_class..P3cSsdSrr)r:rRrrrr­° szHTestSignatureObject.test_signature_on_builtin_class..P3.__init__Nr"rrrrÚP3¯ sr;r(c@seZdZdd„ZdS)zBTestSignatureObject.test_signature_on_builtin_class..MetaPcSsdSrr)rœrrrrrrµ szKTestSignatureObject.test_signature_on_builtin_class..MetaP.__call__NrrrrrÚMetaP´ sr<c@s eZdZdS)z?TestSignatureObject.test_signature_on_builtin_class..P4NrtrrrrÚP4· sr=r“z (foo, bar))r¤rr4rIr8r9r`)r:r÷r“r9r:r;r<r=rrrÚtest_signature_on_builtin_class¢ sz3TestSignatureObject.test_signature_on_builtin_classcCsøGdd„dƒ}| | |ƒ¡d¡Gdd„dƒ}| td¡t |ƒ¡Wdƒn1s^0YGdd„d||ƒ}| | |ƒ¡d¡Gd d „d ƒ}d d „|_| | |¡d¡||_| td ¡| |¡Wdƒn1sê0YdS)Nc@seZdZdd„ZdS)zCTestSignatureObject.test_signature_on_callable_objects..FoocSsdSrrr rrrr½ szLTestSignatureObject.test_signature_on_callable_objects..Foo.__call__Nrrrrrr ¼ sr r#c@s eZdZdS)zDTestSignatureObject.test_signature_on_callable_objects..SpamNrtrrrrr Ä sr rÖc@s eZdZdS)zCTestSignatureObject.test_signature_on_callable_objects..BarNrtrrrrÚBarÉ sr?c@s eZdZdS)zGTestSignatureObject.test_signature_on_callable_objects..WrappedNrtrrrrÚWrappedÐ sr@cSsdSrrr0rrrrvÒ rqzHTestSignatureObject.test_signature_on_callable_objects..ú wrapper loop)r¤rIrœr)r4rr)r:r r r?r@rrrÚ"test_signature_on_callable_objects» s&ÿ*ÿ  ÿz6TestSignatureObject.test_signature_on_callable_objectscCs| | ddd„¡d¡dS)NrYcSs|Srrr0rrrrvÜ rqz?TestSignatureObject.test_signature_on_lambdas..)))rrY.r«.)rYr¦rSrrrÚtest_signature_on_lambdasÛ sÿz-TestSignatureObject.test_signature_on_lambdascCsLttdœdd„}| t |¡dk¡| t |¡dk¡| t |¡tk¡| t |¡tk¡ttdœdd„}| t |¡t |¡k¡| t |¡t |¡k¡| tt |¡ƒtt |¡ƒ¡ttdœdd„}| t |¡t |¡k¡| t |¡t |¡k¡|  tt |¡ƒtt |¡ƒ¡tdœd d„}| t |¡t |¡k¡| t |¡t |¡k¡|  tt |¡ƒtt |¡ƒ¡ddœttdœd d„}| t |¡t |¡k¡| t |¡t |¡k¡|  tt |¡ƒtt |¡ƒ¡td œd d„}| t |¡t |¡k¡| t |¡t |¡k¡|  tt |¡ƒtt |¡ƒ¡ttdœd d„}| t |¡t |¡k¡| t |¡t |¡k¡|  tt |¡ƒtt |¡ƒ¡ttdœdd„}| t |¡t |¡k¡| t |¡t |¡k¡|  tt |¡ƒtt |¡ƒ¡dd„}dd„}| t |¡t |¡k¡| t |¡t |¡k¡| tt |¡ƒtt |¡ƒ¡ddœdd„}ddœdd„}| t |¡t |¡k¡| t |¡t |¡k¡| tt |¡ƒtt |¡ƒ¡ddœdd„}ddœdd„}| t |¡t |¡k¡| t |¡t |¡k¡| tt |¡ƒtt |¡ƒ¡dd„}ddœdd„}| t |¡t |¡k¡| t |¡t |¡k¡|  tt |¡ƒtt |¡ƒ¡ddœtdœdd„}ddœtdœdd„}| t |¡t |¡k¡| t |¡t |¡k¡| tt |¡ƒtt |¡ƒ¡dS)Nr©cSsdSrrr€rrrrá rqz8TestSignatureObject.test_signature_equality..foor…cSsdSrrr€rrrrç rqz8TestSignatureObject.test_signature_equality..barcSsdSrrr€rrrrí rqrúcSsdSrrr€rrrró rqcSsdSrrr€rrrrù rqrÎcSsdSrr©rrrrrrÿ rqcSsdSrrr€rrrr rqcSsdSrr©rrrrrrR rqz9TestSignatureObject.test_signature_equality..spamcSsdSrrrürrrr rqcSsdSrr©rrrrrrr rqrr0cSsdSrrrürrrr rqcSsdSrrrFrrrr rqcSsdSrr©Úposrrrrrrr rqcSsdSrr©rHrrrrrrr rqcSsdSrrrGrrrr% rqcSsdSrrrIrrrr& rq©r±c_sdSrr)rHrrrrr±rrrr, rqc_sdSrr)rHrrrrr±rrrr- rq) r™r®r9r4rIr0r r¤Úhashr1)r:rrrRrrrÚtest_signature_equalityà s¤ÿÿÿÿÿÿÿÿÿÿÿÿz+TestSignatureObject.test_signature_equalitycCstj}tj}dd„}t |¡}||d|jƒgd}| t|ƒt|ƒ¡| t|ƒt|jddƒ¡ddœd d „}| t|ƒtt |¡ƒ¡ifd d„}|  t d ¡tt |¡ƒWdƒn1sÆ0Yidœd d„}|  t d ¡tt |¡ƒWdƒn1s0YdS)NcSsdSrrr0rrrr7 rqz8TestSignatureObject.test_signature_hashable..foorr'rR©r†rrÎcSsdSrrr0rrrr@ rqz8TestSignatureObject.test_signature_hashable..barcSsdSrrr0rrrrC rqúunhashable typecSsdSrrr0rrrrG rq) r4r+r)rIÚPOSITIONAL_OR_KEYWORDr¤rKr1r‘rœr))r:r’r“rÚfoo_sigZ manual_sigrrrrÚtest_signature_hashable3 s"  ÿ ,z+TestSignatureObject.test_signature_hashablecCs~d ddœtddœdd„}| tt |¡ƒd¡d ddœtddœdd„}| tt |¡ƒd ¡d d„}| tt |¡ƒd ¡dS)Nrr•r…r.c[sdSrr©rrrr±rrrrL sz3TestSignatureObject.test_signature_str..fooz*(a: int = 1, *, b, c=None, **kwargs) -> 42c_sdSrr)rrrrr±rrrrQ sz.(a: int = 1, *args, b, c=None, **kwargs) -> 42cSsdSrrrrrrrV sr‰)r)r)r™r¤rr4rIrrrrÚtest_signature_strK sÿÿz&TestSignatureObject.test_signature_strcCsÞtj}tj}dd„}t |¡}t|j ¡ƒ}|dj|jd|d<|j|d|_ |  t t |¡ƒd¡|  t ||d|jƒgdƒd¡|  t ||d|jƒ|d |j ƒgdƒd ¡|  t ||d|jƒ|d |j ƒgdƒd ¡dS) Nc[s||fSrr)Úa_porr±rrrr&^ szDTestSignatureObject.test_signature_str_positional_only..testrrr'z(a_po, /, *, b, **kwargs)rz(foo, /)rz(foo, /, **bar)z(foo, /, *bar))r4r)r+rIr}r%r…r‘r*r,r¤rrÚVAR_POSITIONAL)r:r“r’r&rˆrrrrÚ"test_signature_str_positional_onlyZ s2 ÿÿ  þý  þýz6TestSignatureObject.test_signature_str_positional_onlycCs€ddœdd„}t |¡}|jdd}| |jd¡|j|jd}| |j|j¡|jdd}| |jd¡| |t |¡¡dS)Nr…rÎcSsdSrrrrrrr&w sz=TestSignatureObject.test_signature_replace_anno..testrM)r4rIr‘r½r†r€r¤r£rrrÚtest_signature_replace_annov s   z/TestSignatureObject.test_signature_replace_annocCsRGdd„dƒ}Gdd„d|ƒ}| | |j¡d¡| | |j¡| |j¡¡dS)Nc@s$eZdZd ddœdddœdd„ZdS) zFTestSignatureObject.test_signature_on_mangled_parameters..Spamrr¹)Ú _Spam__p2r)Ú _Spam__p1rXcSsdSrr)r:rYrXrrrr… szJTestSignatureObject.test_signature_on_mangled_parameters..Spam.fooN)rrrrrrr „ sr c@s eZdZdS)zETestSignatureObject.test_signature_on_mangled_parameters..HamNrtrrrrÚHam‡ srZ))r)rYrrr«)rXr¹rr­.)r¤rIr)r:r rZrrrÚ$test_signature_on_mangled_parametersƒ sÿ ÿz8TestSignatureObject.test_signature_on_mangled_parameterscCs:Gdd„dtjƒ}ddœdd„}| |¡}| ||¡dS)Nc@s eZdZdS)zPTestSignatureObject.test_signature_from_callable_python_obj..MySignatureNrtrrrrr}” rqr}rrúcSsdSrrr€rrrr• rqzHTestSignatureObject.test_signature_from_callable_python_obj..foo©r4r+râÚassertIsInstance©r:r}rrPrrrÚ'test_signature_from_callable_python_obj“ s z;TestSignatureObject.test_signature_from_callable_python_objcCs:Gdd„dtjƒ}Gdd„dƒ}| |¡}| ||¡dS)Nc@s eZdZdS)zKTestSignatureObject.test_signature_from_callable_class..MySignatureNrtrrrrr}› rqr}c@s eZdZdS)zCTestSignatureObject.test_signature_from_callable_class..fooNrtrrrrrœ rqrr\r^rrrÚ"test_signature_from_callable_class™ s z6TestSignatureObject.test_signature_from_callable_classcCs.Gdd„dtjƒ}| tj¡}| ||¡dS)Nc@s eZdZdS)zQTestSignatureObject.test_signature_from_callable_builtin_obj..MySignatureNrtrrrrr}£ rqr})r4r+râr8r9r])r:r}rˆrrrÚ(test_signature_from_callable_builtin_obj  s z.cSsdSrr)rÊrŠrrrrv´ rq)r4rIr%r1)r:Zp1Úp2rrrÚ#test_signater_parameters_is_ordered² sz7TestSignatureObject.test_signater_parameters_is_orderedN)/r1r@rArRrIr”r¢r¤r¨r¬r¯r³r¾rr«rNr rÍrÔrÕr×rãrärérërïrðrrrrr5r8r>rBrCrLrQrSrVrWr[r_r`rarbrdrrrrrPsv 0  #ÿ Fÿ  5 Y%CQÿ ÿ  S ÿ  rc@sPeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Ze d d„ƒZ dd„Z dS)ÚTestParameterObjectcCsltj}| |j|jko:|jko:|jko:|jkn¡| t |jƒd¡| dt |jƒv¡dS)Nr*) r4r)r0r*rOrUÚ KEYWORD_ONLYrr¤rre)r:r“rrrÚtest_signature_parameter_kinds¹ sÿÿÿ z2TestParameterObject.test_signature_parameter_kindscCsŒtjddtjjd}| |jd¡| |jd¡| |j|j¡| |j tjj¡|  t d¡ tjddddWdƒn1s„0Y|  t d¡"tjdtjj dWdƒn1sÂ0Y|  t d ¡"tjdtjj dWdƒn1s0Y|  t d ¡"tjd tjj dWdƒn1sB0Y|  t d ¡"tjd tjj dWdƒn1s‚0Y|  t d ¡$tjddtjj dWdƒn1sÄ0Y|  t d ¡$tjddtjjdWdƒn1s0Ytjddtjjd}|  t d ¡ |jtjjdWdƒn1sX0Y| t|ƒ d¡¡| dt|ƒv¡dS)NrrY©rrÿz)value '123' is not a valid Parameter.kindZ123znot a valid parameter namerQrúname must be a strzis not a valid parameter nameú$z.azcannot have default valuesrr…z is not a valid Parameter.kindr)r4r)rfrQr‘r¤rr€rAr1rœrr½rrOrÿ)r:r'rcrrrÚ test_signature_parameter_replace s<ÿ    ÿ,  ÿ.z4TestParameterObject.test_signature_parameter_replacecCsB| td¡"tjdtjjdWdƒn1s40YdS)Nrir)rœr)r4r)r*rSrrrÚ(test_signature_parameter_positional_only, sz.testr…útoo many positional argumentsrrYrNú)got an unexpected keyword argument 'spam'©r¤rtrœr)r§rrrÚtest_signature_bind_emptyN s*.ÿz+TestSignatureBind.test_signature_bind_emptycCsÒdd„}| | |¡dif¡| | |d¡dif¡| | |dd¡dif¡| |j|dd dd dif¡| |j|ddd dd dif¡| |j|d d dd d if¡| |j|dddd dd dif¡dS)Nc_s||fSrrrµrrrr&] sz7TestSignatureBind.test_signature_bind_var..testrrrùr©rrrr©rrYrér©r¤rtr§rrrÚtest_signature_bind_var\ s  ÿz)TestSignatureBind.test_signature_bind_varcCsVdd„}| | |ddd¡d¡| td¡"| |dddd¡Wdƒn1sT0Y| td ¡| |d¡Wdƒn1sŒ0Y| td ¡| |¡Wdƒn1sÂ0Ydd d„}| | |ddd¡d¡| | |dd¡d ¡ddd„}| |j|d ddd¡| |j|d dd¡| |j|d dd¡dS)NcSs |||fSrrrürrrr&j sz=TestSignatureBind.test_signature_bind_just_args..testrrr¹rrur z missing a required argument: 'b'z missing a required argument: 'a'rYcSs |||fSrrrürrrr&z s)rrrYcSs |||fSrrrürrrr& srýrD)rYrrýr0)rYrr¹rú)rrYr¹)rY)rrr¹rwr§rrrÚtest_signature_bind_just_argsi s&0ÿ*ÿ(  z/TestSignatureBind.test_signature_bind_just_argscCs6dd„}| | |¡d¡| | |ddd¡d¡dS)NcWs|Srrrérrrr&† szATestSignatureBind.test_signature_bind_varargs_order..testrrrr¹rrzr§rrrÚ!test_signature_bind_varargs_order… sz3TestSignatureBind.test_signature_bind_varargs_orderc Cs°ddd„}| | |ddddd¡d¡| | |dd¡d ¡| |j|ddd d ¡| |j|ddd d ¡| td ¡$|j|dddddWdƒn1s¢0YdS)Nr¹cWs ||||fSrr)rrrrrrrr& szDTestSignatureBind.test_signature_bind_args_and_varargs..testrrr r–)rrr¹)r r–)rrr¹rrE)rrr¹rrúz multiple values for argument 'c'r•)r¹rwr§rrrÚ$test_signature_bind_args_and_varargsŒ s ÿz6TestSignatureBind.test_signature_bind_args_and_varargscCs<dd„}| | |¡i¡| |j|ddddddœ¡dS)Nc[s|SrrrJrrrr&š sz?TestSignatureBind.test_signature_bind_just_kwargs..testrr©rrRrzr§rrrÚtest_signature_bind_just_kwargs™ s ÿz1TestSignatureBind.test_signature_bind_just_kwargsc CsJddd„}| | |dd¡dddif¡| |j|dddddddddddœf¡| |j|ddddd ddddddœf¡| |j|ddddd ddddddœf¡| |j|ddddd ddddddœf¡| |j|ddd ddd ddd dddœf¡| |j|ddd ddddd ddif¡| |j|dd ddd ddif¡dS)Nr¹c[s ||||fSrrrRrrrr&¢ szCTestSignatureBind.test_signature_bind_args_and_kwargs..testrrrrr)rrrrR)rrrrR)rrrRr )rrrrRr©rr–)rrr)r¹rzr§rrrÚ#test_signature_bind_args_and_kwargs¡ s. ÿÿÿÿÿÿ ÿz5TestSignatureBind.test_signature_bind_args_and_kwargsc Csdd„}| td¡| |d¡Wdƒn1s60Y| |j|ddd¡ddœdd„}| td¡| |d¡Wdƒn1s’0Ydd„}| |j|dd d d ¡| |j|d dd d ¡| td ¡"|j|d dddWdƒn1s 0Y| td¡| |dd ¡Wdƒn1sF0Y| td¡"|j|dd d d Wdƒn1s†0Y| td ¡"|j|dd ddWdƒn1sÆ0Y| td¡| |d¡Wdƒn1s0Ydd„}| |j|dd d dd if¡| |j|dd ddd if¡| |j|dd dddd ddif¡| |j|ddd ddd ddif¡| td¡ |j|dd dWdƒn1sÊ0Y| |j|dd ddddd dddœf¡dS)NcSs|Srrr©rrrr&¶ sz:TestSignatureBind.test_signature_bind_kwonly..testrurr©cSs|Srr)rrrrrrr&½ sz"missing a required argument: 'bar'cSs||fSrr©rrrrrr&à srr4ry)rrrvrY)rrrRr)rrRc[s |||fSrr)rrÚbinrrrr&Þ sr‚rR)rRrrz"missing a required argument: 'foo')rRr)rrƒrR)rƒrR)rœr)rtr¤r§rrrÚtest_signature_bind_kwonlyµ sdÿ*ÿ*ÿ2ÿ.ÿ2ÿ2ÿ, ÿ ÿÿ0ÿz,TestSignatureBind.test_signature_bind_kwonlyc Cs‚ddœdd„}t |¡}|jddddd d d }| t|j ¡ƒd d dddd d dœff¡| |jddd d d œ¡| |jd¡dS)NrŠ©rc_sdSrr)rrrrr±rrrr&í sz=TestSignatureBind.test_signature_bind_arguments..testrYrûrerlré<)rrrr±©rrY)r)rû)rrer±)rrr±)rYrû) r4rIrr¤r„Ú argumentsÚitemsr±r©r:r&rˆrrrrÚtest_signature_bind_argumentsì s ÿÿ ÿz/TestSignatureBind.test_signature_bind_argumentsc Cs¤tj}dddœdd„}t |¡}t t|j ¡ƒ¡}dD]}||j|j d||<q8|j|  ¡d }||_ |  |j |d d d d ddd d d d dif¡|  |  |d d ¡d d dddif¡|  |j |d d d d dd d dd d if¡| td¡&|j |d d d d ddWdƒn1s0Y| td¡"|j |d d d dWdƒn1sX0Y| td¡ |j |d d dWdƒn1s–0YdS)Nr¹r…rr4c[s||||||fSrr)rTÚb_poÚc_porrr±rrrr&ý szCTestSignatureBind.test_signature_bind_positional_only..test)rTrŒrrr'rrr r–ér‚zbut was passed as a keywordrY)rrrzparameter is positional only)r)rTrŒ)r¹r…)r4r)rIrŸr r„r%r‰r‘r*r…r,r¤rtrœr))r:r“r&rˆrrAZnew_sigrrrÚ#test_signature_bind_positional_onlyú s. ÿÿÿ62z5TestSignatureBind.test_signature_bind_positional_onlycCsPdd„}t |¡}| ddd¡}| |jd¡|jdddd}| |jd¡dS)NcSsdSrr)rr:rrrrr&szATestSignatureBind.test_signature_bind_with_self_arg..testrrr¹rr%)r4rIrr¤rrŠrrrÚ!test_signature_bind_with_self_args  z3TestSignatureBind.test_signature_bind_with_self_argcCs¢dd„}t |¡}| td¡|jdddWdƒn1sB0Ydd„}| |j|ddd d dif¡t |¡}|jdd}| |jd d dii¡dS) NcWs||fSrr©rrrrrr&$sz?TestSignatureBind.test_signature_bind_vararg_name..testz)got an unexpected keyword argument 'args'rrr‘c_s||fSrrrµrrrr&-srérrr±)r4rIrœr)rr¤rtrˆrŠrrrÚtest_signature_bind_vararg_name#s ÿ,  z1TestSignatureBind.test_signature_bind_vararg_namecCsHdd„}|jjd}t |i¡}ttdƒƒ}| | ||¡hd£¡dS)NcSsdd„tdƒDƒS)NcSsh|] }||’qSrr)rûrrrrÚ 9rqzWTestSignatureBind.test_signature_bind_implicit_arg..make_set..r–rMrrrrÚmake_set8szDTestSignatureBind.test_signature_bind_implicit_arg..make_setrr–>rrr rªr³)r@Ú co_constsr_Ú FunctionTypeÚiterr r¤rt)r:r”Z setcomp_codeZ setcomp_funcÚiteratorrrrÚ test_signature_bind_implicit_arg5s    z2TestSignatureBind.test_signature_bind_implicit_argcCsHdd„}t |¡}|jddd}| |jddi¡| d|j ¡¡dS)Nc[s|| |¡fSr)rH)rr±rrrrAszATestSignatureBind.test_signature_bind_posonly_kwargs..fooúpos-onlyÚkeywordr4r)rrš)r4rIrr¤r±rˆrˆr‰)r:rrˆÚresultrrrÚ"test_signature_bind_posonly_kwargs@s  z4TestSignatureBind.test_signature_bind_posonly_kwargsN)r1r@rArRrtrxr{r|r}r~r€rr„r‹rrr’rr™rrrrrrsG s"   7  rsc@s<eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd S)ÚTestBoundArgumentscCsPdd„}t |¡ d¡}| td¡t|ƒWdƒn1sB0YdS)NcSsdSrrr0rrrrMrqzITestBoundArguments.test_signature_bound_arguments_unhashable..foorrN)r4rIrrœr)rK©r:rrrrrÚ)test_signature_bound_arguments_unhashableLsz.foorrrcSsdSrrrúrrrrfrqzGTestBoundArguments.test_signature_bound_arguments_equality..barcSsdSrrr€rrrrkrqr€rE)r4rIrr0r9r rˆ) r:rrZba2Zba3rZba4rˆZba1rrrÚ'test_signature_bound_arguments_equalitySs2  z:TestBoundArguments.test_signature_bound_arguments_equalityc Cs–idœdddidœdd„}t |¡}|jdd id }ttjdƒD]N}|j|d .t t ||¡¡}|  ||¡WdƒqB1s†0YqBdS) Nr•rr…rr–c[sdSrrr—rrrrsrqzETestBoundArguments.test_signature_bound_arguments_pickle..foorûrer…)r˜) r4rIrr ršr›rœrržr¤)r:rrˆrr¡Z ba_pickledrrrÚ%test_signature_bound_arguments_picklers z8TestBoundArguments.test_signature_bound_arguments_picklecCsHidœdddidœdd„}t |¡}|jdd id }| t|ƒd ¡dS) Nr•rr…rr–c[sdSrrr—rrrr}rqzCTestBoundArguments.test_signature_bound_arguments_repr..foorûrer…z )r4rIrZ assertRegexre©r:rrˆrrrrÚ#test_signature_bound_arguments_repr|s z6TestBoundArguments.test_signature_bound_arguments_reprc CsTdidœddœdd„}t |¡}| d¡}| ¡| t|j ¡ƒdddd ifd ifg¡|jd dd dd }| ¡| t|j ¡ƒdddd ifd ddifg¡dd„}t |¡}| d¡}| ¡| t|j ¡ƒdg¡dd„}t |¡}| ¡}| ¡| t|j ¡ƒg¡ddd„}t |¡}| ¡}| ¡| t|j ¡ƒdg¡dS)Nrr•c_sdSrr)rrrrr‡rrrrƒrqzMTestBoundArguments.test_signature_bound_arguments_apply_defaults..foorû)rrû)rr)rrrr‡rYre)rÕr‡)rrû)r)rerÕcSsdSrrr€rrrr–rqcSsdSrrrrrrrŸrqrRcSsdSrrr0rrrr¦rq)rrR)r)rR) r4rIrZapply_defaultsr¤r}rˆr‰Z bind_partialr£rrrÚ-test_signature_bound_arguments_apply_defaults‚s@   þ þ   þ   z@TestBoundArguments.test_signature_bound_arguments_apply_defaultscCs.dd„}t |¡ d¡}| t|jƒt¡dS)NcSsdSrrr0rrrr­rqzMTestBoundArguments.test_signature_bound_arguments_arguments_type..foor)r4rIrr½r`rˆr†rŸrrrÚ-test_signature_bound_arguments_arguments_type¬sz@TestBoundArguments.test_signature_bound_arguments_arguments_typeN) r1r@rAr r¡r¢r¤r¥r¦rrrrržKs  *ržc@s$eZdZdd„Zdd„Zdd„ZdS)ÚTestSignaturePrivateHelperscCs:tj}| |dƒd¡| |dƒd¡| |dƒd¡dS)Nz($self)r:z ($self, obj)z($cls, /, obj)rœ)r4Z_signature_get_bound_paramr¤)r:ÚgetterrrrÚtest_signature_get_bound_param²sz:TestSignaturePrivateHelpers.test_signature_get_bound_paramcCs8t |¡\}}}| ||¡| ||¡| ||¡dSr)r4Z"_signature_strip_non_python_syntaxr¤)r:ÚinputZclean_signatureZself_parameterZlast_positional_onlyZcomputed_clean_signatureZcomputed_self_parameterZcomputed_last_positional_onlyrrrÚ_strip_non_python_syntax¹sý  z4TestSignaturePrivateHelpers._strip_non_python_syntaxcCst| dddd¡| dddd¡| dddd¡| dddd¡| d ddd¡| d d dd¡| dddd¡dS) NzZ($module, /, path, mode, *, dir_fd=None, effective_ids=False, follow_symlinks=True)zO(module, path, mode, *, dir_fd=None, effective_ids=False, follow_symlinks=True)rz($module, word, salt, /)z(module, word, salt)rz(x, y=None, z=None, /)z(x, y=None, z=None)z!(x, y=None, z = None )rå)r«rSrrrÚ&test_signature_strip_non_python_syntaxÃsTúüüüüüüzBTestSignaturePrivateHelpers.test_signature_strip_non_python_syntaxN)r1r@rAr©r«r¬rrrrr§±s r§c@s,eZdZee ed¡dd„ƒƒZdd„ZdS)ÚTestSignatureDefinitionsr5c Cstƒ}hd£}||O}dh}||O}hd£}||O}ddh}||O}tƒ}ttƒ}t| ¡ƒD]t\}} t| ƒspq^t| tƒrŒ||vrŒ| |¡||vr–q^|j |d |  t   | ¡¡Wdƒq^1sÈ0Yq^|D]>}|j |d|  | j¡WdƒqØ1s 0YqØdS)N>raÚvarsr]rcr r—ÚsliceÚround>ÚmaxrËÚ__build_class__r¶Ú breakpointrÝÚ __import__)rB)r3r®rrFr‰Úcallablerdr`rËrœÚassertIsNotNoner4rIrÚ__text_signature__) r:Z no_signatureZ needs_groupsZneeds_semantic_updateZ needs_varargsZnot_converted_yetZtypes_with_signaturesrJrAr=rrrÚtest_builtins_have_signaturesôs.  0z6TestSignatureDefinitions.test_builtins_have_signaturescCsVdd„}d|_t |¡}| |¡| t|ƒd¡d|_t |¡}| t|ƒd¡dS)Nc_sdSrrrµrrrrŸ)szNTestSignatureDefinitions.test_python_function_override_signature..funcz(($self, a, b=1, *args, c, d=2, **kwargs)z*(self, /, a, b=1, *args, c, d=2, **kwargs)z+($self, a, b=1, /, *args, c, d=2, **kwargs)z*(self, a, b=1, /, *args, c, d=2, **kwargs))r·r4rIr¶r¤r)r:rŸrˆrrrÚ'test_python_function_override_signature(s   z@TestSignatureDefinitions.test_python_function_override_signatureN) r1r@rArr«rNr r¸r¹rrrrr­ðs ÿ 1r­c@s eZdZdd„Zedd„ƒZdS)ÚNTimesUnwrappablecCs||_d|_dSr)rÃÚ_next)r:rÃrrrr­5szNTimesUnwrappable.__init__cCs2|jdkrtdƒ‚|jdur,t|jdƒ|_|jS)NrzUnwrapped too many timesr)rÃr6r»rºrSrrrr9s   zNTimesUnwrappable.__wrapped__N)r1r@rAr­r3rrrrrrº4srºc@s<eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd S)Ú TestUnwrapcCs.dd„}tjdd|ƒ}| t |¡|¡dS)NcSs||Srrr€rrrrŸDsz(TestUnwrap.test_unwrap_one..funcrû)rÆ)rjÚ lru_cacher½r4Úunwrap)r:rŸrÏrrrÚtest_unwrap_oneCszTestUnwrap.test_unwrap_onecCsPdd„}|}tdƒD]}t |¡dd„ƒ}q| |j|¡| t |¡|¡dS)NcSs||Srrr€rrrrŸJsz,TestUnwrap.test_unwrap_several..funcrYcSsdSrrrrrrrÏNsz/TestUnwrap.test_unwrap_several..wrapper)r rjrrQrr½r4r¾)r:rŸrÏÚ__rrrÚtest_unwrap_severalIs  zTestUnwrap.test_unwrap_severalcCsTdd„}t |¡dd„ƒ}t |¡dd„ƒ}d|_tj|dd „d }| ||¡dS) NcSs||Srrr€rrrÚfunc1Usz#TestUnwrap.test_stop..func1cSsdSrrrrrrÚfunc2Wsz#TestUnwrap.test_stop..func2cSsdSrrrrrrrÏZsz%TestUnwrap.test_stop..wrapperrcSs t|dƒS)NÚ stop_hererßrrrrrv_rqz&TestUnwrap.test_stop..)Ústop)rjrrÄr4r¾r½)r:rÂrÃrÏZ unwrappedrrrÚ test_stopTs  ÿzTestUnwrap.test_stopcCsÈdd„}||_| td¡t |¡Wdƒn1s:0Ydd„}||_||_| td¡t |¡Wdƒn1s„0Y| td¡t |¡Wdƒn1sº0YdS)NcSsdSrrrrrrrÂcrqz$TestUnwrap.test_cycle..func1rAcSsdSrrrrrrrÃhrqz$TestUnwrap.test_cycle..func2)rrœrr4r¾)r:rÂrÃrrrÚ test_cyclebs((zTestUnwrap.test_cyclecs6dd„‰dˆ_G‡fdd„dƒ}| t |ƒ¡¡dS)NcSsdSrrrrrrrŸqrqz(TestUnwrap.test_unhashable..funccseZdZdZ”ZdS)z%TestUnwrap.test_unhashable..CN)r1r@rAÚ__hash__rrrÕrrr„ssr„)rrr4r¾)r:r„rrÕrÚtest_unhashablepszTestUnwrap.test_unhashablecCsJtt ¡dƒ}| td¡t |¡Wdƒn1s<0YdS)NrrA)rºr\Úgetrecursionlimitrœrr4r¾)r:r=rrrÚtest_recursion_limitxszTestUnwrap.test_recursion_limitN) r1r@rAr¿rÁrÆrÇrÉrËrrrrr¼As  r¼c@sDeZdZdd„Zdd„Ze edud¡dd„ƒZd d „Z d d „Z dS) ÚTestMaincCsVt d¡}tdddƒ\}}}| ¡ ¡}| |dd…t |¡ ¡¡| |d¡dS)Nr«ú-mr4rrq)Ú importlibÚ import_moduler ÚdecoderEr¤r4rë)r:ÚmoduleÚrcr,ÚerrrérrrÚtest_only_source~s ÿ  zTestMain.test_only_sourcecCsFdd„}d|_| t¡t |¡Wdƒn1s80YdS)NcSsdSrrrrrrrˆsz)TestMain.test_custom_getattr..foor…)r,r(r)r4rIrrrrÚtest_custom_getattr‡s zTestMain.test_custom_getattrNz6threads required to test __qualname__ for source filescCsLtdddƒ\}}}| ¡ ¡}| |dd…t t¡ ¡¡| |d¡dS)NrÍr4z%concurrent.futures:ThreadPoolExecutorrrq)r rÐrEr¤r4rër)r:rÒr,rÓrérrrÚtest_qualname_sourceŽsÿ   ÿzTestMain.test_qualname_sourcecCs:t d¡}tdddƒ\}}}| ¡ ¡}| |dg¡dS)Nr«rÍr4r\z#Can't get info for builtin modules.)rÎrÏr rÐrEr¤)r:rÑrr,rÓrérrrÚ test_builtins™s  ÿ  zTestMain.test_builtinscCsxt d¡}t ¡}tg|¢d‘d‘d‘d‘RŽ\}}}| ¡}| |j|¡| |j|¡| |j |¡|  |d¡dS)Nr«rÍr4z --detailsrq) rÎrÏrZ!optim_args_from_interpreter_flagsr rÐrˆr1rÁÚ __cached__r¤)r:rÑrrÒr,rÓÚoutputrrrÚ test_details s ÿÿzTestMain.test_details) r1r@rArÔrÕr«rNrrÖr×rÚrrrrrÌ}s  ÿ rÌc@s0eZdZe d¡Ze d¡Zdd„Zdd„ZdS)Ú TestReloadz def foo(): print("Bla") z#def foo(): print("Oh no!") cCsRt |¡}t|ƒ,}| | ¡ d¡| d¡¡Wdƒn1sD0YdSrÙ)r4rërÝr¤ràrE)r:rÛráZ inspected_srcrrrrÚassertInspectEqual¹s    þzTestReload.assertInspectEqualc CsŒtd|jƒl\}}t |¡}| ||¡t|dƒ}| |j¡Wdƒn1sT0Y| ||¡Wdƒn1s~0YdS)NZ reload_bugr×)rÚ src_beforerÎrÏrÜrÝrÝÚ src_after)r:rArÛrÑrrrrÚtest_getsource_reloadÁs    *z TestReload.test_getsource_reloadN) r1r@rAÚtextwrapÚdedentrÝrÞrÜrßrrrrrÛ­s  rÛcCs@tttttttttt t t t t ttttttttttttttƒdSr)rrUrórarvr€r§rórVrär r rrVrÖrrsreržr§r­rŸr´r¼rÌrÛrsrQrrrrÚ test_mainËs÷râÚ__main__)drrŸrgrjrÎr4r;r"rÙZos.pathrr8ršrár\r_ràr•r«Z unittest.mockrdÚconcurrent.futuresrÚ ImportErrorZ test.supportrrrrr r Ztest.support.script_helperr r r&r rYrr rZtest.test_importrrÁr¼rÕrr÷r®r*r-rærGr¬r.rOrPrTrvrUrVr§rÜrírórQrUrarvr€rÖr~rçríròrórŸr·r´rär r rrVrsr+r}r)r~rrersržr§r­rºr¼rÌrÛrâr1rrrrÚsÎ          87L * l R8zIc@pf?D <0