a ze)@sddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl m Z mZmZmZmZejjZddlmZmZmZmZddZGddde jZdd Zed kre dS) N) spawn_python kill_pythonassert_python_ok make_scriptmake_zip_script) test_doctestsample_doctestsample_doctest_no_doctestssample_doctest_no_docstringscCstjtdd}tjtd}zd|j|jf}WntyF|j}Yn0||||D]}| |qV|j |j }}|rt j d||ftrtd|j|f||fS)NF)verboseZrecurse)r z%s.%sz%d of %d doctests failedz,doctest (%s) ... %d tests with zero failures)doctestZ DocTestFinderr Z DocTestRunner __module__ __qualname__AttributeError__name__findrunZfailuresZtriestestsupportZ TestFailedprint)objmodulefinderZrunnernameZexampleftrO/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_zipimport_support.py_run_object_doctest#s    rc@s<eZdZddZddZddZddZd d Zd d Zd S)ZipSupportTestscCsPttjtjdd|_tjdd|_tjdd|_tj dSN) linecache clearcache zipimport_zip_directory_cacheclearsyspath meta_path path_hookspath_importer_cacheselfrrrsetUp@s  zZipSupportTests.setUpcCs>|jtjdd<|jtjdd<|jtjdd<tjdSr )r'r&r(r)r*r%r+rrrtearDownHszZipSupportTests.tearDownc Csd}tj}t|d|}tjdtj|}t|d||\}}t |t j d|ddl }z | t|j|Wt jd=n t jd=0Wdn1s0YdS)Nzdef foo(): pass __init__zip_pkgtest_zipr)rrtemp_dirrosr'joinbasenamerremover&insertr0Z assertEqualinspect getsourceZfoomodules)r,test_srcdZ init_nameZ name_in_zipzip_namerun_namer0rrr test_inspect_getsource_issue4223Ns    z0ZipSupportTests.test_inspect_getsource_issue4223cCsPtt}|dd}|dd}|dd}i}tttfD]>}t|}|dd}|jdd}|d d }|||<qzZzip_filer@Zknown_good_testsZfail_due_to_missing_data_filesrrrrtest_doctest_issue4197^s     0 (   z&ZipSupportTests.test_doctest_issue4197c Cstd}d}tj}t|d|}t|\}}}||df}trbtd|tdtt || | d|t |d|d \} } t| \}}}|| df}trtd|tdtt || | d|Wdn1s0YdS) Nz class Test: ">>> 'line 2'" pass import doctest doctest.testmod() zFile "%s", line 2, in %sscriptz __main__.Testz Expected linez Got stdout:utf-8r1 __main__.py) textwrapdedentrrr2rrr rasciiassertInencoder) r,r;patternr<rNrcouterrZexpectedr=r>rrrtest_doctest_main_issue4197s*         z+ZipSupportTests.test_doctest_main_issue4197cCstd}tj}t|d|}t|}|jdt |}| t j |d|t|d|d\}}t|}|jdt |}| t j |d|Wdn1s0YdS)Nz def f(): pass import pdb pdb.Pdb(nosigint=True).runcall(f) rQsl rRr1rS)rTrUrrr2rrstdinwriterrWr3r'normcaserXr)r,r;r<rNpdatar=r>rrrtest_pdb_issue4201s     z"ZipSupportTests.test_pdb_issue4201N) rr rr-r.r?rPr]rcrrrrr7s  [rcCstjdSr )rr reap_childrenrrrrtearDownModulesre__main__)Z test.supportrr3Zos.pathr&rTrGr#r r8r!ZunittestZtest.support.script_helperrrrrrrr rrr r rZTestCaserrermainrrrrs& 8