a ze'@sddlZddlmZddlmZmZmZddlZddlm Z m Z ddl m ZeeddZeeddZGd d d e ZGd d d e Zed kre dS)N)dedent) FunctionType MethodTypeBuiltinFunctionType)TestCasemain)utilcCsdSNr r r D/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_pyclbr.pyr cCsdSr r )cr r r r r c@sVeZdZddZddZddZddZdd d Zd dZddZ ddZ ddZ d S) PyclbrTestcCsJt|t|At|}|rFtd|||ftjd|d|dS)Nzl1=%r l2=%r ignore=%rfilez %r missing)setprintsysstderrZfailpop)selfl1l2ignoremissingr r r assertListEqszPyclbrTest.assertListEqcCs>||vr dSt||s td||t||d||fdS)Nz???zexpected hasattr(%r, %r))hasattrrZ assertTrue)robjattrrr r r assertHasattr!s    zPyclbrTest.assertHasattrcCs4||vr dS||vr$td|tjd|||dS)Nz***r)rrrZassertIn)rrkeyrr r r assertHaskey)s zPyclbrTest.assertHaskeycCs ||vr||vr|||dSr ) assertEqual)rabrr r r assertEqualsOrIgnored0sz PyclbrTest.assertEqualsOrIgnoredNr cCsLt|tdgB}|dur,t|tidg}t|}dd}|D]\}}||vrZqF||||t||}t|tj r| |t t f|j |krqF||j |jqF| |t|j |krqFdd|jD} dd|jD} z|| | |Wn td|tjd Yn0g} |jD]$} ||t|| | r&| | q&g} |jD]H} | dd d kr| d dd kr| d || n | | qZz4|| | |||j |j||j|j|WqFtd|tjd YqF0qFdd}t|D]:}t||}t|tt fr |||r ||||q dS)NobjectzcSsl|j}t|tr.t||tr(|j|ur.ismethodcSsg|] }|jqSr )r-.0baser r r cr z*PyclbrTest.checkModule..cSsg|]}t|d|qS)r0)getattrr3r r r r6dszclass=%srr(_cSs0t|tr|j|jkSt|tr,|j|juSdS)NF)r*type __module__r-r __globals__r))itemmoduler r r defined_ins     z*PyclbrTest.checkModule..defined_in) r __import__globalspyclbr readmodule_exitemsr r7r*FunctionZassertIsInstancerrr<r#r?r; __bases__superrrrrr)keysappendmethodsr&r-r0dirr")rZ moduleNamer?rdictr2r0valueZpy_itemZ real_basesZ pyclbr_basesZ actualMethodsmZ foundMethodsr@r>r r r checkModule5sf      $     zPyclbrTest.checkModulecCs*|d|jddd|jddddS)NrCdoctest)Z TestResultsZ _SpoofOutZ DocTestCaseZ _DocTestSuiterZdifflib)MatchrPrr r r test_easys zPyclbrTest.test_easycCs|jddgddS)Nztest.pyclbr_inputZomrRrTrUr r r test_decoratorsszPyclbrTest.test_decoratorscstdddidf\}}}}}td}||||||}|d|d}|dd} | d d } |d d } |d d|d} | dd} | dd}|dd}|dd}|| d}fddd|d|dS)Ntestztest.pya def f0: def f1(a,b,c): def f2(a=1, b=2, c=3): pass return f1(a,b,d) class c1: pass class C0: "Test class." def F1(): "Method." return 'return' class C1(): class C2: "Class nested within nested class." def F3(): return 1+1 f0f1r8f2c1C0F1C1 C2 F3)rZrac s|||D]}|j|q|D]}|j|q8|D]}||||}}t||j|j|j|j f}t||j|j|j|j f} || t|j urȈ|j |j ||j ||j qTdSr ) r#rIvaluesZassertIsparentr;r0rr?linenoClassrKZchildren) Zparent1Z children1Zparent2Z children2obr!Zo1Zo2t1t2compareZmbrr r rss     z'PyclbrTest.test_nested..compare)rCrZ _create_treerFZ_nest_functionZ _nest_classrn)rrOpftisourceactualrZr\r]r_rarcrergriZexpectedr rrr test_nesteds  zPyclbrTest.test_nestedcCsj|j}|ddd|ddd|ddd|dd d|d d d|d |d dd|d|ddS)Nrandom)RandomrRZcgi)logpickle)partial PickleBufferZaifc)Z _aifc_params sre_parse)dumpgroupsposZpdbpydoc)inputoutputz email.parserztest.test_pyclbrrT)rcmr r r test_otherss      zPyclbrTest.test_others)Nr ) r-r< __qualname__rr r"r&rPrVrWrzrr r r r rs [=rc@s,eZdZddZddZddZddZd S) ReadmoduleTestscCstj|_dSr )rC_modulescopyrUr r r setUpszReadmoduleTests.setUpcCs |jt_dSr )rrCrUr r r tearDownszReadmoduleTests.tearDowncCs|ttjddS)Nz asyncio.foo) assertRaises ImportErrorrCrDrUr r r test_dotted_name_not_a_packagesz.ReadmoduleTests.test_dotted_name_not_a_packagec Csfd}t|D|tt|Wdn1s:0YWdn1sX0YdS)NZ doesnotexist)test_importlib_utilZuncacherModuleNotFoundErrorrCrD)r module_namer r r test_module_has_no_specs  z'ReadmoduleTests.test_module_has_no_specN)r-r<rrrrrr r r r rsr__main__)rtextwraprtypesrrrrCZunittestrrZ unittest_mainZtest.test_importlibrrr; staticmethodZStaticMethodType classmethodr+rrr-r r r r s   U