B { `@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|_dS)N)ls)selfr=/tmp/pip-unpacked-wheel-4iou4664/numpy/tests/test_warnings.py__init__ szParseCall.__init__cCs tj|||j|jdS)N)ast NodeVisitor generic_visitrappendattr)rnoderrrvisit_AttributeszParseCall.visit_AttributecCs|j|jdS)N)rr id)rrrrr visit_NameszParseCall.visit_NameN)__name__ __module__ __qualname__rrrrrrrr srcs$eZdZfddZddZZS) FindFuncscst||_dS)N)superr_FindFuncs__filename)rfilename) __class__rrrs zFindFuncs.__init__cCst}||jtj|||jddks<|jddkr`|jdjdkr`t d |j |j |jddkrt |jdks|jd d krd |j krdSt |jd krdSd d|jD}d|krdSt d |j |j dS)N simplefilterfilterwarningsrignorezFwarnings should have an appropriate stacklevel; found in {} on line {}warnwarningsztesting/tests/test_warnings.pycSsh|] }|jqSr)arg).0kwrrr 2sz'FindFuncs.visit_Call.. stacklevel)rvisitfuncr r r rargssAssertionErrorformatrlinenolenkeywords)rrpr*rrr visit_Calls(  zFindFuncs.visit_Call)rrrrr2 __classcell__rr)rrrs rc Csttjj}xx|dD]j}|d|jkr,q||dkr:q||ddkrLqtt|"}t | }t | |WdQRXqWdS)Nz*.pyZtestingz __init__.pyrandom)rnumpy__file__parentrglobparentstokenizeopenstrr parsereadrr()basepathfiletreerrrtest_warning_calls:s  rC) __doc__Zpytestpathlibrr r:r5r rrmarkZslowrCrrrrs  "