a zeZ$@sFdZddlZddlZdZddZGdddejZedkrBedS) z& Test the API of the symtable module. Na: import sys glob = 42 some_var = 12 some_non_assigned_global_var = 11 some_assigned_global_var = 11 class Mine: instance_var = 24 def a_method(p1, p2): pass def spam(a, b, *var, **kw): global bar global some_assigned_global_var some_assigned_global_var = 12 bar = 47 some_var = 10 x = 23 glob def internal(): return x def other_internal(): nonlocal some_var some_var = 3 return some_var return internal def foo(): pass def namespace_test(): pass def namespace_test(): pass cCs&|D]}||kr|SqdSN) get_childrenget_name)blocknameZchrF/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_symtable.py find_block.s  r c@seZdZeeddZeedZeedZeedZ ee dZ ee dZ eedZ d d Z d d Zd dZddZddZddZddZddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Z d1d2Z!d3d4Z"d5d6Z#d7d8Z$d9d:Z%d;S)< SymtableTest?execMinea_methodspaminternalother_internalfoocCs^||jd||jd||jd||jd||jddS)Nmoduleclassfunction) assertEqualtopZget_typer rrrselfrrr test_type?s zSymtableTest.test_typecCs$||j||jdSr) assertFalserZ is_optimized assertTruerrrrrtest_optimizedFszSymtableTest.test_optimizedcCsD||j||j||j||jdSr)rrZ is_nestedr rrrrrrr test_nestedKszSymtableTest.test_nestedcCs4||j||j||jdSr)rrZ has_childrenr rrrrrr test_childrenQszSymtableTest.test_childrencCs(||jd||jddS)Nr)rrZ get_linenorrrrr test_linenoVszSymtableTest.test_linenocCsh|j}|t|gdgd}|t|||t|gd||jddS)N)abkwvar)r"r#rr$rsome_varr%x)barglobsome_assigned_global_var)r')rrsortedZget_parametersZ get_localsZ get_globalsrZ get_frees)rfuncexpectedrrrtest_function_infoZs zSymtableTest.test_function_infocCs||jd||jd||jd||jd||jd||jd||jd||jd||jddS)Nr)r(r'Z instance_varsome_non_assigned_global_varr*) rrlookup is_globalrZis_declared_globalrr rrrrr test_globalsbszSymtableTest.test_globalscCsF||jd||jdd}||j|dS)Nr&)r&)rrr0Z is_nonlocalrrrZ get_nonlocals)rr-rrr test_nonlocalnszSymtableTest.test_nonlocalcCs\||jd||jd||jd||jddS)Nr'r(r/r*)rrr0is_localrrrrrr test_localtszSymtableTest.test_localcCs||jddS)Nr')rrr0Zis_freerrrr test_free{szSymtableTest.test_freecCsF||jd||jd||jddS)Nr'r)rrr0Z is_referencedrrrrrrtest_referenced~szSymtableTest.test_referencedcCs:dD]}||j|q||jddS)N)r"r%r$r')rrr0Z is_parameterr)rZsymrrrtest_parametersszSymtableTest.test_parameterscCs6|t|jt|j|t|jjddS)NZnot_here)rlenrZget_identifiersZ get_symbols assertRaisesKeyErrorr0rrrrtest_symbol_lookups zSymtableTest.test_symbol_lookupcCs||jd||jd||jd||jd||jd||jd||jd|ju|jd}|t | d| t |jdS)Nr rrrZnamespace_testr') rrr0 is_namespacer rrZ get_namespacerr9Zget_namespacesr: ValueError)rZns_testrrrtest_namespacess zSymtableTest.test_namespacescCsr||jd||jd||jd||jd||jddS)Nr'r(rr)rrr0Z is_assignedrr rrrrrr test_assigneds zSymtableTest.test_assignedcCstddd}|d}||d||d||dtddd}|d}||d||dtddd}||dtddd}dS) Nzdef f(): x: int testr rr'zdef f(): x = 1 zglobal x x: intz=def g(): x = 2 def f(): nonlocal x x: int)symtablerrr0r4Z is_annotatedrr1)rZst1Zst2Zst3Zst4Zst5Zst6rrrtest_annotateds  zSymtableTest.test_annotatedcCs||jddS)Nsys)rrr0Z is_importedrrrr test_importedszSymtableTest.test_importedcCsR||jd||jd||jdd||jddS)Nrrr'r )rrrrr0r rrrr test_nameszSymtableTest.test_namecCs||jddS)N)r)rr Z get_methodsrrrrtest_class_infoszSymtableTest.test_class_infoc sfdd}|dd|ddtddd tLt"tdtdd Wdn1sl0YWdn1s0Yt"tdtdd Wdn1s0Yt"tdtdd Wdn1s0YdS) Nc svzt|ddWnNty`}z6|jd|jd|j|WYd}~nd}~00d|fdS)Nrr zno SyntaxError for %r)rC SyntaxErrorrfilenamelinenooffsetZfail)Z brokencoderMerrr checkfilenames$z9SymtableTest.test_filename_correct..checkfilenamezdef f(x): foo)(r zdef f(x): global x passsspamr )rCZ assertWarnsDeprecationWarningr: TypeError bytearray memoryviewlist)rrOrrrtest_filename_corrects   N 0 z"SymtableTest.test_filename_correctcCstddd}dS)N42r evalrCrZsymbolsrrr test_evalszSymtableTest.test_evalcCstddd}dS)NrXr ZsinglerZr[rrr test_singleszSymtableTest.test_singlecCstddd}dS)Nzdef f(x): return xr r rZr[rrr test_execszSymtableTest.test_execcCsJttddd}|t|dd}t|dd}|t|ddS)Nutf8r r r s+# -*- coding: iso8859-15 -*- class : pass uŽ)rC TEST_CODEencodeZassertIsNotNoner )rrcoderrr test_bytess zSymtableTest.test_bytescCs(|t|jd|t|jddS)Nzz$)rstrrrrrrrtest_symtable_reprszSymtableTest.test_symtable_reprN)&__name__ __module__ __qualname__rCr`rr r rrrrrrrrrr!r.r2r3r5r6r7r8r<r@rArDrFrGrHrWr\r]r^rcrerrrrr 4s@         r __main__) __doc__rCZunittestr`r ZTestCaser rfmainrrrrs%B