a ze n@sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl m Z ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZzddlmZWneydZYn0ddlmZmZmZddlmZmZddlmZm Z ddl!m"Z#ddl!m$Z%dd l!m&Z&dd l'm(Z(e#j)Z*e*+d rNe*dd Z*e e*Z*d dZ,e#-Z.ddZ/ddZ0d1Z2Gdddej3Z4ddZ5ddZ6ddZ7ej8ddZ9Gddde4Z:Gd d!d!e4Z;Gd"d#d#ej3ZGd(d)d)e<Z?Gd*d+d+e<Z@Gd,d-d-e<ZAGd.d/d/e<ZBGd0d1d1e<ZCGd2d3d3e<ZDGd4d5d5eEZFGd6d7d7eEZGd8d9ZHGd:d;d;ej3ZIGdd?d?ej3ZLGd@dAdAej3ZMGdBdCdCeMZNGdDdEdEeNZOGdFdGdGej3ZPGdHdIdIej3ZQGdJdKdKej3ZRGdLdMdMejSZTGdNdOdOejUZVGdPdQdQej3ZWGdRdSdSej3ZXGdTdUdUej3ZYGdVdWdWej3ZZGdXdYdYej3Z[GdZd[d[ej3Z\Gd\d]d]Z]Gd^d_d_ej3Z^Gd`dadaej3Z_Gdbdcdcej3Z`eaddkrebdS)eNnormcase)ThreadPoolExecutor)TESTFN DirsOnSysPath cpython_only)MISSING_C_DOCSTRINGS ALWAYS_EQ)assert_python_okassert_python_failure)inspect_fodder)inspect_fodder2)support)_ready_to_import)cocGst|f|SNr)filenameargsrE/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_inspect.pyrevise7srccsgd}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. )abarrZdeltaZephraimZmagicalZyoyozz def foo(*, z, z): passfooN)rangelenappendjoinexec) parametersipbitjZfn_textZsymbolsrrr5signatures_with_lexicographic_keyword_only_parameters=s  r)cCsdSrr)throwoutZtheZbabyZwith_Zthe_Z bathwaterrrr#unsorted_keyword_only_parameters_fnOsr,z'throw out the baby with_ the_ bathwaterc@sTeZdZeejejejejej ej ej ej ej ejejejejejgZddZdS) IsTestBasecCst|}|||d|j|f|jt|gD]H}|tjksT|tjksT|tjkr`|tj kr`q2| ||d|j|fq2dS)Nz%s(%s)z not %s(%s)) eval assertTrue__name__ predicatessetinspectisgeneratorfunctionisasyncgenfunctioniscoroutinefunction isfunction assertFalse)self predicateexpobjotherrrristest]s zIsTestBase.istestN)r0 __module__ __qualname__r2r3 isbuiltinisclassiscodeisframer7ismethodismodule istraceback isgeneratorr4 iscoroutiner6 isasyncgenr5r1r>rrrrr-Us r-ccstdD] }|VqdSNrrr9r%rrrgenerator_function_exampleis rNcCs"td2z3dHW}|Vq6dSrKrLrMrrr async_generator_function_examplemsrOcsdSNspamrr9rrrcoroutine_function_exampleqsrSccs dVdSrPrrRrrrgen_coroutine_function_exampletsrTc@sLeZdZddZddZddZddZd d Zd d Zd dZ ddZ dS)TestPredicatesc Cs|tjd|tjd|tjdz|z ddWnftda|tjd|tjdt t d r|tj d n| t t tjjYn0Wdanda0|tjd |tjd |tjd |tjd|tjd|tjd|tjd|tjd|tjd|tjdt6td|tjd|tjdWdn1s0Yt t dr|tjdn| ttjj dS)Nzsys.exitz [].appendzmod.spam.__code__rrrz tb.tb_frametbGetSetDescriptorTypeztype(tb.tb_frame).f_localszmod.spamzmod.StupidGit.abusez git.arguezmod.custom_methodmodz'collections.defaultdict.default_factoryz(x for x in range(2))rNz#async_generator_function_example(1)rOignorezcoroutine_function_example(1)rSMemberDescriptorTypezdatetime.timedelta.days)!r>r3rArCsysexc_inforVrDrGhasattrtypesZisgetsetdescriptorr8typetb_framef_localsr7rErFisdatadescriptorrHr4rJr5warningscatch_warnings simplefilterrIr6ZismemberdescriptordatetimeZ timedeltaZdaysrRrrrtest_excluding_predicates{sH       . z(TestPredicates.test_excluding_predicatesc CsXtd}td}td}|tt|tttt|t|| t t| t ttt| t || tt| tttt| t||t t|t ttt|t || t t| t ttt| t |||dSNr)rOrTrSr8r3r6 functoolspartialrIr/r4rHr5rJclose)r9Zasync_gen_corogen_corocororrrtest_iscoroutinesvzTestPredicates.test_iscoroutinecCsdd}|t|td}td}|t||t|Gddd}|t||t|Gddd}|}dd |_|t|||dS) Ncss dVdSrrrrrrgenz,TestPredicates.test_isawaitable..genrc@seZdZddZdS)z/TestPredicates.test_isawaitable..FuturecSsdSrrrrrr __await__sz9TestPredicates.test_isawaitable..Future.__await__N)r0r?r@rqrrrrFuturesrrc@s eZdZdS)z2TestPredicates.test_isawaitable..NotFutureNr0r?r@rrrr NotFuturerprtcSsdSrrrrrrrpz1TestPredicates.test_isawaitable..)r8r3Z isawaitablerSrTr/rqrk)r9rormrlrrrtZnot_futrrrtest_isawaitables zTestPredicates.test_isawaitablecCs(|ttj|tgjdSr)r/r3Z isroutinerXrQcountrRrrrtest_isroutineszTestPredicates.test_isroutinecCsD|tjd|ttGdddt}|t|dS)Nz mod.StupidGitc@seZdZddZdS)z2TestPredicates.test_isclass..CustomGetattrcSsdSrr)r9attrrrr __getattr__sz>TestPredicates.test_isclass..CustomGetattr.__getattr__N)r0r?r@rzrrrr CustomGetattrsr{)r>r3rBr/listobjectr8)r9r{rrr test_isclassszTestPredicates.test_isclasscCsFGdddt}|}d|_tt|}|d||d|dS)Nc@seZdZdZdS)z/TestPredicates.test_get_slot_members..CrbNr0r?r@ __slots__rrrrCsr*rr)r}rdictr3 getmembersassertIn assertNotIn)r9rxmembersrrrtest_get_slot_memberss  z$TestPredicates.test_get_slot_memberscsddlm}mGfddd|d}Gddd|}|}|t||t||t||tt|tddS) NrABCMetaabstractmethodcseZdZddZdS)z.AbstractClassExamplecSsdSrrrRrrrrsz@TestPredicates.test_isabstract..AbstractClassExample.fooNr0r?r@rrrrrAbstractClassExamplesr metaclassc@seZdZddZdS)z4TestPredicates.test_isabstract..ClassExamplecSsdSrrrRrrrr sz8TestPredicates.test_isabstract..ClassExample.fooNrrrrr ClassExample sr)abcrrr/r3 isabstractr8int)r9rrrrrrrtest_isabstractszTestPredicates.test_isabstractcsddlm}mgGfddd|d}Gfddd|}Gdd d |}|d d gGd d d |}Gddd|}Gddd|}|gddS)NrrcseZdZfddZdS)zLTestPredicates.test_isabstract_during_init_subclass..AbstractCheckercst|dSr)r!r3rclsisabstract_checksrr__init_subclass__sz^TestPredicates.test_isabstract_during_init_subclass..AbstractChecker.__init_subclass__N)r0r?r@rrrrrAbstractCheckersrrcseZdZddZdS)zQTestPredicates.test_isabstract_during_init_subclass..AbstractClassExamplecSsdSrrrRrrrrszUTestPredicates.test_isabstract_during_init_subclass..AbstractClassExample.fooNrrrrrrsrc@seZdZddZdS)zITestPredicates.test_isabstract_during_init_subclass..ClassExamplecSsdSrrrRrrrr"szMTestPredicates.test_isabstract_during_init_subclass..ClassExample.fooNrrrrrr!srTFc@s eZdZdS)zJTestPredicates.test_isabstract_during_init_subclass..AbstractChildNrsrrrr AbstractChild'src@s eZdZdS)zOTestPredicates.test_isabstract_during_init_subclass..AbstractGrandchildNrsrrrrAbstractGrandchild)src@s eZdZdS)zOTestPredicates.test_isabstract_during_init_subclass..ConcreteGrandchildNrsrrrrConcreteGrandchild+sr)TTF)rrr assertEqualclear)r9rrrrrrrr)rrr$test_isabstract_during_init_subclasssz3TestPredicates.test_isabstract_during_init_subclassN) r0r?r@rgrnrvrxr~rrrrrrrrUys*/  rUc@s<eZdZddZddZddZddZd d Zd d Zd S)TestInterpreterStackcOs,tjj|g|Ri|tddddS)N )unittestTestCase__init__gitabuser9rkwargsrrrr1szTestInterpreterStack.__init__cCs |tjd|tjddS)Nz git.ex[2]zmod.fr)r>r3rGrDrRrrrtest_abuse_done6sz$TestInterpreterStack.test_abuse_donecCs&|ttjdk|ttjdddtdddgdf|ttjdddtddd gdf|ttjd ddtd d d gdf|ttjdddtdddgdftjd}||jtj ||j d||j tj ||j d|d|jd||jddS)Nrrreggsz st = inspect.stack() rrQ eggs(b + d, c + f) r+argue spam(a, b, c) 'rz self.argue(a, b, c) zinspect.stack())r/r rXstrrmodfileassertIsframefrlinenor__file__functionr code_contextindex)r9recordrrr test_stack:s( zTestInterpreterStack.test_stackcCs|ttjd|ttjdddtdddgdf|ttjdddtddd gdf|ttjd ddtd d d gdfdS)NrrrrrrrrQrrrz q = y / 0 )rr rtrrrrRrrr test_traceMszTestInterpreterStack.test_tracecCslttj\}}}}||ddg||d||d||dddd|t||||ddS)Nry )rr&rz (x=11, y=14))r3 getargvaluesrXrrformatargvaluesr9rvarargsvarkwlocalsrrr test_frameVs  zTestInterpreterStack.test_framecCsZttjj\}}}}||gd||d||d|t||||ddS)Nrrrdefghz-(a=7, b=8, c=9, d=3, e=4, f=5, *g=(), **h={}))r3rrXrf_backrrrrrrtest_previous_frame_s  z(TestInterpreterStack.test_previous_frameN) r0r?r@rrrrrrrrrrr0s   rc@s(eZdZdZddZddZddZdS) GetSourceBaseNcCs>tt|j}||_Wdn1s00YdSr)openr3 getsourcefile fodderModulereadsource)r9fprrrsetUpkszGetSourceBase.setUpcCs.|jd}d||d||r(dndS)N r)rsplitr")r9topbottomlinesrrr sourcerangeos zGetSourceBase.sourcerangecCs|t||||dSr)rr3 getsourcer)r9r<rrrrrassertSourceEqualss  zGetSourceBase.assertSourceEqual)r0r?r@rrrrrrrrrgsrc@seZdZdZdddZdS)SlotUserzDocstrings for __slots__measured in kilowattsmeasured in kilometers)powerdistanceN)r0r?r@__doc__rrrrrrwsrc@seZdZeZddZddZee j j dkdddZ ee j j dkdd d Z eed d d ZddZddZddZddZddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.S)/TestRetrievingSourceCodec Cs.tttj}||dtjfdtjfdtjfdtjfdtjfdtj fgt dd|D}||t d ftjt fftjtjtjffgtjt fftjtjfftjtjtjffggtj t ffggt d d|Dd }||t d ftjt fftjt fftjtjfftjtjtjffggtj t ffggdS) N FesteringGobMalodorousPervertParrotDroppings StupidGitZTit WhichCommentscSsg|] }|dqSrr.0rrrr rpz.rcSsg|] }|dqSrrrrrrrrpT) r3rrXrBrrrrrrZ getclasstreer})r9classesZtreerrrtest_getclassessR        z(TestRetrievingSourceCode.test_getclassescCs6tttj}||dtjfdtjfdtjfgdS)NrlobbestrQ)r3rrXr7rrrrQ)r9Z functionsrrrtest_getfunctionss z*TestRetrievingSourceCode.test_getfunctionsrz)Docstrings are omitted with -O2 and abovecCsf|ttd|ttjd|ttjd|ttjd|ttj ddS)NzA module docstring.A longer, indented docstring.$Another docstring containing tabsrr) rr3getdocrXrrrrrrrRrrr test_getdocsz$TestRetrievingSourceCode.test_getdoccCs\|ttjd|ttjjd|ttjd|ttjjddS)NrrzThe automatic gainsaying.)rr3rrXrrZ contradictionrRrrrtest_getdoc_inheritedsz.TestRetrievingSourceCode.test_getdoc_inheritedztest requires docstringscCsvtj}||ttj||tjtjj||tjtjj||tjtjj||tjtjjdSr)r3Z_finddocrrrto_bytes from_bytesreal)r9Zfinddocrrr test_finddocs z%TestRetrievingSourceCode.test_finddoccCs|tdddS)NzAn indented docstring.zAn indented docstring.)rr3ZcleandocrRrrr test_cleandocs z&TestRetrievingSourceCode.test_cleandoccCsj|ttd|ttjd|ttjdtddd}|t||tt dS)N # line 1 z # line 20 z # line 159 x=1z_non_existing_filename.pyr#) rr3Z getcommentsrXrmod2cls160compile assertIsNoner|)r9corrrtest_getcommentss  z)TestRetrievingSourceCode.test_getcommentscCs|ttt|ttjt|ttjjt|ttjjt|tttjd|tdt tdS)Nbuiltins) rr3 getmodulerXrrstrr[modulesrrRrrrtest_getmodules z'TestRetrievingSourceCode.test_getmodulecCs\dd}tjd|2t}|t|t|Wdn1sN0YdS)NcSs tddS)Nzbad file)FileNotFoundError)r<Z _filenamerrr _getabsfileszKTestRetrievingSourceCode.test_getmodule_file_not_found.._getabsfilezinspect.getabsfile)rmockpatchr3 currentframerrZgetouterframes)r9rrrrrtest_getmodule_file_not_founds z6TestRetrievingSourceCode.test_getmodule_file_not_foundcCs8t|jjd}||jdd||jdddS)N2rr rz'A module docstring.' )r3Z getframeinforrrr)r9Z frame_inforrr test_getframeinfo_get_first_linesz9TestRetrievingSourceCode.test_getframeinfo_get_first_linecCs4|tjdd|tjdd|tjdddS)Nr3KL)rrrrXrrrRrrrtest_getsourcesz'TestRetrievingSourceCode.test_getsourcecCs|tttjt|tttjtd}t d|d}|t|dddd|j ft j |j <z$|tt||Wt j |j =n t j |j =0dS)Nz2_non_existing_filename_used_for_sourcefile_test.pyr r#rNone) rrr3rrXrQrrrr co_filename linecachecache)r9fnrrrrtest_getsourcefiles z+TestRetrievingSourceCode.test_getsourcefilecCs|ttjtjdSr)rr3getfilerXrrrRrrr test_getfile sz%TestRetrievingSourceCode.test_getfilecCsN|t}ttWdn1s*0Y|t|jddS)Nz.CMcSstdSrAttributeErrorrrrrr?!szQTestRetrievingSourceCode.test_getfile_class_without_module..CM.__module__N)r0r?r@propertyrrrrCM sr9c@s eZdZdS)zETestRetrievingSourceCode.test_getfile_class_without_module..CNrsrrrrr$srr)r_r-r.r3r+)r9r9rrrr!test_getfile_class_without_modules z:TestRetrievingSourceCode.test_getfile_class_without_modulecCsLGddd}|}|tt|Wdn1s>0YdS)Nc@seZdZddZdS)zDTestRetrievingSourceCode.test_getfile_broken_repr..ErrorReprcSs tddS)NZxyz) ExceptionrRrrr__repr__+szMTestRetrievingSourceCode.test_getfile_broken_repr..ErrorRepr.__repr__N)r0r?r@r<rrrr ErrorRepr*sr=)r-r.r3r+)r9r=Zerrrrtest_getfile_broken_repr)s z1TestRetrievingSourceCode.test_getfile_broken_reprcCsnddlm}d}||}tj|<d|_d|_td|j|t |j j dtj|=t tddd dS) Nr) ModuleTypeZ__inspect_dummydummyz def x(): passza=10rsingle)r^r?r[rr __loader__r#__dict__rr3rr__code__rr)r9r?namemrrrtest_getmodule_recursion1s  z1TestRetrievingSourceCode.test_getmodule_recursioncsbd\tjdfdd }|t_z.i}ttd|t|dWt_nt_0dS)z4doctest monkeypatches linecache to enable inspection)zzdef x(): pass Ncs"|krjddS||SdS)NT)keepends) splitlines)rmodule_globalsr)getlinesrrrmonkey@s zHTestRetrievingSourceCode.test_proceed_with_fake_filename..monkeyrBr)N)r'rMr#rr3r)r9rNnsrrLrtest_proceed_with_fake_filename<sz8TestRetrievingSourceCode.test_proceed_with_fake_filenamecCs|tjjdddS)N r)rrXrrErRrrrtest_getsource_on_code_objectMsz6TestRetrievingSourceCode.test_getsource_on_code_objectN) r0r?r@rXrrrrskipIfr[flagsoptimizerrrrr rrrrr$r*r,r2r3r5r:r>rHrPrRrrrrr|s:(        rc@s eZdZeZddZddZdS)!TestGettingSourceOfToplevelFramescCsd|_|tjdddSrh)ZmaxDiffrrXrrRrrrtest_range_toplevel_frameSsz;TestGettingSourceOfToplevelFrames.test_range_toplevel_framecCs|tjdddSrh)rrXrVrRrrr#test_range_traceback_toplevel_frameWszETestGettingSourceOfToplevelFrames.test_range_traceback_toplevel_frameN)r0r?r@rXrrWrXrrrrrVPsrVc@s0eZdZeZddZddZddZddZd S) TestDecoratorscCs|tjdddS)Nr)rr wrappedrRrrrtest_wrapped_decorator]sz%TestDecorators.test_wrapped_decoratorcCs|tjdddS)Nr )rr ZgonerRrrrtest_replacing_decorator`sz'TestDecorators.test_replacing_decoratorcCs|tjdddS)N)rr rrRrrrtest_getsource_unwrapcsz$TestDecorators.test_getsource_unwrapcCs|tjdddS)Nqs)rr Zfunc114rRrrrtest_decorator_with_lambdafsz)TestDecorators.test_decorator_with_lambdaN) r0r?r@r rr\r^rardrrrrrYZs rYc@sPeZdZeZddZddZddZddZd d Z d d Z d dZ ddZ dS) TestOnelinerscCs|tjdddS)N)rr ZollrRrrrtest_oneline_lambdaksz!TestOneliners.test_oneline_lambdacCs|tjdddS)N)rr ZtllrRrrrtest_threeline_lambdaosz#TestOneliners.test_threeline_lambdacCs|tjdddS)N!")rr ZtllirRrrrtest_twoline_indented_lambdatsz*TestOneliners.test_twoline_indented_lambdacCs|tjdddS)N%)rr Z onelinefuncrRrrrtest_onelinefuncyszTestOneliners.test_onelinefunccCs|tjdddS)N())rr ZmanyargsrRrrr test_manyargs}szTestOneliners.test_manyargscCs|tjdddS)N,-)rr Z twolinefuncrRrrrtest_twolinefuncszTestOneliners.test_twolinefunccCs|tjddddS)Nr1)rr rrRrrrtest_lambda_in_listsz!TestOneliners.test_lambda_in_listcCs|tjdddS)N7)rr Z anonymousrRrrrtest_anonymousszTestOneliners.test_anonymousN) r0r?r@r rrgrjrmrorrrurwryrrrrreisrec@s(eZdZeZddZddZddZdS)TestBlockCommentscCs|tjdddS)N`r)rrXrrRrrrtest_toplevel_classsz%TestBlockComments.test_toplevel_classcCs|tjjdddS)Nch)rrXrrrRrrrtest_class_methodsz#TestBlockComments.test_class_methodcCs|tjjdddS)Nmp)rrXrZasyncfrRrrrtest_class_async_methodsz)TestBlockComments.test_class_async_methodN)r0r?r@rXrr}rrrrrrrzsrzc@seZdZeZddZddZddZddZd d Z d d Z d dZ e eed p^ejddddZddZddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Z d0S)1TestBuggyCasescCs|tjdddS)N:;)rr Z with_commentrRrrrtest_with_commentsz TestBuggyCases.test_with_commentcCs|tjddddS)Nr?@)rr Z multiline_sigrRrrrtest_multiline_sigsz!TestBuggyCases.test_multiline_sigcCs|tjdddS)NGH)rr Zfunc69Zfunc71rRrrrtest_nested_classsz TestBuggyCases.test_nested_classcCs|tjdddS)NM)rr Zfunc77rRrrr#test_one_liner_followed_by_non_namesz2TestBuggyCases.test_one_liner_followed_by_non_namecCs|tjjdddS)NS)rr Zcls82Zfunc83rRrrrtest_one_liner_dedent_non_namesz-TestBuggyCases.test_one_liner_dedent_non_namecCs|tjdddS)NXZ)rr Zfunc88rRrrr&test_with_comment_instead_of_docstringsz5TestBuggyCases.test_with_comment_instead_of_docstringcCs|tjdddS)N_a)rr Zmethod_in_dynamic_classrRrrrtest_method_in_dynamic_classsz+TestBuggyCases.test_method_in_dynamic_classrz.pyz,unicodedata is not an external binary modulecCs$|ttjt|ttjtdSr)r-OSErrorr3r unicodedata findsourcerRrrrtest_findsource_binarysz%TestBuggyCases.test_findsource_binarycCsdg}t|ddd}|ttj||ttj|dd||jftj|j<z:| t||df| t||dWtj|j=n tj|j=0dS)Nr rZ_dynamically_created_filer#r) rr-rr3rrr&r'r(r)r9rrrrr!test_findsource_code_in_linecachesz0TestBuggyCases.test_findsource_code_in_linecachecCs:dD]0}td|d}|ttj||ttj|qdS)N)rr@r r#)rr-IOErrorr3rr)r9Zfnamerrrr test_findsource_without_filenames z/TestBuggyCases.test_findsource_without_filenamecCsttt}d|d}t|tjd}ii}}t||||d}||jj dd|| t dt |Wdn1s0YdS)Nz z def f(): passr#rrrzlineno is out of bounds) r r3rrXrrr.rrEco_firstlinenoassertRaisesRegexrr)r9Zmod_lensrcrrlfuncrrr)test_findsource_with_out_of_bounds_linenos   z8TestBuggyCases.test_findsource_with_out_of_bounds_linenocCs|tjjdddS)Nvw)rr ZClassWithMethodmethodrRrrrtest_getsource_on_methodsz'TestBuggyCases.test_getsource_on_methodcCs|tjjdddS)N)rr Zcls135Zfunc136rRrrrtest_nested_funcszTestBuggyCases.test_nested_funccCs|tjdddS)N)rr Zcls149rRrrr4test_class_definition_in_multiline_string_definitionszCTestBuggyCases.test_class_definition_in_multiline_string_definitioncCs|tjdddS)N)rr r rRrrr*test_class_definition_in_multiline_commentsz9TestBuggyCases.test_class_definition_in_multiline_commentcCs|tjjdddS)N)rr Zcls173Zcls175rRrrr,test_nested_class_definition_indented_stringsz;TestBuggyCases.test_nested_class_definition_indented_stringcCs&|tjdd|tjjdddS)N)rr Zcls183Zcls185rRrrrtest_nested_class_definitionsz+TestBuggyCases.test_nested_class_definitioncCs&|tjdd|tjjdddS)N)rr Zcls196Zcls200rRrrrtest_class_decoratorsz#TestBuggyCases.test_class_decoratorcCs&|tjdd|tjjdddS)N)rr Zcls238Zcls239rRrrrtest_class_inside_conditionalsz,TestBuggyCases.test_class_inside_conditionalcCs`|tjdd|tjjdd|tjjjdd|tjjdd|tjjjdddS)N)rr Zcls203Zcls204Zcls205Zcls207rRrrrtest_multiple_children_classess z-TestBuggyCases.test_multiple_children_classescCs<|tdd|tjdd|tdddS)N)rr Zfunc212Zcls213Zfunc219rRrrr,test_nested_class_definition_inside_functionsz;TestBuggyCases.test_nested_class_definition_inside_functioncCs^ddl}||jd||tdd|tjdd||tdddS)Nr) asyncioZ addCleanupZset_event_loop_policyrrunr Zfunc225Zcls226Zfunc232)r9rrrr2test_nested_class_definition_inside_async_functions zATestBuggyCases.test_nested_class_definition_inside_async_functionN)!r0r?r@r rrrrrrrrrrSr]rrendswithrrrrrrrrrrrrrrrrrrrrs6    rcs,eZdZfddZddZddZZS) TestNoEOLcstd|_t|jttj|jdtjd}|dWdn1sR0Yt |jddl }Wdn1s0Y||_ t dS)NZ_dirzinspect_fodder3%spywzclass X: pass # No EOLr)rtempdirosmkdirrpathr"extsepwriterZinspect_fodder3rsuperr)r9rZmod3 __class__rrr s   ( &zTestNoEOL.setUpcCst|jdSr)shutilrmtreerrRrrrtearDownszTestNoEOL.tearDowncCs||jjdddS)Nrr)rrXrRrrr test_classszTestNoEOL.test_class)r0r?r@rrr __classcell__rrrrr s rc@s(eZdZdZddZddZddZdS) _BrokenDataDescriptorz2 A broken data descriptor. See bug #1785. cGs tddSNzbroken data descriptorr6rrrr__get__"sz_BrokenDataDescriptor.__get__cGstdSr) RuntimeErrorrrrr__set__%sz_BrokenDataDescriptor.__set__cGs tddSrr6rrrrrz(sz!_BrokenDataDescriptor.__getattr__N)r0r?r@rrrrzrrrrrsrc@s eZdZdZddZddZdS)_BrokenMethodDescriptorz4 A broken method descriptor. See bug #1785. cGs tddSNzbroken method descriptorr6rrrrr0sz_BrokenMethodDescriptor.__get__cGs tddSrr6rrrrrz3sz#_BrokenMethodDescriptor.__getattr__N)r0r?r@rrrzrrrrr,srcCsddt|DS)NcSsg|]}|ddqSNrr)rtrrrr9rpz!attrs_wo_objs..)r3classify_class_attrsrrrr attrs_wo_objs8src@seZdZddZd5ddZdddggdidfddZdd Zd d Zd d ZddZ ddZ e e dddZee e dddZee e dddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4ZdS)6TestClassesAndFunctionscCsjGdddt}Gddd|}Gddd|}Gddd||}||||tf}t|}|||dS) Nc@s eZdZdS)z4TestClassesAndFunctions.test_newstyle_mro..ANrsrrrrA?rprc@s eZdZdS)z4TestClassesAndFunctions.test_newstyle_mro..BNrsrrrrB@rprc@s eZdZdS)z4TestClassesAndFunctions.test_newstyle_mro..CNrsrrrrrArprc@s eZdZdS)z4TestClassesAndFunctions.test_newstyle_mro..DNrsrrrrDBrpr)r}r3Zgetmror)r9rrrrexpectedZgotrrrtest_newstyle_mro=s z)TestClassesAndFunctions.test_newstyle_mroNc Cs|t"t|\}}} } Wdn1s20Y|||||||| ||| ||dur|t(|t||| | |Wdn1s0YdSr) assertWarnsDeprecationWarningr3Z getargspecr formatargspec) r9routineargs_e varargs_evarkw_e defaults_e formattedrrrdefaultsrrrassertArgSpecEqualsHs 0     z+TestClassesAndFunctions.assertArgSpecEqualsc  Cst|\} } } }}}}|| ||| ||| ||||||||||||| | dur|t.|t| | | ||||| Wdn1s0YdSr)r3getfullargspecrrrr)r9rrrrrZ posonlyargs_e kwonlyargs_ekwonlydefaults_eann_errrrr kwonlyargsZkwonlydefaultsannrrrassertFullArgSpecEqualsUs         z/TestClassesAndFunctions.assertFullArgSpecEqualscCsp|jtjddgdd|tjgddddd |t|jtjg|t|jtjg|t|jtj gdS) Nrr(x, y)rrrr)rrz!(a, b, c, d=3, e=4, f=5, *g, **h)) rrXrrQr- ValueErrorr  keyworded annotatedkeyword_only_argrRrrrtest_getargspecis   z'TestClassesAndFunctions.test_getargspeccCs|jtjgddgddidd|jtjdgdtidd|jtjgdgd d |jtjgd d d gdd |jtjgd ddd d gdd|jtjgd dd d gddddddS)Narg1arg2rz(*arg1, arg2=1))rr r rz (arg1: list))r rargz(*, arg))r rrrrrrrz(a, b, c, d, *, e, f)rrz#(a, b, c, d, *args, e, f, **kwargs))rrr rrrrrr)rrz(a, b=1, c=2, d=3, *, e=4, f=5))rr r r) rr rrr|rZ all_markersZ all_markers_with_args_and_kwargsZall_markers_with_defaultsrRrrrtest_getfullargspeczs<   z+TestClassesAndFunctions.test_getfullargspeccsttjdd}j|ddgddj|ddgddjt|ddgddfdd}Gd d d }||||j||j||j||jGd d d }||Gd dd}||dS)NcSsdSrrrrrrrhamszETestClassesAndFunctions.test_argspec_api_ignores_wrapped..hamrrrrcsj|gddddS)Nr9rrz (self, x, y)r)rrrRrr check_methods zNTestClassesAndFunctions.test_argspec_api_ignores_wrapped..check_methodc@s>eZdZeejddZeeZ eejddZ dS)zCTestClassesAndFunctions.test_argspec_api_ignores_wrapped..CcSsdSrrrrrrrszGTestClassesAndFunctions.test_argspec_api_ignores_wrapped..C.hamcSsdSrrrrrr__call__szLTestClassesAndFunctions.test_argspec_api_ignores_wrapped..C.__call__N) r0r?r@riwrapsrXrQr partialmethodphamr"rrrrrs     rc@s eZdZeejddZdS)zGTestClassesAndFunctions.test_argspec_api_ignores_wrapped..C_newcSsdSrrrrrr__new__szOTestClassesAndFunctions.test_argspec_api_ignores_wrapped..C_new.__new__N)r0r?r@rir#rXrQr&rrrrC_news r'c@s eZdZeejddZdS)zHTestClassesAndFunctions.test_argspec_api_ignores_wrapped..C_initcSsdSrrrrrrrszQTestClassesAndFunctions.test_argspec_api_ignores_wrapped..C_init.__init__N)r0r?r@rir#rXrQrrrrrC_inits r() rir#rXrQrrrjrr%)r9rr!rr'r(rrRr test_argspec_api_ignores_wrappeds$         z8TestClassesAndFunctions.test_argspec_api_ignores_wrappedcCs>dd}tdtjj}tj|fd|_|j|dgdddS)NcSsdSrrrrrrtestszHTestClassesAndFunctions.test_getfullargspec_signature_attr..testrQr$(spam)r)r3 ParameterPOSITIONAL_ONLY Signature __signature__r)r9r*Z spam_paramrrr"test_getfullargspec_signature_attrsz:TestClassesAndFunctions.test_getfullargspec_signature_attrcCsPddddd}t|}||j|jdd}t|}||j|jdS)NrQrrreturncSsdSrrrrrrr*rpzITestClassesAndFunctions.test_getfullargspec_signature_annos..testcSsdSrrrrrrr*rp)r3rr__annotations__ annotations)r9r*specrrr#test_getfullargspec_signature_annoss   z;TestClassesAndFunctions.test_getfullargspec_signature_annos6Signature information for builtins requires docstringscCs^|jtjjddgdd|jttjddgdd|jtjdgddgddd d d dS) Nr9r<z (self, obj)rrdir_fdfollow_symlinksT)r:r;z,(path, *, dir_fd=None, follow_symlinks=True))rr r r)r_picklePicklerdumpioBytesIOrstatrRrrr#test_getfullargspec_builtin_methodssz;TestClassesAndFunctions.test_getfullargspec_builtin_methodscCs.ddl}|j}t|}||jdddS)Nravocado) _testcapi&docstring_with_signature_with_defaultsr3rrr)r9rDbuiltinr7rrr test_getfullargspec_builtin_funcs z8TestClassesAndFunctions.test_getfullargspec_builtin_funccCsFddl}|j}|tt|Wdn1s80YdS)Nr)rDdocstring_no_signaturer-r.r3r)r9rDrFrrr-test_getfullargspec_builtin_func_no_signatures zETestClassesAndFunctions.test_getfullargspec_builtin_func_no_signaturecCsbtD]6}t|}t|j}t|}|||||qtt}t|j}||t dSr) r)r3rr|r sortedr/rr, unsorted_keyword_only_parametersr9r) signaturerZsorted_lrrr8test_getfullargspec_definition_order_preserved_on_kwonlys      zPTestClassesAndFunctions.test_getfullargspec_definition_order_preserved_on_kwonlycCs$Gdddt}||jdgdS)Nc@seZdZddZdS)z9TestClassesAndFunctions.test_getargspec_method..AcSsdSrrrRrrrrGsz;TestClassesAndFunctions.test_getargspec_method..A.mNr0r?r@rGrrrrrsrr9)r}rrGr9rrrrtest_getargspec_methodsz.TestClassesAndFunctions.test_getargspec_methodcCsGdddt}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|dGddd|}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|dGddd|}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|dGd 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|ddS)"Nc@s\eZdZddZeeZddZeeZddZeeZ ddZ d d Z d Z e ZeZd S) z9TestClassesAndFunctions.test_classify_newstyle..AcSsdSrrrrrrsrpz;TestClassesAndFunctions.test_classify_newstyle..A.scSsdSrrrrrrr rpz;TestClassesAndFunctions.test_classify_newstyle..A.ccSsdSrrrRrrrgetp rpz>TestClassesAndFunctions.test_classify_newstyle..A.getpcSsdSrrrRrrrrGrpz;TestClassesAndFunctions.test_classify_newstyle..A.mcSsdSrrrRrrrm1rpz.A.m11N)r0r?r@rR staticmethodr classmethodrSr8r&rGrTdatablobrddrmdrrrrrsrr& static methodmissing __new__rrzmissing __init__rRzmissing static methodr class methodmissing class methodr&r8zmissing propertyrGzmissing plain method: %rrTmissing plain methodrXdataz missing datarZzmissing method descriptorrYzmissing data descriptorc@seZdZddZdS)z9TestClassesAndFunctions.test_classify_newstyle..BcSsdSrrrRrrrrG+rpz;TestClassesAndFunctions.test_classify_newstyle..B.mNrOrrrrr)src@seZdZddZddZdS)z9TestClassesAndFunctions.test_classify_newstyle..CcSsdSrrrRrrrrG:rpz;TestClassesAndFunctions.test_classify_newstyle..C.mcSsdSrrrRrrrr;rpz;TestClassesAndFunctions.test_classify_newstyle..C.cN)r0r?r@rGrrrrrr8src@seZdZddZdS)z9TestClassesAndFunctions.test_classify_newstyle..DcSsdSrrrRrrrrTIrpz.D.m1N)r0r?r@rTrrrrrGsr)r}rr)r9rattrsrrrrrrtest_classify_newstyles\z.TestClassesAndFunctions.test_classify_newstylecCsttD]"}tt|}t|trt|qtt}| ddtf|d| ddt f|d| ddt f|d | d dt f|d | d dtf|d dS) Nr&r[r\rr]r^rrr___add____and__) dir __builtins__getattr isinstancer_r3rrboolrr)r9rFrFrarrrtest_classify_builtin_typesUs(    z3TestClassesAndFunctions.test_classify_builtin_typescCspGdddt}Gddd|d}tdd||jd}||t|tdd|d}||t|dS) NcseZdZfddZZS)zITestClassesAndFunctions.test_classify_DynamicClassAttribute..Metacs|dkr dSt|S)NrrQrrzr9rFrrrrzkszUTestClassesAndFunctions.test_classify_DynamicClassAttribute..Meta.__getattr__r0r?r@rzrrrrrMetajsrnc@seZdZejddZdS)zGTestClassesAndFunctions.test_classify_DynamicClassAttribute..VAcSsdS)NrrrRrrrrpszKTestClassesAndFunctions.test_classify_DynamicClassAttribute..VA.hamN)r0r?r@r^DynamicClassAttributerrrrrVAosrprrr`rQ)r_r3 AttributerDrr)r9rnrpZshould_find_dcaZshould_find_garrr#test_classify_DynamicClassAttributeis z;TestClassesAndFunctions.test_classify_DynamicClassAttributecsPGfdddtGfdddt}tdd||j}||t|dS)Ncs eZdZfddZddZdS)zDTestClassesAndFunctions.test_classify_overrides_bool..NoBoolcsSrr)r9r=NoBoolrr__eq__zszKTestClassesAndFunctions.test_classify_overrides_bool..NoBool.__eq__cSs tddS)Nz,This object does not specify a boolean value)NotImplementedErrorrRrrr__bool__}szMTestClassesAndFunctions.test_classify_overrides_bool..NoBool.__bool__N)r0r?r@rurwrrsrrrtys rtcseZdZZdS)zCTestClassesAndFunctions.test_classify_overrides_bool..HasNBN)r0r?r@rYrrsrrHasNBsrxrYr`)r}r3rqrYrr)r9rxZshould_find_attrrrsrtest_classify_overrides_boolxsz4TestClassesAndFunctions.test_classify_overrides_boolcCsHGdddt}Gddd|d}tdd|d}||t|dS) Nc@seZdZdZddZdS)zMTestClassesAndFunctions.test_classify_metaclass_class_attribute..MetaslapcSsgdS)N)rr?r0fishrrRrrr__dir__szUTestClassesAndFunctions.test_classify_metaclass_class_attribute..Meta.__dir__N)r0r?r@r{r|rrrrrnsrnc@s eZdZdS)zNTestClassesAndFunctions.test_classify_metaclass_class_attribute..ClassNrsrrrrClasssr}rr{r`rzr_r3rqrrr9rnr}Z should_findrrr'test_classify_metaclass_class_attributesz?TestClassesAndFunctions.test_classify_metaclass_class_attributecCsHGdddt}Gddd|d}tdd|d}||t|dS) Ncs$eZdZddZfddZZS)zDTestClassesAndFunctions.test_classify_VirtualAttribute..MetacSsgdS)N)rr?r0BOOMrrrrrr|szLTestClassesAndFunctions.test_classify_VirtualAttribute..Meta.__dir__cs|dkr dSt|S)Nrr)rZ_Meta__getattrrlrrrrzszPTestClassesAndFunctions.test_classify_VirtualAttribute..Meta.__getattr__r0r?r@r|rzrrrrrrnsrnc@s eZdZdS)zETestClassesAndFunctions.test_classify_VirtualAttribute..ClassNrsrrrrr}sr}rrr`rr~rrrrtest_classify_VirtualAttributesz6TestClassesAndFunctions.test_classify_VirtualAttributec sGdddtGdddtGfddd}Gdddd }Gd d d ||d }td d d}tdd d}tdd |d}t|}|||fD]}|||qdS)Ncs$eZdZddZfddZZS)zSTestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes..Meta1cSsgdS)N)rr?r0onerrrrrr|sz[TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes..Meta1.__dir__cs|dkr dSt|S)Nrrrkrlrrrrzsz_TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes..Meta1.__getattr__rrrrrMeta1srcs$eZdZddZfddZZS)zSTestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes..Meta2cSsgdS)N)rr?r0tworrrrrr|sz[TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes..Meta2.__dir__cs|dkr dSt|S)Nrrrkrlrrrrzsz_TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes..Meta2.__getattr__rrrrrMeta2srcs*eZdZfddZfddZZS)zSTestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes..Meta3cs(tttgd||S)N)rr?r0three)r|rJr2r|rrrrrr|s  z[TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes..Meta3.__dir__cs|dkr dSt|S)Nrrrkrlrrrrzsz_TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes..Meta3.__getattr__rrrrrMeta3src@s eZdZdS)zTTestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes..Class1NrsrrrrClass1srrc@s eZdZdS)zTTestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes..Class2NrsrrrrClass2srrr`rrrrr)r_r3rqrr) r9rrrZ should_find1Z should_find2Z should_find3ZccaZsfrrr,test_classify_VirtualAttribute_multi_classess zDTestClassesAndFunctions.test_classify_VirtualAttribute_multi_classescCsFGdddt}Gddd|d}ddt|D}|d|dS) Nc@seZdZddZdS)zKTestClassesAndFunctions.test_classify_class_attrs_with_buggy_dir..McSsgdSN)rr0missingrrrrrr|szSTestClassesAndFunctions.test_classify_class_attrs_with_buggy_dir..M.__dir__Nr0r?r@r|rrrrMsrc@s eZdZdS)zKTestClassesAndFunctions.test_classify_class_attrs_with_buggy_dir..CNrsrrrrrsrrcSsg|] }|dqSrrrrrrrrrpzTTestClassesAndFunctions.test_classify_class_attrs_with_buggy_dir..r)r_r3rrr9rrrarrr(test_classify_class_attrs_with_buggy_dirsz@TestClassesAndFunctions.test_classify_class_attrs_with_buggy_dircCsGdddt}dd}|tj}|tj}|t||d|jdfg|t||d|jdfgGddd|}|t||d|jdfg|t||d|jdfgdS) Nc@seZdZeZeZdS)z>TestClassesAndFunctions.test_getmembers_descriptors..AN)r0r?r@rrYrrZrrrrrsrcs"Gdddtfdd}|S)Nc@s eZdZdS)zXTestClassesAndFunctions.test_getmembers_descriptors..pred_wrapper..EmptyNrsrrrrEmptysrcs$dt|vrt|jrdS|S)Nr0F)rer]r0rrpredrrr[szZTestClassesAndFunctions.test_getmembers_descriptors..pred_wrapper..wrappedr})rr[rrr pred_wrapperszITestClassesAndFunctions.test_getmembers_descriptors..pred_wrapperrZrYc@s eZdZdS)z>TestClassesAndFunctions.test_getmembers_descriptors..BNrsrrrrrsr)r}r3ismethoddescriptorrbrrrD)r9rrrrbrrrrtest_getmembers_descriptorss"  z3TestClassesAndFunctions.test_getmembers_descriptorscCsGddd}|d|jft||d|jft|tj|}|d|jft||d|jft|tjdS)Nc@seZdZddZdS)z9TestClassesAndFunctions.test_getmembers_method..BcSsdSrrrRrrrrsz;TestClassesAndFunctions.test_getmembers_method..B.fNr0r?r@rrrrrrsrr)rrr3rrrE)r9rrrrrtest_getmembers_methods z.TestClassesAndFunctions.test_getmembers_methodcCsLGdddt}Gddd|d}|dt||dt|dS)NcseZdZfddZZS)zCTestClassesAndFunctions.test_getmembers_VirtualAttribute..Mcs|dkr dSt|S)Nr scrambledrk)rrFrrrrzszOTestClassesAndFunctions.test_getmembers_VirtualAttribute..M.__getattr__rmrrrrrsrc@seZdZejddZdS)zCTestClassesAndFunctions.test_getmembers_VirtualAttribute..AcSsdSrPrrRrrrrszHTestClassesAndFunctions.test_getmembers_VirtualAttribute..A.eggsN)r0r?r@r^rorrrrrrsrr)rr)rrQ)r_rr3r)r9rrrrr test_getmembers_VirtualAttributesz8TestClassesAndFunctions.test_getmembers_VirtualAttributecCsFGdddt}Gddd|d}ddt|D}|d|dS) Nc@seZdZddZdS)zATestClassesAndFunctions.test_getmembers_with_buggy_dir..McSsgdSrrrrrrr|szITestClassesAndFunctions.test_getmembers_with_buggy_dir..M.__dir__Nrrrrrrsrc@s eZdZdS)zATestClassesAndFunctions.test_getmembers_with_buggy_dir..CNrsrrrrrsrrcSsg|] }|dqSrrrrrrrrpzJTestClassesAndFunctions.test_getmembers_with_buggy_dir..r)r_r3rrrrrrtest_getmembers_with_buggy_dirsz6TestClassesAndFunctions.test_getmembers_with_buggy_dir)NNNN) r0r?r@rrrrrr)r1r8rrSrrBrrGrIrNrQrbrjrrryrrrrrrrrrrrrr<sV   (     Q  #    rc@s,eZdZddZddZddZddZd S) TestIsDataDescriptorcCsGddd}Gddd}Gddd}Gddd}|t|d |t|d |t|d |t|d dS) Nc@seZdZdddZdS)zGTestIsDataDescriptor.test_custom_descriptors..NonDataDescriptorNcSsdSrr)r9valuer_rrrrrpzOTestIsDataDescriptor.test_custom_descriptors..NonDataDescriptor.__get__)Nr0r?r@rrrrrNonDataDescriptorsrc@seZdZddZdS)zETestIsDataDescriptor.test_custom_descriptors..DataDescriptor0cSsdSrr)r9rFrrrrrrpzMTestIsDataDescriptor.test_custom_descriptors..DataDescriptor0.__set__Nr0r?r@rrrrrDataDescriptor0src@seZdZddZdS)zETestIsDataDescriptor.test_custom_descriptors..DataDescriptor1cSsdSrrrlrrr __delete__rpzPTestIsDataDescriptor.test_custom_descriptors..DataDescriptor1.__delete__N)r0r?r@rrrrrDataDescriptor1src@seZdZdZdS)zETestIsDataDescriptor.test_custom_descriptors..DataDescriptor2NrrrrrDataDescriptor2srz-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)r8r3rbr/)r9rrrrrrrtest_custom_descriptors s z,TestIsDataDescriptor.test_custom_descriptorscCs&Gddd}|t|jddS)Nc@seZdZdZdS)z/TestIsDataDescriptor.test_slot..SlottedrNrrrrrSlotted srza slot is a data descriptor)r/r3rbr)r9rrrr test_slotszTestIsDataDescriptor.test_slotcCs&Gddd}|t|jddS)Nc@seZdZeddZdS)z6TestIsDataDescriptor.test_property..PropertiedcSsdSrrrRrrr a_property'szATestIsDataDescriptor.test_property..Propertied.a_propertyN)r0r?r@r8rrrrr Propertied&srza property is a data descriptor)r/r3rbr)r9rrrr test_property%sz"TestIsDataDescriptor.test_propertycCsGdddt}dd}dd}|t|jd|t|jd|t|jd |t|d |t|d dS) Nc@s,eZdZddZeddZeddZdS)z1TestIsDataDescriptor.test_functions..TestcSsdSrrrRrrrinstance_method/rpzATestIsDataDescriptor.test_functions..Test.instance_methodcSsdSrrrrrr class_method0sz>TestIsDataDescriptor.test_functions..Test.class_methodcSsdSrrrrrr static_method2sz?TestIsDataDescriptor.test_functions..Test.static_methodN)r0r?r@rrWrrVrrrrrTest.s  rcSsdSrrrrrrr4sz5TestIsDataDescriptor.test_functions..functioncSsdSrrrrrrru6rpz5TestIsDataDescriptor.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}r8r3rbrrr)r9rrZa_lambdarrrtest_functions-s$  z#TestIsDataDescriptor.test_functionsN)r0r?r@rrrrrrrrr src@s\eZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ dS)TestGetClosureVarscCsVdd}t}d|i}dti}dti}dh}t||||}|t|||dS)Ncsfdd}|S)Ncst|ttdSrprint _global_ref unbound_refZ local_ref nonlocal_refrrrIsz=TestGetClosureVars.test_name_resolution..f..grrrrrrrHs z2TestGetClosureVars.test_name_resolution..frrrrr}rrr3 ClosureVarsrgetclosurevarsr9r_arg nonlocal_vars global_vars builtin_vars unbound_namesrrrrtest_name_resolutionFsz'TestGetClosureVars.test_name_resolutioncCsVdd}t}d|i}dti}dti}dh}t||||}|t|||dS)Ncsfdd}|S)Nc3st|ttdVdSrrrrrrrWsz?TestGetClosureVars.test_generator_closure..f..grrrrrrVs z4TestGetClosureVars.test_generator_closure..frrrrrrrrrtest_generator_closureUsz)TestGetClosureVars.test_generator_closurecCs`Gddd}t}d|i}dti}dti}dh}t||||}|t|||dS)Nc@seZdZddZdS)z1TestGetClosureVars.test_method_closure..Ccsfdd}|S)Ncst|ttdSrrrrrrrgsz>TestGetClosureVars.test_method_closure..C.f..gr)r9rrrrrrfs z3TestGetClosureVars.test_method_closure..C.fNrrrrrresrrrrr)r}rrr3rrrr)r9rrrrrrrrrrtest_method_closuredsz&TestGetClosureVars.test_method_closurecsdddd}dd}dd}fd d fd d }|d }|d}||d}|dd i|ddi|d|ddddddi|dS)NcSs t|jSr)r3rZ nonlocalsr rrr_nonlocal_varsusz=TestGetClosureVars.test_nonlocal_vars.._nonlocal_varscsfdd}|S)Ncs|SrrrrrraddyszFTestGetClosureVars.test_nonlocal_vars..make_adder..addr)rrrrr make_adderxs z9TestGetClosureVars.test_nonlocal_vars..make_addercsfddS)Ncs |Srrrrrrrru~rpzFTestGetClosureVars.test_nonlocal_vars..curry..r)rrrrrcurry}sz4TestGetClosureVars.test_nonlocal_vars..currycSs||kSrrrrrr less_thansz8TestGetClosureVars.test_nonlocal_vars..less_thancsfdd}|_||S)NcsfddS)Ncs |Srrrr rrrurpzMTestGetClosureVars.test_nonlocal_vars..Y..g..rr ler rrsz;TestGetClosureVars.test_nonlocal_vars..Y..g)g_ref)rr)Yrrrs z0TestGetClosureVars.test_nonlocal_vars..Ycs|djidS)Nr)rrrrrr9rrcheck_y_combinatorszATestGetClosureVars.test_nonlocal_vars..check_y_combinatorrrrrrcs fddS)Ncs|SrrrrrrrurpzITestGetClosureVars.test_nonlocal_vars....rrrrrrurpz7TestGetClosureVars.test_nonlocal_vars..r)r)r9rrrrZincZadd_twoZgreater_than_fiverrrtest_nonlocal_varsss$   z%TestGetClosureVars.test_nonlocal_varscCsFdd}tiiit}|tdd||t||dS)NcSsdSrrrrrrrrpz9TestGetClosureVars.test_getclosurevars_empty..foocSsdSNTrrrrrrurpz>TestGetClosureVars.test_getclosurevars_empty..)r3rr2rr)r9rZ_emptyrrrtest_getclosurevars_emptysz,TestGetClosureVars.test_getclosurevars_emptycCsBGddd}|ttjd|ttjt|ttjidS)Nc@s eZdZdS)z7TestGetClosureVars.test_getclosurevars_error..TNrsrrrrTrprr)r-r.r3rr|)r9rrrrtest_getclosurevars_errorsz,TestGetClosureVars.test_getclosurevars_errorcCsd}i}t|||d|fS)Nzdef f(): print(path)r)r#)r9coderOrrr_private_globalss z#TestGetClosureVars._private_globalscCsD|\}}|ddtiidtidh}|t||dS)Nrfrr)rpopr3rrrrr9rrOrrrrtest_builtins_fallbacks  z)TestGetClosureVars.test_builtins_fallbackcCsD|\}}ddi|d<tiiddidh}|t||dS)Nrrrfr)rr3rrrrrrrtest_builtins_as_dicts  z(TestGetClosureVars.test_builtins_as_dictcCsB|\}}t|d<tiidtjidh}|t||dS)Nrfrr)rrr3rrrrrrrrtest_builtins_as_modules z*TestGetClosureVars.test_builtins_as_moduleN) r0r?r@rrrrrrrrrrrrrrrDs&rc@s`eZdZdddZdddZddZdd Zd d Zd d ZddZ ddZ ddZ ddZ dS)TestGetcallargsFunctionsNcCs@t|pi|d}td|d|}td|d|}|||dS)Nrfunc(%s)inspect.getcallargs(func, %s))rr.r)r9rcall_params_stringlocsZr1Zr2rrrassertEqualCallArgss  z,TestGetcallargsFunctions.assertEqualCallArgsc Cst|pi|d}ztd|d|Wn(tyL}z|}WYd}~nd}~00|dztd|d|Wn(ty}z|}WYd}~nd}~00|d|t|t||t|t|~~dS)NrrzException not raisedr)rr.r;Zfailrr_rr)r9rZcall_param_stringrrZex1Zex2rrrassertEqualExceptions    z-TestGetcallargsFunctions.assertEqualExceptioncCsd}t||S)z+Create a function that returns its locals()zlambda %s: locals())r.)r9rMrrrr makeCallablesz%TestGetcallargsFunctions.makeCallablecCs|d}||d||d||d||d||d||d||d||d ||d ||d ||d ||d ||d||d||d||d||d||ddS)Na, b=122, 3a=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)rrr9rrrr test_plains&                  z#TestGetcallargsFunctions.test_plaincCsV|d}||d||d||d||d||d||ddS)Nz a, b=1, *crr2, 3, 4z*(2,3,4)z 2, *[3,4]z 2, 3, *collections.UserList([4])rrrrr test_varargss      z%TestGetcallargsFunctions.test_varargscCsz|d}||d||d||d||d||d||d||d||d ||d dS) Nz a, b=1, **crz 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)rrrrr test_varkws         z#TestGetcallargsFunctions.test_varkwcCsV|d}||d||d||d||d||d||ddS)N**crza=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)rrrrrtest_varkw_only s      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=4r3za=3zd=4z *, c, d=2zc=3, d=4zd=4, c=3)rrrrrrrtest_keyword_onlys            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)rrrrrtest_multiple_features%s              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||dq|d}||d||d|d}||d||ddd}|tdt|Wdn1s0Ydd}|tdt|Wdn1s0Y|td$tjdtjjd d!Wdn1s0Y|td" tjd#d$d d!Wdn1sV0Y|td%tjd&d'd(Wdn1s0YdS))Nrza, brrUr z1,x=1rzb=3rz 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=3rz1, 2z1, 2, a=1, b=2z *, a, b=0cSsdSrrr4rrrf5lrpz0TestGetcallargsFunctions.test_errors..f5zmissing 1 required keyword-onlycSsdSrrrrrrrrf6ssz0TestGetcallargsFunctions.test_errors..f6z'a', 'b' and 'c'z6variadic keyword parameters cannot have default valuesrrkinddefaultz%value 5 is not a valid Parameter.kindrrzname must be a str, not a int{rr) rrrr.r3Z getcallargsrr- VAR_KEYWORD) r9Zf0f1f2rf3f4rrrrr test_errors=sh                             ** &0z$TestGetcallargsFunctions.test_errors)N)N) r0r?r@rrrrrrrrrr rrrrrs     rcs$eZdZddZfddZZS)TestGetcallargsMethodscCs"Gdddt}||_||_dS)Nc@s eZdZdS)z)TestGetcallargsMethods.setUp..FooNrsrrrrFoosr)r}rinst)r9rrrrrszTestGetcallargsMethods.setUpcs$tt|j}|d||j_|jjS)Nzself, )rr rrrr)r9rMmkrrrrs z#TestGetcallargsMethods.makeCallable)r0r?r@rrrrrrrr sr csBeZdZfddZd fdd Zd fdd Zd dd ZZS) TestGetcallargsUnboundMethodscstt|||jjSr)rrrrrr9rMrrrrsz*TestGetcallargsUnboundMethods.makeCallableNcstt|j||||Sr)rrr_getAssertEqualParamsr9rrrrrrrs  z1TestGetcallargsUnboundMethods.assertEqualCallArgscstt|j||||Sr)rrrrrrrrrs  z2TestGetcallargsUnboundMethods.assertEqualExceptioncCs t|pi|jd}|d||fS)N)rzinst,)rrrrrrrsz3TestGetcallargsUnboundMethods._getAssertEqualParams)N)N)N)r0r?r@rrrrrrrrrrs rc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-S).TestGetattrStaticcCsGdddt}|}|t|d|j|t|dd|j|tt|dWdn1sp0Y|t|ddddS)Nc@seZdZeZdS)z+TestGetattrStatic.test_basic..ThingNr0r?r@r}rrrrrThingsrrrr)r}rr3getattr_staticrr-r7r9rthingrrr test_basics *zTestGetattrStatic.test_basiccCs@Gdddt}Gddd|}|}|t|d|jdS)Nc@seZdZeZdS)z/TestGetattrStatic.test_inherited..ThingNrrrrrrsrc@s eZdZdS)z4TestGetattrStatic.test_inherited..OtherThingNrsrrrr OtherThingsrrr}rr3rr)r9rrZ somethingrrrtest_inheritedsz TestGetattrStatic.test_inheritedcCsHGdddt}|d}|t|dd|`|t|dddS)Nc@seZdZdZddZdS)z3TestGetattrStatic.test_instance_attr..ThingrcSs ||_dSrrr9rrrrrsz.Thing.__init__N)r0r?r@rrrrrrrsrrrrrrrrrtest_instance_attrs z$TestGetattrStatic.test_instance_attrcCs0Gdddt}|}|t|d|jdS)Nc@seZdZeddZdS)z.TestGetattrStatic.test_property..ThingcSs tddSNzI'm pretending not to existr6rRrrrrsz0TestGetattrStatic.test_property..Thing.xN)r0r?r@r8rrrrrrsrrrrrrrrszTestGetattrStatic.test_propertycsHGdddt}|Gfdddt}|}|t|ddS)Nc@seZdZddZdS)zKTestGetattrStatic.test_descriptor_raises_AttributeError..descriptorcWs tddSr!r6)_rrrrszSTestGetattrStatic.test_descriptor_raises_AttributeError..descriptor.__get__Nrrrrr descriptorsr#cseZdZZdS)zFTestGetattrStatic.test_descriptor_raises_AttributeError..ThingNr0r?r@rrZdescrrrsrr)r}rr3r)r9r#rrrr%r%test_descriptor_raises_AttributeErrors z7TestGetattrStatic.test_descriptor_raises_AttributeErrorcCs*Gdddt}|t|d|jdS)Nc@seZdZeZdS)z4TestGetattrStatic.test_classAttribute..ThingNrrrrrrsrrrr9rrrrtest_classAttributesz%TestGetattrStatic.test_classAttributecCs.Gdddt}|t|d|jddS)Nc@s eZdZejddZeZdS)z;TestGetattrStatic.test_classVirtualAttribute..ThingcSs|jSr)_xrRrrrrsz=TestGetattrStatic.test_classVirtualAttribute..Thing.xN)r0r?r@r^rorr}r)rrrrrs rr)r}rr3rrDr'rrrtest_classVirtualAttributesz,TestGetattrStatic.test_classVirtualAttributecCs:Gdddt}Gddd|}|t|d|jdS)Nc@seZdZeZdS)z>TestGetattrStatic.test_inherited_classattribute..ThingNrrrrrrsrc@s eZdZdS)zCTestGetattrStatic.test_inherited_classattribute..OtherThingNrsrrrrrsrrrr9rrrrrtest_inherited_classattributesz/TestGetattrStatic.test_inherited_classattributecCs^Gdddt}|}|t|d|j|t|dd|`|t|d|jdS)Nc@seZdZdZdgZddZdS)z+TestGetattrStatic.test_slots..ThingrrcSs d|_dSNrrrRrrrrsz4TestGetattrStatic.test_slots..Thing.__init__N)r0r?r@rrrrrrrrsrrrrrrrrr test_slotss zTestGetattrStatic.test_slotscCsGdddt}Gdddt|d}|t|ddGdd d |}Gd d d t|d}|t|ddGd d d |}|t|dddS)Nc@seZdZdZdS)z.TestGetattrStatic.test_metaclass..metarN)r0r?r@ryrrrrmetasr/c@s eZdZdS)z/TestGetattrStatic.test_metaclass..ThingNrsrrrrrsrrryrc@s eZdZdS)z-TestGetattrStatic.test_metaclass..subNrsrrrrsubsr0c@seZdZdZdS)z4TestGetattrStatic.test_metaclass..OtherThingrNr$rrrrrsrc@s eZdZdS)z9TestGetattrStatic.test_metaclass..OtherOtherThingNrsrrrrOtherOtherThing sr1rrr_r}rr3r)r9r/rr0rr1rrrtest_metaclasssz TestGetattrStatic.test_metaclasscCs.|tdddd|tddddS)Nrrlower)rr3rassertNotEqualrRrrrtest_no_dict_no_slotssz'TestGetattrStatic.test_no_dict_no_slotscCsFtt*}|t|dt|jWdn1s80YdS)NrF)rrrr3rr_rF)r9handlerrr%test_no_dict_no_slots_instance_members z7TestGetattrStatic.test_no_dict_no_slots_instance_membercCs<Gdddt}Gddd|}|t|d|jdS)Nc@seZdZdgZddZdS)z5TestGetattrStatic.test_inherited_slots..ThingrcSs d|_dSr-rrRrrrrsz>TestGetattrStatic.test_inherited_slots..Thing.__init__N)r0r?r@rrrrrrrsrc@s eZdZdS)z:TestGetattrStatic.test_inherited_slots..OtherThingNrsrrrrr!srrrr+rrrtest_inherited_slotssz&TestGetattrStatic.test_inherited_slotscspGdddtGfdddt}|}d|jd<|t|dddd_|t|d|jddS) Nc@seZdZddZdS)z5TestGetattrStatic.test_descriptor..descriptorcSsdSrrr9instanceownerrrrr)sz=TestGetattrStatic.test_descriptor..descriptor.__get__Nrrrrrr#(sr#cseZdZZdS)z.TestGetattrStatic.test_descriptor..FooNr0r?r@rrr#rrr+srrrcSsdSrr)rRr%vrrrru6rpz3TestGetattrStatic.test_descriptor..)r}rDrr3rrr9rrrr>rtest_descriptor's  z!TestGetattrStatic.test_descriptorcsVGdddtGfdddt}Gdddt|d}|t|d|jddS) Nc@seZdZddZdS)zDTestGetattrStatic.test_metaclass_with_descriptor..descriptorcSsdSrrr:rrrr<szLTestGetattrStatic.test_metaclass_with_descriptor..descriptor.__get__Nrrrrrr#;sr#cseZdZZdS)z>TestGetattrStatic.test_metaclass_with_descriptor..metaNr=rr>rrr/>sr/c@s eZdZdS)z?TestGetattrStatic.test_metaclass_with_descriptor..ThingNrsrrrrr@srrr)r}r_rr3rrD)r9r/rrr>rtest_metaclass_with_descriptor:sz0TestGetattrStatic.test_metaclass_with_descriptorcCs^Gdddt}Gddd|}|}|t|dd||j|t|dddS)Nc@seZdZdZdS)z6TestGetattrStatic.test_class_as_property..BaserNrrrrrBaseFsrCc@seZdZdZeddZdS)z;TestGetattrStatic.test_class_as_property..SomethingFcSs d|_tSr)executedr}rRrrrrKszETestGetattrStatic.test_class_as_property..Something.__class__N)r0r?r@rDr8rrrrr SomethingIsrErr)r}rr3rr8rD)r9rCrEr;rrrtest_class_as_propertyEs  z(TestGetattrStatic.test_class_as_propertycCsbGdddt}Gdddt}Gddd||d}|t|dd |t|dd dS) Nc@seZdZeddZdS)z4TestGetattrStatic.test_mro_as_property..MetacSstfSrrrRrrr__mro__Wsz.Meta.__mro__N)r0r?r@r8rGrrrrrnVsrnc@seZdZdZdS)z4TestGetattrStatic.test_mro_as_property..BaserNrrrrrrC[srCc@s eZdZdS)z9TestGetattrStatic.test_mro_as_property..SomethingNrsrrrrrE^srErrrr2)r9rnrCrErrrtest_mro_as_propertyUs z&TestGetattrStatic.test_mro_as_propertycsN|d_Gfdddt}|}d|_|t|dd|jdS)NFcs eZdZdZefddZdS)z4TestGetattrStatic.test_dict_as_property..Foorcs d_iSr)calledrRr*rrrDjsz=TestGetattrStatic.test_dict_as_property..Foo.__dict__N)r0r?r@rr8rDrrJrrrhsrrrr)rIrrrr3rr8r@rrJrtest_dict_as_propertydsz'TestGetattrStatic.test_dict_as_propertycs`|d_Gfdddt}Gdddt}|}||_|t|dd|jdS)NFcs eZdZdfdd ZZS)z9TestGetattrStatic.test_custom_object_dict..CustomNcsd_t||dSr)rIrget)r9keyr)rr*rrrLysz=TestGetattrStatic.test_custom_object_dict..Custom.get)N)r0r?r@rLrrrJrrCustomxsrNc@seZdZdZdS)z6TestGetattrStatic.test_custom_object_dict..FoorN)r0r?r@rrrrrr}srrr)rIrr}rDrr3rr8)r9rNrrrrJrtest_custom_object_dicttsz)TestGetattrStatic.test_custom_object_dictcCsLGdddt}Gddd|d}|}|t|dd||jdS)Nc@seZdZeddZdS)z?TestGetattrStatic.test_metaclass_dict_as_property..MetacSs d|_dSr)rDrRrrrrDszHTestGetattrStatic.test_metaclass_dict_as_property..Meta.__dict__Nr0r?r@r8rDrrrrrnsrnc@seZdZdZddZdS)z@TestGetattrStatic.test_metaclass_dict_as_property..ThingFcSs d|_dSNrrQrRrrrrszITestGetattrStatic.test_metaclass_dict_as_property..Thing.__init__N)r0r?r@rDrrrrrrsrrrQr)r_rr3rr8rD)r9rnrr;rrrtest_metaclass_dict_as_propertys z1TestGetattrStatic.test_metaclass_dict_as_propertycCs t}|ttd||dS)Nversion)r} assertIsNotr3rr[)r9sentinelrrr test_moduleszTestGetattrStatic.test_modulecCs|Gdddt}Gdddt|d}Gddd|d}|tt|dWdn1sb0Y||jdS) Nc@seZdZeddZdS)zWTestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_property..MetaMetacSsd|_tddS)NTrrR)rDrrRrrrrDsz`TestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_property..MetaMeta.__dict__NrPrrrrMetaMetasrXc@seZdZdZdS)zSTestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_property..MetaFN)r0r?r@rDrrrrrnsrnrc@s eZdZdS)zTTestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_property..ThingNrsrrrrrsrrQ)r_r-r7r3rr8rD)r9rXrnrrrr3test_metaclass_with_metaclass_with_dict_as_propertys  *zETestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_propertyN)r0r?r@rrr rr&r(r*r,r.r3r6r8r9rArBrFrHrKrOrSrWrYrrrrrs,        rc@sdeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ dS)TestGetGeneratorStatecCsdd}||_dS)NcsstdD] }|VqdSNrrLZnumberrrrnumber_generators z5TestGetGeneratorState.setUp..number_generator) generator)r9r]rrrrszTestGetGeneratorState.setUpcCs t|jSr)r3Zgetgeneratorstater^rRrrr_generatorstatesz%TestGetGeneratorState._generatorstatecCs||tjdSr)rr_r3Z GEN_CREATEDrRrrr test_createdsz"TestGetGeneratorState.test_createdcCs t|j||tjdSr)nextr^rr_r3Z GEN_SUSPENDEDrRrrrtest_suspendeds z$TestGetGeneratorState.test_suspendedcCs"|jD]}q||tjdSr)r^rr_r3 GEN_CLOSEDrMrrrtest_closed_after_exhaustions z2TestGetGeneratorState.test_closed_after_exhaustioncCsL|t|jtWdn1s,0Y||tjdSr)r-rr^r*rr_r3rcrRrrr%test_closed_after_immediate_exceptions *z;TestGetGeneratorState.test_closed_after_immediate_exceptioncs,fdd}|_tjtjdS)Nc3s<tdD].}tj|VtjqdSr[)rrr_r3Z GEN_RUNNINGr\rRrrrunning_check_generators zCTestGetGeneratorState.test_running..running_check_generator)r^ra)r9rfrrRr test_runnings  z"TestGetGeneratorState.test_runningcCs@d}|D].}tt|}||t|||t|q dS)Nz0GEN_CREATED GEN_RUNNING GEN_SUSPENDED GEN_CLOSEDrrgr3rreprrr9namesrFstaterrrtest_easy_debuggings  z)TestGetGeneratorState.test_easy_debuggingc Csd dd}|gd}|t|dgddt||t|dgddddt||t|dgddddt||t|dgdddd d z t|WntyYn0|t|idS) Ncss$d}|D]}|dkrd}|VqdS)NrrrQr)lstrrr?rrrreachs z;TestGetGeneratorState.test_getgeneratorlocals..eachr)rrnr)rrnr?rrrrQ)rrnr?rr)Nrr3getgeneratorlocalsra StopIteration)r9roZnumbersrrrtest_getgeneratorlocalss8            z-TestGetGeneratorState.test_getgeneratorlocalscCsVdd}|}|t|iz t|Wnty>Yn0|t|idS)Ncss dVdSrhrrrrr yield_oneszFTestGetGeneratorState.test_getgeneratorlocals_empty..yield_onerp)r9rtrrrrtest_getgeneratorlocals_emptys  z3TestGetGeneratorState.test_getgeneratorlocals_emptycCsH|ttjd|ttjdd|ttjt|ttjddS)NrcSsdSrrrrrrrurpzETestGetGeneratorState.test_getgeneratorlocals_error..)rr)r-r.r3rqr2rRrrrtest_getgeneratorlocals_errorsz3TestGetGeneratorState.test_getgeneratorlocals_errorN)r0r?r@rr_r`rbrdrergrmrsrurvrrrrrZs rZc@sTeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ dS)TestGetCoroutineStatecs&tjddfdd}||_dS)NcsstdD] }|VqdSr[rLr\rrrnumber_coroutines z5TestGetCoroutineState.setUp..number_coroutinecsIdHdSrrrrxrr coroutinesz.TestGetCoroutineState.setUp..coroutine)r^rz)r9rzrryrrs  zTestGetCoroutineState.setUpcCs|jdSr)rzrkrRrrrrszTestGetCoroutineState.tearDowncCs t|jSr)r3ZgetcoroutinestaterzrRrrr_coroutinestatesz%TestGetCoroutineState._coroutinestatecCs||tjdSr)rr{r3Z CORO_CREATEDrRrrrr`sz"TestGetCoroutineState.test_createdcCs"|jd||tjdSr)rzsendrr{r3ZCORO_SUSPENDEDrRrrrrb!s z$TestGetCoroutineState.test_suspendedcCs@z|jdWqty&Yq*Yq0q||tjdSr)rzr|rrrr{r3 CORO_CLOSEDrRrrrrd%s   z2TestGetCoroutineState.test_closed_after_exhaustioncCsL|t|jtWdn1s,0Y||tjdSr)r-rrzr*rr{r3r}rRrrrre.s *z;TestGetCoroutineState.test_closed_after_immediate_exceptioncCs@d}|D].}tt|}||t|||t|q dS)Nz4CORO_CREATED CORO_RUNNING CORO_SUSPENDED CORO_CLOSEDrhrjrrrrm3s  z)TestGetCoroutineState.test_easy_debuggingcshtjdddfdd }|}|t|dd|d|t|ddddS) Ncss dVdSrrrrrrgencoro<sz>TestGetCoroutineState.test_getcoroutinelocals..gencorocsd}IdHdSrPrrr~rrrAsz;TestGetCoroutineState.test_getcoroutinelocals..func)rr~rQ)rr~r)N)r^rzrr3Zgetcoroutinelocalsr|)r9rrmrrrtest_getcoroutinelocals;s     z-TestGetCoroutineState.test_getcoroutinelocalsN) r0r?r@rrr{r`rbrdrermrrrrrrw s  rwc@s eZdZdS) MySignatureNrsrrrrrMsrc@s eZdZdS) MyParameterNrsrrrrrRsrc@seZdZeddZddZddZddZd d Zd d Z d dZ ddZ ddZ e eedddZe eedddZe ddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Z d4d5Z!eedd6d7Z"eedd8d9Z#d:d;Z$dd?Z&d@dAZ'dBdCZ(dDdEZ)dFdGZ*dHdIZ+dJdKZ,dLdMZ-eeddNdOZ.dPdQZ/dRdSZ0dTS)UTestSignatureObjectcKs@tj|fi|}tdd|jD|j|jur8dn|jfS)NcssJ|]B}|j|j|jurdn|j|j|jur.dn|jt|jfVqdS).N)rFrempty annotationrrr4)rparamrrr ]s z0TestSignatureObject.signature...)r3rMtupler$valuesreturn_annotationr)rkwsigrrrrMZszTestSignatureObject.signaturec Cstj}tj}|t|d|t|jdddd}t|}|jdj|j d}|jd j|j d}|jd }|jd }|jd } |jd } |jd} |||| | | f| t d"|||| | | fWdn1s0Y| t d"||| || | fWdn1s&0Y| t d"|| ||| | fWdn1sf0Y| t d"|||| | | fWdn1s0Y| jd d} | t d"|||| | | fWdn1s0Y| t d|||fWdn1s,0Y| t d||||fWdn1sh0Y| t d|||fWdn1s0Y| t| d| dt|vdS)N()zmappingproxy(OrderedDict())rdc_sdSrr)popkpodpkdkorrrrrr*msz7TestSignatureObject.test_signature_object..testrrrrrrrrzwrong parameter orderrFzduplicate parameter namezfollows default argumentz .foor4F) pickle_versubclassr)rFr)r$rT)rirjr3rMrpickleHIGHEST_PROTOCOLsubTestloadsdumpsrrr-r. collections OrderedDictr$rrrrr/rh) r9rZ foo_partialrverZ sig_pickledZmyparamZmyparamsZmysigrrrtest_signature_object_pickles. ,   z0TestSignatureObject.test_signature_object_picklecCszdd}t|}|td|_Wdn1s80Y|td|jd<Wdn1sl0YdS)NcSsdSrrr4rrrr*sz=TestSignatureObject.test_signature_immutability..testrr)r3rMr-r7rr.r$r9r*rrrrtest_signature_immutabilitys   $ z/TestSignatureObject.test_signature_immutabilitycCsdd}|||ddS)NcSsdSrrrrrrr*sz9TestSignatureObject.test_signature_on_noarg..testr.rrMr9r*rrrtest_signature_on_noargsz+TestSignatureObject.test_signature_on_noargcCs&ddddd}|||ddS)Nrrrr3cSsdSrrrrrrr*sz9TestSignatureObject.test_signature_on_wargs..test))r..positional_or_keyword)r.rrrrrrrrtest_signature_on_wargss z+TestSignatureObject.test_signature_on_wargscCs@tttddd}|||ddtdfddtdfftfdS)N)rrr3cSsdSrrrrrrr*sz;TestSignatureObject.test_signature_on_wkwonly..testr. keyword_onlyr)floatrrrrMrrrrtest_signature_on_wkwonlys   z-TestSignatureObject.test_signature_on_wkwonlyc CsJddddddtddd }|||d d d d dddtdffdfdS)Nr]r)rrrbaz)rrrQrc_sdSrr)rrrQrrrrrrr*sz@TestSignatureObject.test_signature_on_complex_args..testr)rr]rr)r.rvar_positional)rQ.rr)rr.rr. var_keyword)r])rrrMrrrrtest_signature_on_complex_argss  z2TestSignatureObject.test_signature_on_complex_argscsddddGfddd}||d||d|||jd|||jd|||jd|||jddS) NcWsdSrrrrrrtest_args_onlyszGTestSignatureObject.test_signature_without_self..test_args_onlyc_sdSrrrrrrrtest_args_kwargs_onlyszNTestSignatureObject.test_signature_without_self..test_args_kwargs_onlycsTeZdZeddZeddZeedZ edZ eedZ edZ dS)z:TestSignatureObject.test_signature_without_self..AcWsdSrrrrrrtest_classmethodszKTestSignatureObject.test_signature_without_self..A.test_classmethodcWsdSrrrrrrtest_staticmethodszLTestSignatureObject.test_signature_without_self..A.test_staticmethodrN) r0r?r@rWrrVrrir$rr r r rrrrrrs     r)r..r.)rr..r.)rrMrr r r rPrrrtest_signature_without_selfs*  z/TestSignatureObject.test_signature_without_selfr9csddl}fdd}fdd}||jfdd}|dd |d d |d d |dd|dd|dd|dd|dd|dtjdj|t|tj j t t }||j |t j|dj|tj|ij|tj|tj|dj|tjtd(Gddd}||Wdn1s0Y|tj|tj||jdS)Nrcs<t|}t|tjt|jdj d|S)zAUse this to test unbound methods (things that should have a self)rr9) r3rMr/rhr/rr|r$rrFrrMrRrrtest_unbound_method s zKTestSignatureObject.test_signature_on_builtins..test_unbound_methodcsBt|}t|tj|jr>t|jdj d|S)zRUse this to test bound methods or normal callables (things that don't expect self)rr9) r3rMr/rhr/r$r5r|rrFrrRrr test_callable s  zETestSignatureObject.test_signature_on_builtins..test_callablecs j|jSr)r$rr)rMrrr& rpz9TestSignatureObject.test_signature_on_builtins..prRrCrsbytesrgQ @r%#nrTrFlocalrr[r;sabczno signature foundc@seZdZeZdS)zDTestSignatureObject.test_signature_on_builtins..ThisWorksNowN)r0r?r@r_r"rrrr ThisWorksNow? sr)rDrErr[maxsizerr$r}r<r=r>r?StringIObytes maketransrfromkeysr_r"rrcminrr __delitem__r8rZ#docstring_with_signature_but_no_doc)r9rDrrr&rrrrrtest_signature_on_builtins sB              *  z.TestSignatureObject.test_signature_on_builtinscCsdddl}|j}dd}||}|t|t|tddd}|tj|ddt|dS) Nrcs ttdfdd }|S)Nr3cs|i|SrrrrrrwrapperR sz\TestSignatureObject.test_signature_on_decorated_builtins..decorator..wrapper)rir#rrrrrr decoratorQ szKTestSignatureObject.test_signature_on_decorated_builtins..decoratorrc_sdSrrrrrr wrapper_like\ rpzNTestSignatureObject.test_signature_on_decorated_builtins..wrapper_likeFZfollow_wrapped)rDrErr3rMr)r9rDrrZdecorated_funcrrrr$test_signature_on_decorated_builtinsJ s  z8TestSignatureObject.test_signature_on_decorated_builtinscCszddl}|tdt|jWdn1s60Y|tdttWdn1sl0YdS)Nrzno signature found for builtin)rDrrr3rMrHr)r9rDrrr'test_signature_on_builtins_no_signaturea s*z;TestSignatureObject.test_signature_on_builtins_no_signaturecCs:|tdtdWdn1s,0YdS)Nis not a callable objectr)rr.r3rMrRrrrtest_signature_on_non_functionl sz2TestSignatureObject.test_signature_on_non_functioncsdddd}Gddd}tj|}tj||}|||t||}|||||}|`|||dtjfdd }tj d |P||}| t|d|_ | t||t||Wdn1s0YdS) NTkwonlyc_sdSrrrrrZ kwonlyreqrrrrrrq szITestSignatureObject.test_signature_from_functionlike_object..funcc@seZdZddZddZdS)zMTestSignatureObject.test_signature_from_functionlike_object..funclikecSs2|j|_|j|_|j|_|j|_|j|_||_dSr)r0rEr5 __defaults____kwdefaults__r)r9rrrrry s zVTestSignatureObject.test_signature_from_functionlike_object..funclike.__init__c_s|j|i|Srrrrrrr" szVTestSignatureObject.test_signature_from_functionlike_object..funclike.__call__N)r0r?r@rr"rrrrfuncliket srrcst|drdS|S)N _builtinmockTr])r<Z _orig_isdescrr_isdesc s zLTestSignatureObject.test_signature_from_functionlike_object.._isdesczinspect.ismethoddescriptor) r3r/ from_callablerrMrrrrrr8rr/)r9rrZsig_funcZ sig_funclikeZflrZ builtin_funcrrr'test_signature_from_functionlike_objectp s(     z;TestSignatureObject.test_signature_from_functionlike_objectcs:ddddGfddd}|tt|ddS)NTrc_sdSrrrrrrr szCTestSignatureObject.test_signature_functionlike_class..funccs2eZdZddZjZjZjZjZjZdS)zGTestSignatureObject.test_signature_functionlike_class..funclikecSsdSrr)r9Zmarkerrrrr szPTestSignatureObject.test_signature_functionlike_class..funclike.__init__N)r0r?r@rrEr5rrrrrrr s rz(marker))rrr3rM)r9rrrr!test_signature_functionlike_class s z5TestSignatureObject.test_signature_functionlike_classcCsGddd}|||jdtf|||jd|||d|td||Wdn1s~0YdS)Nc@s4eZdZddZd edddZddZd d Zd S) z:TestSignatureObject.test_signature_on_method..TestcWsdSrrrrrrr szCTestSignatureObject.test_signature_on_method..Test.__init__rrcSsdSrrr9rrrrrrT sz=TestSignatureObject.test_signature_on_method..Test.m1cWsdSrrrrrrm2 sz=TestSignatureObject.test_signature_on_method..Test.m2cSsdSrrr4rrrr" szCTestSignatureObject.test_signature_on_method..Test.__call__N)r)r0r?r@rrrTrr"rrrrr srr..r)rr.rrzinvalid method signature)rrMrTrrrr)r9rrrrtest_signature_on_method s  z,TestSignatureObject.test_signature_on_methodcCs>Gddd}t|jdd}|||dtfdS)Nc@seZdZdedddZdS)zETestSignatureObject.test_signature_wrapped_bound_method..TestrrcSsdSrrrrrrrT szHTestSignatureObject.test_signature_wrapped_bound_method..Test.m1N)r)r0r?r@rrTrrrrr src_sdSrrrrrrm1d szDTestSignatureObject.test_signature_wrapped_bound_method..m1dr)rir#rTrrMr)r9rrrrr#test_signature_wrapped_bound_method s   z7TestSignatureObject.test_signature_wrapped_bound_methodcCsDGddd}|j}|||d|j}|||ddS)Nc@seZdZeddddZdS)z?TestSignatureObject.test_signature_on_classmethod..TestrrcSsdSrr)rrrrrrr szCTestSignatureObject.test_signature_on_classmethod..Test.fooN)r0r?r@rWrrrrrr sr))r)rr.r.rrrMr9rmethrrrtest_signature_on_classmethod s  z1TestSignatureObject.test_signature_on_classmethodcCsDGddd}|j}|||d|j}|||ddS)Nc@seZdZeddZdS)z@TestSignatureObject.test_signature_on_staticmethod..TestcSsdSrr)rrrrrr szDTestSignatureObject.test_signature_on_staticmethod..Test.fooN)r0r?r@rVrrrrrr sr)))r..r)r..r.rrrrrtest_signature_on_staticmethod s  z2TestSignatureObject.test_signature_on_staticmethodc Csddlm}tj}dd}||||d|td t||dWdn1sb0Y|td"t||ddWdn1s0Yd d}||||d ||||dd ||||dd d d||||dd dd||||ddd dd||||ddddd}||||dd||||ddd||||dd dd||||dd dddd||||dd ddddd||||ddd||||ddddtddd d}t|}|_ |||||dd!d"d#td$ffdf|||||dd d"d#td$ffdft|||dd }d%d&}|||d'dd(d}|||d)||d(d*d&}|||dd(dd+d}|||d,||d'd d-d.d&}|||d(d(d/d'd+d0}|||d1t|j d2d3d4}|||j i|j d5dGd6d&}||d7d }t|j d3d}|||j i|j d8t| 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||||ddB||||dd dC||||dd ddD||||dd dd dE||||ddd dFdS)HNr)rjcSsdSrrrrrrr* sz;TestSignatureObject.test_signature_on_partial..testrhas incorrect argumentsrr4cSsdSrrrrrrr* s))rr..rr..rr..r.))rrr.rr))rrr.rr.)rr))rrr.rrr.))rrr.))rr.rr..rrr.c_sdSrr)rrrrrrrr*> s))rrr.))rrr.rTrJ)r*r))rrr.rr.r))rrrr.)rr*rrcSsdSrrrrrrr*m srr.rcSs|Srrr4rrrr} sz:TestSignatureObject.test_signature_on_partial..foor])))rr.r.cSs |||fSrrrrrrr sri)))rri.rr.)rrir]cSs ||||fSrrrrrrr s)rr)rr))r)rr].r)rr.r)rri.r.rr)rrrricSs |||fSrrrrrrr s )rrrrQ)rrQr)rrQr)rQr]rc[sdSrr)rrrrrrrrr srrrz(a, b, /, c, d, **kwargs)))r..Zpositional_onlyr..rr..rr.))rrr.))rr.))rr.rrr.))rrrr.)rrr)rirjr3r-rrMrrrr0bindrrr$copyrr.r/rr) r9rjr-r*rZpsigrZ_foobaparamsrrrtest_signature_on_partial s .0          z-TestSignatureObject.test_signature_on_partialcsddlmGfddd}|tdt|jWdn1sL0YGfddd}|||jd|||jdGfd dd}|||jd dS) Nrr$cseZdZddZeZdS)ATestSignatureObject.test_signature_on_partialmethod..SpamcSsdSrrrrrrr* sFTestSignatureObject.test_signature_on_partialmethod..Spam.testNr0r?r@r*rrr rrSpam srrcs&eZdZddddZeddZdS)r rQrcSsdSrr)itrrrrrr* sr rrNrrr rrr s)))r..rrrr.rrQ))rrrQcs$eZdZddddZedZdS)r annorRcSsdSrrrrrrr* sr rN)r0r?r@r*rrr rrr s)))r9.rr.) rir$rrr3rMrrr)r9rrr rtest_signature_on_partialmethod s *z3TestSignatureObject.test_signature_on_partialmethodcCs(dd}d|_|tt|ddS)NcSsdSrrr4rrrr rpzETestSignatureObject.test_signature_on_fake_partialmethod..foorQz(a))_partialmethodrrr3rMr9rrrr$test_signature_on_fake_partialmethod sz8TestSignatureObject.test_signature_on_fake_partialmethodcsddlfddGfddd}|||jd|||jd||j|jdd d fd dGfd dd}|||jd|||jd dd}|j|_|||ddS)Nrcs tdfdd }|S)Nrcs|i|Srrrrrrr sSTestSignatureObject.test_signature_on_decorated..decorator..wrapper)r#rrrirrr szBTestSignatureObject.test_signature_on_decorated..decoratorcseZdZddZdS).FoocSsdSrrr9rrrrrr sz@TestSignatureObject.test_signature_on_decorated..Foo.barN)r0r?r@rrrrrr sr))r9..rrr.))rr.FrrcsNtdfdd }t}t|jdd}|j|d|_|S)Nrcsdg|Ri|SrQrrrrrr( srrr+) r#rr3rMrr$rrr0)rrr new_paramsrrrr' s  cseZdZddZdS)rcSsdSrrrrrrr"1 szETestSignatureObject.test_signature_on_decorated..Foo.__call__Nr0r?r@r"rrrrr0 s)r.cSsdSrrrrrrwrapped_foo_call? szITestSignatureObject.test_signature_on_decorated..wrapped_foo_call)rirrMrr" __wrapped__)r9rr r)rrirtest_signature_on_decorated s2   z/TestSignatureObject.test_signature_on_decoratedcCs>Gddd}|||dGdddt}Gddd|d}|||dGdddt}Gd dd|d}|||d |||d Gd d d t}Gdddt|d}Gddd|d}|||d |||d|||d Gdddt}Gddd|d}|||ddS)Nc@seZdZddZdS)6TestSignatureObject.test_signature_on_class..CcSsdSrrr9rrrrrK s?TestSignatureObject.test_signature_on_class..C.__init__Nr0r?r@rrrrrrJ sr)r.c@seZdZddZdS)7TestSignatureObject.test_signature_on_class..CMcSsdSrr)rrrrrr"S sz@TestSignatureObject.test_signature_on_class..CM.__call__Nrrrrrr9R sr9c@seZdZddZdS)r#cSsdSrrr9rrrrrV sr%Nr&rrrrrU srcs"eZdZddfdd ZZS)r(rrcst||||Srrr&mclsrFbasesdctrrrrr&^ s?TestSignatureObject.test_signature_on_class..CM.__new__r0r?r@r&rrrrrr9] sc@seZdZddZdS)r#cSsdSrrr)rrrra sr%Nr&rrrrr` sr))rF..rr-..rr...r)rr.r.cs*eZdZddfdd ZddZZS)z8TestSignatureObject.test_signature_on_class..CMMrrcst||||Srr*r+rrrr&p sz@TestSignatureObject.test_signature_on_class..CMM.__new__cSs t|||Sr)r_)rnmbsdtrrrr"r szATestSignatureObject.test_signature_on_class..CMM.__call__)r0r?r@r&r"rrrrrCMMo sr7cs"eZdZddfdd ZZS)r(rrcst||||Srr*)r,rFr-r.rrrrr&u sr/r0rrrrr9t sc@seZdZddZdS)r#cSsdSrrr)rrrrx sr%Nr&rrrrrw s)))r4..r)r5..r)r6..r.cs"eZdZddfdd ZZS)r(rr8cst|||Sr)rr)rrFr-r.rrrrr sz@TestSignatureObject.test_signature_on_class..CM.__init__)r0r?r@rrrrrrr9 sc@seZdZddZdS)r#cSsdSrrr)rrrr sr%Nr&rrrrr s))r1r2r3)rr.r.)rrMr_)r9rr9r7rrrtest_signature_on_classI sD        z+TestSignatureObject.test_signature_on_classcCsxGddd}Gddd|}Gddd|}Gddd|}|||d |||d |||d dS) Nc@seZdZdddZdS)z9TestSignatureObject.test_signature_on_subclass..Arc_s t|Srr}r&)rrrrrrrr& szATestSignatureObject.test_signature_on_subclass..A.__new__N)rr0r?r@r&rrrrr src@seZdZddZdS)z9TestSignatureObject.test_signature_on_subclass..BcSsdSrrr)rrrr szBTestSignatureObject.test_signature_on_subclass..B.__init__Nr&rrrrr src@seZdZdddZdS)z9TestSignatureObject.test_signature_on_subclass..Crrc_s t|Srr:)rrrrrrrrr& szATestSignatureObject.test_signature_on_subclass..C.__new__N)rrr;rrrrr src@s eZdZdS)z9TestSignatureObject.test_signature_on_subclass..DNrsrrrrr srr))rr.r)rr.rrr.))r<rr.r)r9rrrrrrrtest_signature_on_subclass s   z.TestSignatureObject.test_signature_on_subclasscCsPddlm}m}|d}Gddd||}|||ddtdffdfdS) Nr)GenericTypeVarrc@seZdZeddddZdS)zATestSignatureObject.test_signature_on_generic_subclass..ANr2cSsdSrrr$rrrr szJTestSignatureObject.test_signature_on_generic_subclass..A.__init__)r0r?r@rrrrrrr srr.r)typingr>r?rrMr)r9r>r?rrrrr"test_signature_on_generic_subclass s  z6TestSignatureObject.test_signature_on_generic_subclasscCsGddd}|tt|dGddd|}|tt|dGdddt}Gddd|}|td"|t|dWdn1s0Y|td"|t|dWdn1s0YdS) Nc@s eZdZdSzCTestSignatureObject.test_signature_on_class_without_init..CNrsrrrrr rprrc@s eZdZdSzCTestSignatureObject.test_signature_on_class_without_init..DNrsrrrrr rprc@s eZdZdSrBrsrrrrr rpc@s eZdZdSrCrsrrrrr rpzcallable.*is not supported)rrr3rMr_rr)r9rrrrr$test_signature_on_class_without_init s0z8TestSignatureObject.test_signature_on_class_without_initcCsd}|tttj|Gdddtj}Gddd}Gddd||}|tt|||tt||Gdd d |}|tt|d Gd d d t}Gd dd||d}|tt|ddS)Nz=(file, protocol=None, fix_imports=True, buffer_callback=None)c@s eZdZdS)z>TestSignatureObject.test_signature_on_builtin_class..PNrsrrrrr rprc@s eZdZdS)zGTestSignatureObject.test_signature_on_builtin_class..EmptyTraitNrsrrrr EmptyTrait rprEc@s eZdZdS)z?TestSignatureObject.test_signature_on_builtin_class..P2NrsrrrrP2 rprFc@seZdZddZdS)z?TestSignatureObject.test_signature_on_builtin_class..P3cSsdSrr)r9rQrrrr szHTestSignatureObject.test_signature_on_builtin_class..P3.__init__Nr&rrrrP3 srGr,c@seZdZddZdS)zBTestSignatureObject.test_signature_on_builtin_class..MetaPcSsdSrr)rrrrrrr" szKTestSignatureObject.test_signature_on_builtin_class..MetaP.__call__NrrrrrMetaP srHc@s eZdZdS)z?TestSignatureObject.test_signature_on_builtin_class..P4NrsrrrrP4 srIrz (foo, bar))rrr3rMr<r=r_)r9rrrErFrGrHrIrrrtest_signature_on_builtin_class sz3TestSignatureObject.test_signature_on_builtin_classcCsGddd}|||dGddd}|tdt|Wdn1s^0YGddd||}|||dGd d d }d d |_|||d||_|td ||Wdn1s0YdS)Nc@seZdZddZdS)zCTestSignatureObject.test_signature_on_callable_objects..FoocSsdSrrr$rrrr" szLTestSignatureObject.test_signature_on_callable_objects..Foo.__call__Nrrrrrr srr'c@s eZdZdS)zDTestSignatureObject.test_signature_on_callable_objects..SpamNrsrrrrr srrc@s eZdZdS)zCTestSignatureObject.test_signature_on_callable_objects..BarNrsrrrrBar srKc@s eZdZdS)zGTestSignatureObject.test_signature_on_callable_objects..WrappedNrsrrrrWrapped srLcSsdSrrr4rrrru rpzHTestSignatureObject.test_signature_on_callable_objects.. wrapper loop)rrMrr.r3r!r)r9rrrKrLrrr"test_signature_on_callable_objects s&*  z6TestSignatureObject.test_signature_on_callable_objectscCs||dddddS)Nr]cSs|Srrr4rrrru rpz?TestSignatureObject.test_signature_on_lambdas..)))rr].r.)r]rrRrrrtest_signature_on_lambdas sz-TestSignatureObject.test_signature_on_lambdascCsLttddd}|t|dk|t|dk|t|tk|t|tkttddd}|t|t|k|t|t|k|tt|tt|ttddd}|t|t|k|t|t|k| tt|tt|tdd d}|t|t|k|t|t|k| tt|tt|ddttdd d}|t|t|k|t|t|k| tt|tt|td d d}|t|t|k|t|t|k| tt|tt|ttdd d}|t|t|k|t|t|k| tt|tt|ttddd}|t|t|k|t|t|k| tt|tt|dd}dd}|t|t|k|t|t|k|tt|tt|dddd}dddd}|t|t|k|t|t|k|tt|tt|dddd}dddd}|t|t|k|t|t|k|tt|tt|dd}dddd}|t|t|k|t|t|k| tt|tt|ddtddd}ddtddd}|t|t|k|t|t|k|tt|tt|dS)NrcSsdSrrrrrrr rpz8TestSignatureObject.test_signature_equality..foorcSsdSrrrrrrr rpz8TestSignatureObject.test_signature_equality..barcSsdSrrrrrrr rprcSsdSrrrrrrr% rpcSsdSrrrrrrr+ rprcSsdSrrrrrrrr1 rpcSsdSrrrrrrr7 rpcSsdSrrrrrrrrQ< rpz9TestSignatureObject.test_signature_equality..spamcSsdSrrrrrrrB rpcSsdSrrrrrrrrrC rprr4cSsdSrrrrrrrI rpcSsdSrrrRrrrrJ rpcSsdSrrposrrrrrrrP rpcSsdSrrrTrrrrrrrQ rpcSsdSrrrSrrrrW rpcSsdSrrrUrrrrX rprc_sdSrr)rTrrrrrrrrr^ rpc_sdSrr)rTrrrrrrrrr_ rp) rrr8r3rMr/r rhashr5)r9rrrQrrrtest_signature_equality sz+TestSignatureObject.test_signature_equalitycCstj}tj}dd}t|}||d|jgd}|t|t||t|t|jddddd d }|t|tt|ifd d}| t d tt|Wdn1s0Yidd d}| t d tt|Wdn1s0YdS)NcSsdSrrr4rrrri rpz8TestSignatureObject.test_signature_hashable..foorr+rQrrrcSsdSrrr4rrrrr rpz8TestSignatureObject.test_signature_hashable..barcSsdSrrr4rrrru rpunhashable typecSsdSrrr4rrrry rp) r3r/r-rMPOSITIONAL_OR_KEYWORDrrWr5rrr.)r9rrrfoo_sigZ manual_sigrrrrtest_signature_hashablee s"   ,z+TestSignatureObject.test_signature_hashablecCsdddtdddd}|tt|ddddtdddd}|tt|d d d}|tt|d tttttfdd d}|tt|d ddlm }tt|ttfddd}|tt|ddS)Nrrrr2c[sdSrrrrrrrrrr~ sz3TestSignatureObject.test_signature_str..fooz*(a: int = 1, *, b, c=None, **kwargs) -> 42c_sdSrr)rrrrrrrrr sz.(a: int = 1, *args, b, c=None, **kwargs) -> 42cSsdSrrrrrrr srcSsdSrrr4rrrr sz#(a: list[str]) -> tuple[str, float]r)TuplecSsdSrrr4rrrr sz#(a: list[str]) -> Tuple[str, float])r)r) rrrr3rMr|rrr@r_)r9rr_rrrtest_signature_str} s& z&TestSignatureObject.test_signature_strcCstj}tj}dd}t|}t|j}|dj|jd|d<|j|d|_ | t t|d| t ||d|jgdd| t ||d|j|d |j gdd | t ||d|j|d |j gdd dS) Nc[s||fSrr)a_porrrrrr* szDTestSignatureObject.test_signature_str_positional_only..testrrr+z(a_po, /, *, b, **kwargs)rz(foo, /)rz(foo, /, **bar)z(foo, /, *bar))r3r-r/rMr|r$rrr.r0rrrVAR_POSITIONAL)r9rrr*rrrrr"test_signature_str_positional_only s2     z6TestSignatureObject.test_signature_str_positional_onlycCsdddd}t|}|jdd}||jd|j|jd}||j|j|jdd}||jd||t|dS)NrrcSsdSrrrrrrr* sz=TestSignatureObject.test_signature_replace_anno..testrY)r3rMrrrrrrrrrtest_signature_replace_anno s   z/TestSignatureObject.test_signature_replace_annocCsRGddd}Gddd|}|||jd|||j||jdS)Nc@s$eZdZd dddddddZdS) zFTestSignatureObject.test_signature_on_mangled_parameters..Spamrr) _Spam__p2r) _Spam__p1recSsdSrr)r9rfrerrrr szJTestSignatureObject.test_signature_on_mangled_parameters..Spam.fooN)rrrrrrr src@s eZdZdS)zETestSignatureObject.test_signature_on_mangled_parameters..HamNrsrrrrHam srg))r)rfrrr)rerrr.)rrMr)r9rrgrrr$test_signature_on_mangled_parameters s z8TestSignatureObject.test_signature_on_mangled_parameterscCs:Gdddtj}dddd}||}|||dS)Nc@s eZdZdS)zPTestSignatureObject.test_signature_from_callable_python_obj..MySignatureNrsrrrrr rprrrcSsdSrrrrrrr rpzHTestSignatureObject.test_signature_from_callable_python_obj..foor3r/rassertIsInstancer9rrr\rrr'test_signature_from_callable_python_obj s z;TestSignatureObject.test_signature_from_callable_python_objcCs:Gdddtj}Gddd}||}|||dS)Nc@s eZdZdS)zKTestSignatureObject.test_signature_from_callable_class..MySignatureNrsrrrrr rprc@s eZdZdS)zCTestSignatureObject.test_signature_from_callable_class..fooNrsrrrrr rprrirkrrr"test_signature_from_callable_class s z6TestSignatureObject.test_signature_from_callable_classcCs.Gdddtj}|tj}|||dS)Nc@s eZdZdS)zQTestSignatureObject.test_signature_from_callable_builtin_obj..MySignatureNrsrrrrr rpr)r3r/rr<r=rj)r9rrrrr(test_signature_from_callable_builtin_obj s z.cSsdSrr)rrrrrru rp)r3rMr$r5)r9Zp1p2rrr#test_signater_parameters_is_ordered sz7TestSignatureObject.test_signater_parameters_is_orderedN)1r0r?r@rVrMrrrrrrrrrrrSrrrrrrrrrrrr rrr"r9r=rArDrJrNrOrXr]r`rcrdrhrlrmrnrorqrrrrrYsz 0  # F  5 Y%CQ    S   rc@sPeZdZddZddZddZddZd d Zd d Ze d dZ ddZ dS)TestParameterObjectcCsltj}||j|jko:|jko:|jko:|jkn|t |jd|dt |jvdS)Nr.) r3r-r/r.r[rb KEYWORD_ONLYrrrri)r9rrrrtest_signature_parameter_kinds s z2TestParameterObject.test_signature_parameter_kindscCstjddtjjd}||jd||jd||j|j||j tjj| t d tjddddWdn1s0Y| t d"tjdtjj dWdn1s0Y| t d "tjdtjj dWdn1s0Y| t d "tjd tjj dWdn1sB0Y| t d "tjd tjj dWdn1s0Y| t d $tjddtjj dWdn1s0Y| t d $tjddtjjdWdn1s0Ytjddtjjd}| t d  |jtjjdWdn1sX0Y|t|d|dt|vdS)Nrr]rrz)value '123' is not a valid Parameter.kindZ123znot a valid parameter namerUrname must be a strzis not a valid parameter name$z.azcannot have default valuesrrz is not a valid Parameter.kindr)r3r-rsrUrrrrrFr5rrrrr[r)r9r&rprrr test_signature_parameter_replaceA s<    ,  .z4TestParameterObject.test_signature_parameter_replacecCsB|td"tjdtjjdWdn1s40YdS)Nrvr)rr.r3r-r.rRrrr(test_signature_parameter_positional_onlyi sz.testrtoo many positional argumentsrr]rR)got an unexpected keyword argument 'spam'rrrr.rrrrtest_signature_bind_empty s*.z+TestSignatureBind.test_signature_bind_emptycCsdd}|||dif|||ddif|||dddif||j|dd dd dif||j|ddd dd dif||j|d d dd d if||j|dddd dd difdS)Nc_s||fSrrrrrrr* sz7TestSignatureBind.test_signature_bind_var..testrrrrrrrrrr]rrrrrrrrtest_signature_bind_var s  z)TestSignatureBind.test_signature_bind_varcCsVdd}|||dddd|td"||ddddWdn1sT0Y|td ||dWdn1s0Y|td ||Wdn1s0Ydd d}|||dddd|||ddd ddd}||j|d ddd||j|d dd||j|d dddS)NcSs |||fSrrrrrrr* sz=TestSignatureBind.test_signature_bind_just_args..testrrrrrrz missing a required argument: 'b'z missing a required argument: 'a'r]cSs |||fSrrrrrrr* s)rrr]cSs |||fSrrrrrrr* srrP)r]rrr4)r]rrr)rr]r)r])rrrrrrrrtest_signature_bind_just_args s&0*(  z/TestSignatureBind.test_signature_bind_just_argscCs6dd}|||d|||dddddS)NcWs|Srrrrrrr* szATestSignatureBind.test_signature_bind_varargs_order..testrrrrrrrrrr!test_signature_bind_varargs_order sz3TestSignatureBind.test_signature_bind_varargs_orderc Csddd}|||dddddd|||ddd ||j|ddd d ||j|ddd d |td $|j|dddddWdn1s0YdS)NrcWs ||||fSrr)rrrrrrrr* szDTestSignatureBind.test_signature_bind_args_and_varargs..testrrrr)rrr)rr)rrrrrQ)rrrrrz multiple values for argument 'c'r)rrrrrr$test_signature_bind_args_and_varargs s z6TestSignatureBind.test_signature_bind_args_and_varargscCs<dd}|||i||j|dddddddS)Nc[s|SrrrVrrrr* sz?TestSignatureBind.test_signature_bind_just_kwargs..testrrrrQrrrrrtest_signature_bind_just_kwargs s z1TestSignatureBind.test_signature_bind_just_kwargsc CsJddd}|||dddddif||j|dddddddddddf||j|ddddd ddddddf||j|ddddd ddddddf||j|ddddd ddddddf||j|ddd ddd ddd dddf||j|ddd ddddd ddif||j|dd ddd ddifdS)Nrc[s ||||fSrrr^rrrr* szCTestSignatureBind.test_signature_bind_args_and_kwargs..testrrrrr)rrrrQ)rrrrQ)rrrQr)rrrrQrrr)rrr)rrrrrr#test_signature_bind_args_and_kwargs s.  z5TestSignatureBind.test_signature_bind_args_and_kwargsc Csdd}|td||dWdn1s60Y||j|ddddddd}|td||dWdn1s0Ydd}||j|dd d d ||j|d dd d |td "|j|d dddWdn1s 0Y|td||dd Wdn1sF0Y|td"|j|dd d d Wdn1s0Y|td "|j|dd ddWdn1s0Y|td||dWdn1s0Ydd}||j|dd d dd if||j|dd ddd if||j|dd dddd ddif||j|ddd ddd ddif|td |j|dd dWdn1s0Y||j|dd ddddd dddfdS)NcSs|Srrrrrrr* sz:TestSignatureBind.test_signature_bind_kwonly..testrrrcSs|Srr)rrrrrrr* sz"missing a required argument: 'bar'cSs||fSrrrrrrrr*srr8r)rrrr])rrrQr)rrQc[s |||fSrr)rrbinrrrr*srrQ)rQrrz"missing a required argument: 'foo')rQr)rrrQ)rrQ)rr.rrrrrrtest_signature_bind_kwonly sd**2.22,  0z,TestSignatureBind.test_signature_bind_kwonlyc Csdddd}t|}|jddddd d d }|t|jd d dddd d dff||jddd d d ||jddS)Nrrc_sdSrr)rrrrrrrrr**sz=TestSignatureBind.test_signature_bind_arguments..testr]rrirpr<)rrrrrr])r)r)rrir)rrr)r]r) r3rMrrr argumentsitemsrrr9r*rrrrrtest_signature_bind_arguments)s  z/TestSignatureBind.test_signature_bind_argumentsc Cstj}ddddd}t|}tt|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 ddWdn1s0Y|td"|j |d d d dWdn1sX0Y|td |j |d d dWdn1s0YdS)Nrrrr8c[s||||||fSrr)rab_poc_porrrrrrr*:szCTestSignatureBind.test_signature_bind_positional_only..test)rarrrr+rrrrrzbut was passed as a keywordr])rrrzparameter is positional only)r)rar)rr)r3r-rMrrrr$rrr.rr0rrrr.)r9rr*rrrFZnew_sigrrr#test_signature_bind_positional_only7s. 62z5TestSignatureBind.test_signature_bind_positional_onlycCsPdd}t|}|ddd}||jd|jdddd}||jddS)NcSsdSrr)rr9rrrrr*XszATestSignatureBind.test_signature_bind_with_self_arg..testrrrrr))r3rMrrrrrrr!test_signature_bind_with_self_argVs  z3TestSignatureBind.test_signature_bind_with_self_argcCsdd}t|}|td|jdddWdn1sB0Ydd}||j|ddd d dift|}|jdd}||jd d diidS) NcWs||fSrrrrrrrr*asz?TestSignatureBind.test_signature_bind_vararg_name..testz)got an unexpected keyword argument 'args'rrrc_s||fSrrrrrrr*jsrrrr)r3rMrr.rrrrrrrrtest_signature_bind_vararg_name`s ,  z1TestSignatureBind.test_signature_bind_vararg_namecCsHdd}|jjd}t|i}ttd}||||hddS)NcSsddtdDS)NcSsh|] }||qSrr)rrrrr vrpzWTestSignatureBind.test_signature_bind_implicit_arg..make_set..rrLrrrrmake_setuszDTestSignatureBind.test_signature_bind_implicit_arg..make_setrr>rrrrr)rE co_constsr^ FunctionTypeiterrrr)r9rZ setcomp_codeZ setcomp_funciteratorrrr test_signature_bind_implicit_argrs    z2TestSignatureBind.test_signature_bind_implicit_argcCsHdd}t|}|jddd}||jddi|d|jdS)Nc[s|||fSr)rL)rrrrrr~szATestSignatureBind.test_signature_bind_posonly_kwargs..foopos-onlykeywordr8r)rr)r3rMrrrrrr)r9rrresultrrr"test_signature_bind_posonly_kwargs}s  z4TestSignatureBind.test_signature_bind_posonly_kwargsN)r0r?r@rVrrrrrrrrrrrrrrrrrrrrr s"   7  rc@s<eZdZddZddZddZddZd d Zd d Zd S)TestBoundArgumentscCsPdd}t|d}|tdt|Wdn1sB0YdS)NcSsdSrrr4rrrrrpzITestBoundArguments.test_signature_bound_arguments_unhashable..foorrZ)r3rMrrr.rWr9rrrrr)test_signature_bound_arguments_unhashablesz.foorrrcSsdSrrrrrrrrpzGTestBoundArguments.test_signature_bound_arguments_equality..barcSsdSrrrrrrrrprrQ)r3rMrr/r8r r) r9rrZba2Zba3rZba4rZba1rrr'test_signature_bound_arguments_equalitys2  z:TestBoundArguments.test_signature_bound_arguments_equalityc Csiddddiddd}t|}|jdd id }ttjdD]N}|j|d .tt||}| ||WdqB1s0YqBdS) Nrrrrrc[sdSrrrrrrrrpzETestBoundArguments.test_signature_bound_arguments_pickle..foorrir)r) r3rMrrrrrrrr)r9rrrrZ ba_pickledrrr%test_signature_bound_arguments_pickles z8TestBoundArguments.test_signature_bound_arguments_picklecCsHiddddiddd}t|}|jdd id }|t|d dS) Nrrrrrc[sdSrrrrrrrrpzCTestBoundArguments.test_signature_bound_arguments_repr..foorrirz )r3rMrZ assertRegexrir9rrrrrr#test_signature_bound_arguments_reprs z6TestBoundArguments.test_signature_bound_arguments_reprc CsTdiddddd}t|}|d}||t|jdddd ifd ifg|jd dd dd }||t|jdddd ifd ddifgdd}t|}|d}||t|jdgdd}t|}|}||t|jgddd}t|}|}||t|jdgdS)Nrrc_sdSrr)rrrrrrrrrrpzMTestBoundArguments.test_signature_bound_arguments_apply_defaults..foor)rr)rr)rrrrr]ri)rr)rr)r)rircSsdSrrrrrrrrpcSsdSrrrrrrrrprQcSsdSrrr4rrrrrp)rrQ)r)rQ) r3rMrZapply_defaultsrr|rrZ bind_partialrrrr-test_signature_bound_arguments_apply_defaultss@          z@TestBoundArguments.test_signature_bound_arguments_apply_defaultscCs.dd}t|d}|t|jtdS)NcSsdSrrr4rrrrrpzMTestBoundArguments.test_signature_bound_arguments_arguments_type..foor)r3rMrrr_rrrrrr-test_signature_bound_arguments_arguments_typesz@TestBoundArguments.test_signature_bound_arguments_arguments_typeN) r0r?r@rrrrrrrrrrrs  *rc@s$eZdZddZddZddZdS)TestSignaturePrivateHelperscCs:tj}||dd||dd||dddS)Nz($self)r9z ($self, obj)z($cls, /, obj)r)r3Z_signature_get_bound_paramr)r9getterrrrtest_signature_get_bound_paramsz:TestSignaturePrivateHelpers.test_signature_get_bound_paramcCs8t|\}}}|||||||||dSr)r3Z"_signature_strip_non_python_syntaxr)r9inputZclean_signatureZself_parameterZlast_positional_onlyZcomputed_clean_signatureZcomputed_self_parameterZcomputed_last_positional_onlyrrr_strip_non_python_syntaxs  z4TestSignaturePrivateHelpers._strip_non_python_syntaxcCst|dddd|dddd|dddd|dddd|d ddd|d d dd|dddddS) 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)rrRrrr&test_signature_strip_non_python_syntaxsTzBTestSignaturePrivateHelpers.test_signature_strip_non_python_syntaxN)r0r?r@rrrrrrrrs rc@s,eZdZeeedddZddZdS)TestSignatureDefinitionsr9c Cst}hd}||O}dh}||O}hd}||O}ddh}||O}t}tt}t|D]t\}} t| spq^t| tr||vr||||vrq^|j |d | t | Wdq^1s0Yq^|D]>}|j |d| | jWdq1s 0YqdS)N>rrgrslicerarevarsround>maxr__build_class__ breakpointrr __import__)rF)r2rrrJrcallablerhr_rrassertIsNotNoner3rMr__text_signature__) r9Z no_signatureZ needs_groupsZneeds_semantic_updateZ needs_varargsZnot_converted_yetZtypes_with_signaturesrOrFr<rrrtest_builtins_have_signatures1s.  0z6TestSignatureDefinitions.test_builtins_have_signaturescCsVdd}d|_t|}|||t|dd|_t|}|t|ddS)Nc_sdSrrrrrrrfszNTestSignatureDefinitions.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))rr3rMrrr)r9rrrrr'test_python_function_override_signaturees   z@TestSignatureDefinitions.test_python_function_override_signatureN) r0r?r@rrrSrrrrrrrr-s  1rc@s eZdZddZeddZdS)NTimesUnwrappablecCs||_d|_dSr)r_next)r9rrrrrrszNTimesUnwrappable.__init__cCs2|jdkrtd|jdur,t|jd|_|jS)NrzUnwrapped too many timesr)rr;rrrRrrrr!vs   zNTimesUnwrappable.__wrapped__N)r0r?r@rr8r!rrrrrqsrc@s<eZdZddZddZddZddZd d Zd d Zd S) TestUnwrapcCs.dd}tjdd|}|t||dS)NcSs||Srrrrrrrsz(TestUnwrap.test_unwrap_one..funcr)r)ri lru_cacherr3unwrap)r9rrrrrtest_unwrap_oneszTestUnwrap.test_unwrap_onecCsPdd}|}tdD]}t|dd}q||j||t||dS)NcSs||Srrrrrrrsz,TestUnwrap.test_unwrap_several..funcr]cSsdSrrrrrrrsz/TestUnwrap.test_unwrap_several..wrapper)rrir#rUr!rr3r)r9rr__rrrtest_unwrap_severals  zTestUnwrap.test_unwrap_severalcCsTdd}t|dd}t|dd}d|_tj|dd d }|||dS) NcSs||Srrrrrrfunc1sz#TestUnwrap.test_stop..func1cSsdSrrrrrrfunc2sz#TestUnwrap.test_stop..func2cSsdSrrrrrrrsz%TestUnwrap.test_stop..wrapperrcSs t|dS)N stop_hererr rrrrurpz&TestUnwrap.test_stop..)stop)rir#rr3rr)r9rrrZ unwrappedrrr test_stops  zTestUnwrap.test_stopcCsdd}||_|tdt|Wdn1s:0Ydd}||_||_|tdt|Wdn1s0Y|tdt|Wdn1s0YdS)NcSsdSrrrrrrrrpz$TestUnwrap.test_cycle..func1rMcSsdSrrrrrrrrpz$TestUnwrap.test_cycle..func2)r!rrr3r)r9rrrrr test_cycles((zTestUnwrap.test_cyclecs6ddd_Gfddd}|t|dS)NcSsdSrrrrrrrrpz(TestUnwrap.test_unhashable..funccseZdZdZZdS)z%TestUnwrap.test_unhashable..CN)r0r?r@__hash__r!rrrrrsr)r!rr3r)r9rrrrtest_unhashableszTestUnwrap.test_unhashablecCsJttd}|tdt|Wdn1s<0YdS)NrrM)rr[getrecursionlimitrrr3r)r9r<rrrtest_recursion_limitszTestUnwrap.test_recursion_limitN) r0r?r@rrrrrrrrrrr~s  rc@sDeZdZddZddZeedudddZd d Z d d Z dS) TestMaincCsVtd}tddd\}}}|}||ddt|||ddS)Nr-mr3rrp) importlib import_moduler decoderJrr3r)r9modulercr+errrrrrtest_only_sources   zTestMain.test_only_sourcecCsFdd}d|_|tt|Wdn1s80YdS)NcSsdSrrrrrrrsz)TestMain.test_custom_getattr..foor)r0r-r.r3rMrrrrtest_custom_getattrs zTestMain.test_custom_getattrNz6threads required to test __qualname__ for source filescCsLtddd\}}}|}||ddtt||ddS)Nrr3z%concurrent.futures:ThreadPoolExecutorrrp)r rrJrr3rr)r9rr+rrrrrtest_qualname_sources   zTestMain.test_qualname_sourcecCs:td}tddd\}}}|}||dgdS)Nrrr3r[z#Can't get info for builtin modules.)rrr rrJr)r9rr"r+rrrrr test_builtinss    zTestMain.test_builtinscCsxtd}t}tg|ddddR\}}}|}||j|||j|||j || |ddS)Nrrr3z --detailsrp) rrrZ!optim_args_from_interpreter_flagsr rrr0r __cached__r)r9rrrr+routputrrr test_detailss zTestMain.test_details) r0r?r@rrrrSrrrrrrrrrs   rc@s0eZdZedZedZddZddZdS) TestReloadz def foo(): print("Bla") z#def foo(): print("Oh no!") cCsRt|}t|,}||d|dWdn1sD0YdSr)r3rrrrrJ)r9rrZ inspected_srcrrrrassertInspectEquals    zTestReload.assertInspectEqualc Cstd|jl\}}t|}|||t|d}||jWdn1sT0Y|||Wdn1s~0YdS)NZ reload_bugr)r src_beforerrrrr src_after)r9rFrrrrrrtest_getsource_reloads    *z TestReload.test_getsource_reloadN) r0r?r@textwrapdedentrrrrrrrrrs  r__main__)crrrfrirr3r?r'rZos.pathrr<rrr[r^rrrZ unittest.mockrcconcurrent.futuresr ImportErrorZ test.supportrrrrr Ztest.support.script_helperr r r*r rXr r rZtest.test_importrrrrrrrr)r,rrKrr-rNrOrSrzrTrUrrrrrVrYrerzrrr}rrrrrrrrr rrrZrwr/rr-rrrrrrrrrrrrr0mainrrrrs          87U * l R8zIc@%f?D <0