bgK)ddlZddlZddlmZmZmZddlmZddlm cm Z ddl m Z mZmZddlmZddlmZddlmZd%dZdadZd Zd Zd Zd Zd ZgdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(GddZ)GddZ*GddZ+GddZ,Gd d!Z-Gd"d#Z.d$Z/dS)&N)mkdtempmkstempNamedTemporaryFile)rmtree)assert_ assert_equal assert_raises)urlparse)URLErrorch|tkrtd}|Std)z$Stub to replace urlopen for testing.urltmp_)prefixzName or service not known) valid_httpurlrr )urldatatmpfiles s/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib64/python3.11/site-packages/numpy/lib/tests/test__datasource.py urlopen_stubrs5 moo$I6662333c@tjatt_dSN)urllib_requesturlopen old_urlopenrrr setup_modulers!(K)Nrc(tt_dSr)rrrrrrteardown_moduler!s(Nrzhttp://www.google.com/z index.htmlzhttp://fake.abc.web/site/zfake.txt)z /etc/shadowz ../../shadowz ..\system.datzc:\windows\system.datsthree is the magic numbercZtdd|d\}}tj||S)N.txtdstmp_T)suffixrdirtext)rosclosefiledirfdpaths rvalid_textfiler+2s.fX7NNNHBHRLLL Krctdd|\}}tj|tj||S)Nr r!)r"rr#)rr%r&remover's rinvalid_textfiler.9s9fX7CCCHBHRLLLIdOOO Krc ttzSr) http_path http_filerrrrrAs Y rc ttzSr) http_fakepath http_fakefilerrrinvalid_httpurlr5Es  &&rctSr)r0rrr valid_baseurlr7I rctSr)r3rrrinvalid_baseurlr:M rctSr)r1rrrvalid_httpfiler=Qr8rctSr)r4rrrinvalid_httpfiler?Ur;rcDeZdZdZdZdZdZdZdZdZ dZ d Z d S) TestDataSourceOpencht|_tj|j|_dSrrtmpdir datasource DataSourcedsselfs r setup_methodzTestDataSourceOpen.setup_methodZ%ii ' 44rc2t|j|`dSrrrDrGrHs rteardown_methodz"TestDataSourceOpen.teardown_method^t{ GGGrc|jt}t||dSr)rGopenrrr&)rIfhs rtest_ValidHTTPz!TestDataSourceOpen.test_ValidHTTPbs5 W\\-// * *   rct}tt|jj| |j|dS#t$r!}t |jduYd}~dSd}~wwxYwr)r5r OSErrorrGrQrerrno)rIres rtest_InvalidHTTPz#TestDataSourceOpen.test_InvalidHTTPgsgtw|S111 % GLL      % % % AGtO $ $ $ $ $ $ $ $ $ %sA A7A22A7c^tt|jjt dSr)r r rG_cacher5rHs rtest_InvalidHTTPCacheURLErrorz0TestDataSourceOpen.test_InvalidHTTPCacheURLErrorps$h0A0ABBBBBrct|j}|j|}t ||dSr)r+rDrGrQrr&)rI local_filerRs rtest_ValidFilez!TestDataSourceOpen.test_ValidFiless@#DK00 W\\* % %   rcnt|j}tt|jj|dSr)r.rDr rUrGrQ)rI invalid_files rtest_InvalidFilez#TestDataSourceOpen.test_InvalidFileys-' 44 gtw|\:::::rc ddl}n##t$rtjYnwxYwtj|jd}||d}| t| |j |}| }| tt|dS)Nrz foobar.txt.gzw)gzip ImportErrorpytestskipr%r*joinrDrQwrite magic_liner&rGreadliner)rIrdfilepathfpresults rtest_ValidGzipFilez%TestDataSourceOpen.test_ValidGzipFile}s  KKKK    KMMMMM 7<< _== YYx % %   W\\( # #  Z((((( ''c ddl}n##t$rtjYnwxYwtj|jd}||d}| t| |j |}|}| tt|dS)Nrzfoobar.txt.bz2rc)bz2rerfrgr%r*rhrDBZ2Filerirjr&rGrQrkr)rIrrrlrmrns rtest_ValidBz2Filez$TestDataSourceOpen.test_ValidBz2Files  JJJJ    KMMMMM 7<< -=>> [[3 ' '   W\\( # #  Z(((((rpN) __name__ __module__ __qualname__rJrNrSrXr[r^rarortrrrrArAYs555 %%%CCC ;;;))) )))))rrAc2eZdZdZdZdZdZdZdZdS)TestDataSourceExistscht|_tj|j|_dSrrCrHs rrJz!TestDataSourceExists.setup_methodrKrc2t|j|`dSrrMrHs rrNz$TestDataSourceExists.teardown_methodrOrclt|jtdSr)rrGexistsrrHs rrSz#TestDataSourceExists.test_ValidHTTPs(}//00000rcnt|jtddSNF)rrGr}r5rHs rrXz%TestDataSourceExists.test_InvalidHTTPs,TW^^O$5$566>>>>>rc"t|j}t|j|t }t|}t|j|t |dSr)r+rDrrGr}rr)rIrlocaldirs rr^z#TestDataSourceExists.test_ValidFiless --w''(((99 **w''(((xrc~t|j}t|j|ddSr)r.rDrrGr}rIrs rraz%TestDataSourceExists.test_InvalidFiles5"4;//TW^^G,,e44444rN) rurvrwrJrNrSrXr^rarrrryrysn555111???55555rryc>eZdZdZdZdZdZdZdZdZ dZ d S) TestDataSourceAbspathctjt|_t j|j|_dSr)r%r*abspathrrDrErFrGrHs rrJz"TestDataSourceAbspath.setup_methods3googii00 ' 44rc2t|j|`dSrrMrHs rrNz%TestDataSourceAbspath.teardown_methodrOrc^tt\}}}}}}tj|j||tjd}t||j tdSN/) r rr%r*rhrDstripseprrGr)rIschemenetlocupathpmsqryfrg local_paths rrSz$TestDataSourceAbspath.test_ValidHTTPs/7 /H/H,sCW\\$+v"'++bf"5"5";";C"@"@BB Z!A!ABBBBBrct|j}tj|d}t ||j|t ||j|dSN)r+rDr%r*splitrrGr)rIr tmpfilenames rr^z$TestDataSourceAbspath.test_ValidFilesk --gmmG,,R0 Wdgook::;;;Wdgoog6677777rcdtt\}}}}}}tj|j||tjd}t||j tkdSr) r r5r%r*rhrDrrrrGrr)rIrrrrrr invalidhttps rrXz&TestDataSourceAbspath.test_InvalidHTTPs/78I8I/J/J,sCgll4;#(;;rv#6#6#<#z7TestDataSourceAbspath.test_sandboxing..s#RW__TW__Q-?-?@@r) r+rDr%r*rrr startswithr5malicious_filesr0)rIrrtmp_pathfns` rtest_sandboxingz%TestDataSourceAbspath.test_sandboxingsP --gmmG,,R0 @@@@))44T[AABBB**++66t{CCDDD!!,,T[99:::%%00==>>>! : :B HHYr\**55dkBB C C C HHRLL++DK88 9 9 9 9 : :rc:tj} dt_||||||t_dS#|t_wxYwN\)r%rrSr^rXrarrI orig_os_seps rtest_windows_os_sepz)TestDataSourceAbspath.test_windows_os_sepsf  !BF    ! ! !    ! ! !  ! ! # # #  ! ! # # #  " " " BFFF[BF s A0B BN) rurvrwrJrNrSr^rXrarrrrrrrs555CCC 888AAA 999 : : : ! ! ! ! !rrc,eZdZdZdZdZdZdZdS)TestRepositoryAbspathctjt|_t jt|j|_dSr) r%r*rrrDrE Repositoryr7reposrHs rrJz"TestRepositoryAbspath.setup_methods9googii00 *=??DKHH rc2t|j|`dSrrrDrrHs rrNz%TestRepositoryAbspath.teardown_methodt{ JJJrcltt\}}}}}}tj|jj||tjd}|j t}t||dSr) r rr%r*rhr _destpathrrrr=r) rIrrrrrrrrls rrSz$TestRepositoryAbspath.test_ValidHTTPs/7 /H/H,sCW\\$*"6"'++bf"5"5";";C"@"@BB :%%n&6&677Z*****rcnfd}t|tjtD]j}t|t |zjt||jkdS)Ncrtjj|Sr)r%r*rrrs rrz7TestRepositoryAbspath.test_sandboxing..s%RW__TZ-?-?-B-BCCr)rr=rrDrr0)rIrrs` rrz%TestRepositoryAbspath.test_sandboxing sCCCC))**55dkBBCCC! : :B HHYr\**55dkBB C C C HHRLL++DK88 9 9 9 9 : :rctj} dt_|||t_dS#|t_wxYwr)r%rrSrrs rrz)TestRepositoryAbspath.test_windows_os_sepsWf  !BF    ! ! !  " " " BFFF[BF s 4AAN)rurvrwrJrNrSrrrrrrrsbIII+++:::!!!!!rrc2eZdZdZdZdZdZdZdZdS)TestRepositoryExistsct|_tjt |j|_dSr)rrDrErr7rrHs rrJz!TestRepositoryExists.setup_methods+ii *=??DKHH rc2t|j|`dSrrrHs rrNz$TestRepositoryExists.teardown_method#rrc|t|j}t|j|dSr)r+rDrrr}rs rr^z#TestRepositoryExists.test_ValidFile's5 -- !!'**+++++rc~t|j}t|j|ddSr)r.rDrrr}rs rraz%TestRepositoryExists.test_InvalidFile,s7"4;//TZ&&w//77777rclt|jtdSr)rrr}rrHs rtest_RemoveHTTPFilez(TestRepositoryExists.test_RemoveHTTPFile0s* !!-//2233333rc8t}t|\}}}}}}tj|jj|}tj|dt|} t|j | dS)Ni) rr r%r*rhrrmkdirr+rr}) rI localfilerrrrrrrrs rtest_CachedHTTPFilez(TestRepositoryExists.test_CachedHTTPFile3s!OO 08 /B/B,sCW\\$*"6??  V$$$ ,, !!'**+++++rN) rurvrwrJrNr^rarrrrrrrsqIII,,, 888444 , , , , ,rrc eZdZdZdZdZdS) TestOpenFuncc,t|_dSr)rrDrHs rrJzTestOpenFunc.setup_method@sii rc.t|jdSr)rrDrHs rrNzTestOpenFunc.teardown_methodCst{rct|j}tj||j}t ||tj|}t ||dS)N)destpath)r+rDrErQrr&)rIr]rms rtest_DataSourceOpenz TestOpenFunc.test_DataSourceOpenFsj#DK00 _Z$+ > > >   _Z ( (   rN)rurvrwrJrNrrrrrr?sA        rrcXtj}|`|dSr)rErF _istmpdest__del__)rGs rtest_del_attr_handlingrQs,   B JJLLLLLrr)0r%rftempfilerrrshutilrnumpy.lib._datasourcelib _datasourcerE numpy.testingrrr urllib.requestrequestr urllib.parser urllib.errorr rrrrr0r1r3r4rrjr+r.rr5r7r:r=r?rAryrrrrrrrrrs 9999999999*********>>>>>>>>>>''''''!!!!!!!!!!!!4444 ***))) %  +  @@@* '''B)B)B)B)B)B)B)B)J55555555<>!>!>!>!>!>!>!>!B!!!!!!!!B,,,,,,,,B$     r