a :jg@shdZddlZddlmZddlZddlZddlZGdddejZGdddejZ ej j dd Z dS) z Tests which scan for certain occurrences in the code, they may not find all of these occurrences but should catch almost all. N)Pathc@s$eZdZddZddZddZdS) ParseCallcCs g|_dSN)ls)selfrC/usr/local/lib/python3.9/site-packages/numpy/tests/test_warnings.py__init__ szParseCall.__init__cCs tj|||j|jdSr)ast NodeVisitor generic_visitrappendattrrnoderrrvisit_AttributeszParseCall.visit_AttributecCs|j|jdSr)rr idrrrr visit_NameszParseCall.visit_NameN)__name__ __module__ __qualname__r rrrrrrr srcs$eZdZfddZddZZS) FindFuncscst||_dSr)superr _FindFuncs__filename)rfilename __class__rrr s zFindFuncs.__init__cCst}||jtj|||jddks<|jddkr`|jdjdkr`t d |j |j |jddkrt |jdks|jd d krd |j krdSt |jd krdSd d|jD}d|vrdSt d |j |j dS)N simplefilterfilterwarningsrignorezFwarnings should have an appropriate stacklevel; found in {} on line {}warnwarningsztesting/tests/test_warnings.pycSsh|] }|jqSr)arg).0kwrrr 2z'FindFuncs.visit_Call.. stacklevel)rvisitfuncr r r rargsvalueAssertionErrorformatrlinenolenkeywords)rrpr.rrr visit_Calls6    zFindFuncs.visit_Call)rrrr r6 __classcell__rrrrrs rc Csttjj}|dD]~}|d|jvr*q||dkr8q||ddkrJqtt|,}t | }t | |Wdq1s0YqdS)Nz*.pyZtestingz __init__.pyrandom)rnumpy__file__parentrglobparentstokenizeopenstrr parsereadrr,)basepathfiletreerrrtest_warning_calls:s  rG) __doc__Zpytestpathlibrr r>r9r rrmarkZslowrGrrrrs  "