o 6a@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)selfr;/usr/lib/python3/dist-packages/numpy/tests/test_warnings.py__init__ s zParseCall.__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 s rcs$eZdZfddZddZZS) FindFuncscst||_dSr)superr _FindFuncs__filename)rfilename __class__rrr s  zFindFuncs.__init__cCst}||jtj|||jddks|jddkr0|jdjdkr0t d |j |j |jddkrmt |jdksE|jd d krod |j krLdSt |jd krUdSd d|jD}d|vrcdSt d |j |j dSdS)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_Calls0    zFindFuncs.visit_Call)rrrr r5 __classcell__rrrrrs rc Csttjj}|dD]?}|d|jvrq ||dkrq ||ddkr%q tt|}t | }t | |Wdn1sEwYq dS)Nz*.pytestingz __init__.pyrandom)rnumpy__file__parentrglobparentstokenizeopenstrr parsereadrr+)basepathfiletreerrrtest_warning_calls:s  rG) __doc__pytestpathlibrr r>r9r rrmarkslowrGrrrrs  "