bgdZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddlm Z ddl m Z mZddlZddlZddlmZmZddlmZddlmZmZmZmZddlmZejd krdd lmZm Z Gd d e Z!Gd de Z"Gddej Z#Gdde#Z$Gdde#Z%Gddej Z&Gdde#Z'ddl(Z)Gdde#Z*Gdde#Z+Gddej Z,Gdd ej Z-Gd!d"ej Z.Gd#d$ej Z/Gd%d&Z0Gd'd(ej Z1Gd)d*e j Z2Gd+d,ej Z3Gd-d.ej Z4Gd/d0ej Z5Gd1d2e j Z6Gd3d4ej Z7Gd5d6e j Z8Gd7d8e j ej9Z:Gd9d:ej Z;ejd krGd;de Z=Gd?d@ej Z>dAZ?GdBdCej Z@GdDdEej ZAe jBejCdFkdGGdHdIej ZDe jBejdJkdKGdLdMej ZEeFdNkre jGdSdS)OzL Test the :py:class`pyfakefs.fake_filesystem_unittest.TestCase` base class. N)Path)TestCasemock)fake_filesystem_unittestfake_filesystem)OSType)PatcherPausepatchfs PatchMode)module_with_attributes ) copy_tree remove_treec*eZdZdZedZdS) TestPatcherc.t5}|jddtd5}|}dddn #1swxYwY|d|ddddS#1swxYwYdSN/foo/bartestcontents)r fs create_fileopenread assertEqual)selfpatcherfrs }/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/pyfakefs/tests/fake_filesystem_unittest_test.pytest_context_managerz TestPatcher.test_context_manager4s  YY /' J " ": " ? ? ?j!! $Q6688 $ $ $ $ $ $ $ $ $ $ $ $ $ $ $   VX . . .  / / / / / / / / / / / / / / / / / /s4,B A B A B #A $B  BBc|ddtd5}|}dddn #1swxYwY|d|dSr)rrrr)r fake_fsr"rs r#test_context_decoratorz"TestPatcher.test_context_decorator;sJ888 *   vvxxH                *****AA A N)__name__ __module__ __qualname__r$r r'r#rr3s>/// ++ W+++r-rceZdZeejddZejdedZdS)TestPatchfsArgumentOrderz os.systemc(|ddtd5}|}dddn #1swxYwY|d|t jd|ddSNrrrfoorrrrossystemassert_called_with)r r&patched_systemr"rs r#test_argument_order1z-TestPatchfsArgumentOrder.test_argument_order1D J888 *   vvxxH                *** %))%00000r(c(|ddtd5}|}dddn #1swxYwY|d|t jd|ddSr1r3)r r7r&r"rs r#test_argument_order2z-TestPatchfsArgumentOrder.test_argument_order2Nr9r(N)r)r*r+r rpatchr8r;r,r-r#r/r/Csv TZ 11 W1TZ  11 W111r-r/ceZdZdZdS)TestPyfakefsUnittestBasec.|dS)Set up the fake file systemN setUpPyfakefsr s r#setUpzTestPyfakefsUnittestBase.setUpZs r-N)r)r*r+rDr,r-r#r>r>Ys#r-r>c6eZdZdZdZdZdZdZdZdZ dS) TestPyfakefsUnittestzATest the `pyfakefs.fake_filesystem_unittest.TestCase` base class.c|tjdt dd5}|ddddn #1swxYwY||jdt d5}|}dddn #1swxYwY| d|dS)zFake `open()` function is bound/fake_file.txtwz6This test file was created using the open() function. N) assertFalser4pathexistsrwrite assertTruerrrr r"contents r# test_openzTestPyfakefsUnittest.test_openbsb (899::: "C ( ( OA GGM N N N O O O O O O O O O O O O O O O '788999 " # # qffhhG                 H      s$A%%A),A),C  CCc|tjdt jdd5}|ddddn #1swxYwY||jdt d5}| }dddn #1swxYwY| d|dS)zFake io module is boundrHrIz9This test file was created using the io.open() function. N) rJr4rKrLiorrMrNrrrrOs r# test_io_openz!TestPyfakefsUnittest.test_io_openosd (899::: W%s + + Uq GGS T T T U U U U U U U U U U U U U U U '788999 " # # qffhhG                 K      s$A**A.1A.1CCCc||jdtjd||jddS)zFake os module is boundz/test/dir1/dir2N)rJrrLr4makedirsrNrCs r#test_oszTestPyfakefsUnittest.test_os|s] (9::;;; %&&& '899:::::r-c0tjd}|gt jd|jdt jd}|r|dg|n|dg||jdtt jd}|r|ddg|dS|ddg|dS)zFake glob module is boundwinz/test/dir1/dir*/test/dir1/dir2az/test/dir1\dir2a/test/dir1/dir2bz/test/dir1\dir2bN)sysplatform startswithrglobr create_dirsorted)r is_windowsmatching_pathss r# test_globzTestPyfakefsUnittest.test_globs\,,U33  TY'899::: -...#455  C   12N C C C C   01> B B B -... *; < <==  W   13FG X X X X X   02DE~ V V V V Vr-c|jd|jd||jd||jdt jd||jddS)zFake shutil module is boundrZr[z /test/dir1N)rr`rNrLshutilrmtreerJrCs r# test_shutilz TestPyfakefsUnittest.test_shutils -... -... '9::;;; '9::;;; l###  5566666r-ctjd}|d5}|ddddn #1swxYwYtjd}|r/||j ddS||j ddS)NrHrItextrYz\fake_file.txt) pathlibrrrMr\r]r^rNrrL)r pr"rbs r#test_fakepathlibz%TestPyfakefsUnittest.test_fakepathlibs L) * * VVC[[ A GGFOOO               \,,U33  > OODGNN+<== > > > > > OODGNN+;<< = = = = =sA  AAN) r)r*r+__doc__rQrTrWrdrhrmr,r-r#rFrF_swKK        ;;; WWW"777>>>>>r-rFceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z ejejd kd dZejejd kd dZdS)TestPatchingImportscd}|j|||j||tjj|dS)N /foo/bar/baz)rrrNrLpyfakefstestsimport_as_examplecheck_if_exists1r file_paths r#test_import_as_other_namez-TestPatchingImports.test_import_as_other_namesh"  I&&& y11222 8II)TTUUUUUr-cd}|j|||j||tjj|dS)z/Make sure `from os import path` patches `path`.rrN)rrrNrLrsrtrucheck_if_exists2rws r#test_import_path_from_osz,TestPatchingImports.test_import_path_from_ossh"  I&&& y11222 8II)TTUUUUUr-cd}|j||tjj|dSNr)rr`rNrsrtrucheck_if_exists3rws r#test_import_path_from_pathlibz1TestPatchingImports.test_import_path_from_pathlibH  9%%% 8II)TTUUUUUr-cd}|j||tjj|dSr~)rr`rNrsrtrucheck_if_exists5rws r#test_import_exists_from_os_pathz3TestPatchingImports.test_import_exists_from_os_pathrr-cd}|j||tjj|dSr~)rrrNrsrtrucheck_if_isfilerws r#test_import_isfile_from_os_pathz3TestPatchingImports.test_import_isfile_from_os_pathsH  I&&& 8HHSSTTTTTr-cd}|j||tjj|dSr~)rr`rNrsrtrucheck_if_isdirrws r#test_import_isdir_from_os_pathz2TestPatchingImports.test_import_isdir_from_os_pathsH  9%%% 8GG RRSSSSSr-cd}d}|j||j|||tjj|dS)Nrz /foo/link)rrcreate_symlinkrNrsrtrucheck_if_islink)r rx link_paths r#test_import_islink_from_os_pathz3TestPatchingImports.test_import_islink_from_os_pathse   I&&& y)444 8HHSSTTTTTr-cd}|j||tjj|dSr~)rr`rNrsrtrucheck_if_exists6rws r#/test_import_function_from_os_path_as_other_namezCTestPatchingImports.test_import_function_from_os_path_as_other_namerr-cd}|j||tjj|dSr~)rr`rNrsrtrucheck_if_exists7rws r#test_import_pathlib_pathz,TestPatchingImports.test_import_pathlib_pathrr-cd}|j|dtjj|}|d|jdSNrabcrr)rrrsrtru file_stat1rst_sizer rx stat_results r#test_import_function_from_osz0TestPatchingImports.test_import_function_from_osY  I777n6AA)LL  K/00000r-cd}|j|dtjj|}|d|jdSr)rrrsrtru file_stat2rrrs r#*test_import_function_from_os_as_other_namez>TestPatchingImports.test_import_function_from_os_as_other_namerr-rzCurrently not working in 3.12cd}|j|dtjj|}|d|dSNrrrabc)rrrsrtrufile_contents1rr rxrs r#test_import_open_as_other_namez2TestPatchingImports.test_import_open_as_other_nameV  I777>3BB9MM )))))r-cd}|j|dtjj|}|d|dSr)rrrsrtrufile_contents2rrs r#!test_import_io_open_as_other_namez5TestPatchingImports.test_import_io_open_as_other_namerr-N)r)r*r+ryr|rrrrrrrrrunittestskipIfr\ version_inforrr,r-r#rprps<VVV VVVVVV VVV UUU TTT UUUVVV VVV 111 111 X_S%02QRR**SR* X_S%02QRR**SR***r-rpc&eZdZdZdZdZdZdS)TestPatchingDefaultArgsc2|ddS)NT)patch_default_argsrArCs r#rDzTestPatchingDefaultArgs.setUps d33333r-cd}|j||tjj|dSr~)rr`rNrsrtrucheck_if_exists4rws r#+test_path_exists_as_default_arg_in_functionzCTestPatchingDefaultArgs.test_path_exists_as_default_arg_in_functionrr-cd}|j|tjj}|||dSr~)rr`rsrtruTestDefaultArgrNcheck_if_exists)r rxsuts r#)test_path_exists_as_default_arg_in_methodzATestPatchingDefaultArgs.test_path_exists_as_default_arg_in_methodsY  9%%%n.==?? ++I6677777r-c|jd|tjjddSNr2)rrrNrsrtrurrCs r#test_fake_path_exists4z.TestPatchingDefaultArgs.test_fake_path_exists4C E""" 8II%PPQQQQQr-N)r)r*r+rDrrrr,r-r#rrsX444VVV 888 RRRRRr-rceZdZdZdZdS)!TestAttributesWithFakeModuleNameszXTest that module attributes with names like `path` or `io` are not stubbed out. cF|tjd|tjd|tjd|tjd|tjddS)z/Attributes of module under test are not patchedzos attribute valuezpath attribute valuezpathlib attribute valuezshutil attribute valuezio attribute valueN)rr r4rKrkrfrSrCs r#test_attributesz1TestAttributesWithFakeModuleNames.test_attributess /24HIII /46LMMM /79RSSS /68PQQQ /24HIIIIIr-N)r)r*r+rnrr,r-r#rr s2JJJJJr-rceZdZdZdZdS)TestPathNotPatchedIfNotOsPathzTests that `path` is not patched if it is not `os.path`. An own path module (in this case an alias to math) can be imported and used. cV|dtjddS)Ng@)rrKfloorrCs r#test_own_path_modulez2TestPathNotPatchedIfNotOsPath.test_own_path_module!s& DJsOO,,,,,r-N)r)r*r+rnrr,r-r#rrs- -----r-rc2eZdZdZejdZdS)FailedPatchingTestzNegative tests: make sure the tests for `modules_to_reload` and `modules_to_patch` fail if not providing the arguments. cd}|j|d|dtjj|jdSNrstestrrrrrsrtru system_statrrws r#test_system_statz#FailedPatchingTest.test_system_stat*s_  I888  x~/;;IFFN     r-N)r)r*r+rnrexpectedFailurerr,r-r#rr%s=     r-rceZdZdZdZdS)ReloadModuleTest`Make sure that reloading a module allows patching of classes not patched automatically. cR|tjjgdS)r@)modules_to_reloadNrBrsrtrurCs r#rDzReloadModuleTest.setUp8s' hn.N-OPPPPPr-N)r)r*r+rnrDr,r-r#rr3s2QQQQQr-rcNeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d S) NoSkipNamesTestzdReference test for additional_skip_names tests: make sure that the module is patched by default.c.|dSNrArCs r#rDzNoSkipNamesTest.setUpA r-cr|tjjdSr)rJrsrtruexists_this_filerCs r#test_path_existsz NoSkipNamesTest.test_path_existsDs- 9JJLLMMMMMr-c|jd|tjjddSr)rrrNrsrtrurvrCs r#test_fake_path_exists1z&NoSkipNamesTest.test_fake_path_exists1Grr-c|jd|tjjddSr)rrrNrsrtrur{rCs r#test_fake_path_exists2z&NoSkipNamesTest.test_fake_path_exists2Krr-c|jd|tjjddSr)rrrNrsrtrurrCs r#test_fake_path_exists3z&NoSkipNamesTest.test_fake_path_exists3Orr-c|jd|tjjddSr)rrrNrsrtrurrCs r#test_fake_path_exists5z&NoSkipNamesTest.test_fake_path_exists5Srr-c|jd|tjjddSr)rrrNrsrtrurrCs r#test_fake_path_exists6z&NoSkipNamesTest.test_fake_path_exists6Wrr-c|jd|tjjddSr)rrrNrsrtrurrCs r#test_fake_path_exists7z&NoSkipNamesTest.test_fake_path_exists7[rr-c|t5tjjddddS#1swxYwYdSr) assertRaisesOSErrorrsrtruopen_this_filerCs r#test_open_failszNoSkipNamesTest.test_open_fails_s   w ' ' > > N , ; ; = = = > > > > > > > > > > > > > > > > > >s$A  AAcd}|j|dtjj|}|d|dS)Nrrr)rrrsrtlogsio file_contentsrrs r#*test_open_patched_in_module_ending_with_ioz:NoSkipNamesTest.test_open_patched_in_module_ending_with_iocsV  I777>(66yAA *****r-N)r)r*r+rnrDrrrrrrrrrr,r-r#rr=s88NNNRRRRRRRRRRRRRRRRRR>>>+++++r-rceZdZdZdZdZdZdZdZdZ dZ d Z d Z e jejd kd d ZdZdS)AdditionalSkipNamesTestzsMake sure that modules in additional_skip_names are not patched. Passes module name to `additional_skip_names`.c4|dgdS)N pyfakefs.tests.import_as_exampleadditional_skip_namesrArCs r#rDzAdditionalSkipNamesTest.setUpos# 2T1UVVVVVr-cr|tjjdSrrNrsrtrurrCs r#rz(AdditionalSkipNamesTest.test_path_existsr+ 8IIKKLLLLLr-c|jd|tjjddSrrrrJrsrtrurvrCs r#test_fake_path_does_not_exist1z6AdditionalSkipNamesTest.test_fake_path_does_not_exist1uE E""" 9JJ5QQRRRRRr-c|jd|tjjddSrrrrJrsrtrur{rCs r#test_fake_path_does_not_exist2z6AdditionalSkipNamesTest.test_fake_path_does_not_exist2yrr-c|jd|tjjddSrrrrJrsrtrurrCs r#test_fake_path_does_not_exist3z6AdditionalSkipNamesTest.test_fake_path_does_not_exist3}rr-c|jd|tjjddSrrrrJrsrtrurrCs r#test_fake_path_does_not_exist4z6AdditionalSkipNamesTest.test_fake_path_does_not_exist4rr-c|jd|tjjddSrrrrJrsrtrurrCs r#test_fake_path_does_not_exist5z6AdditionalSkipNamesTest.test_fake_path_does_not_exist5rr-c|jd|tjjddSrrrrJrsrtrurrCs r#test_fake_path_does_not_exist6z6AdditionalSkipNamesTest.test_fake_path_does_not_exist6rr-c|jd|tjjddSrrrrJrsrtrurrCs r#test_fake_path_does_not_exist7z6AdditionalSkipNamesTest.test_fake_path_does_not_exist7rr-r3Skip modules currently not working for open in 3.12cLtjjdSrrsrtrurrCs r#test_open_succeedsz*AdditionalSkipNamesTest.test_open_succeeds! (7799999r-cLtjjdSrrsrtrureturn_this_file_pathrCs r#test_path_succeedsz*AdditionalSkipNamesTest.test_path_succeeds(>>@@@@@r-Nr)r*r+rnrDrrrrr r rrrrr\rrrr,r-r#rrks66WWWMMMSSSSSSSSSSSSSSSSSSSSSX_ G#=:: :AAAAAr-rceZdZdZdZdZdZdZdZdZ dZ d Z d Z e jejd kd d ZdZdS)AdditionalSkipNamesModuleTestznMake sure that modules in additional_skip_names are not patched. Passes module to `additional_skip_names`.cR|tjjgdS)NrrrCs r#rDz#AdditionalSkipNamesModuleTest.setUps' (.2R1STTTTTr-cr|tjjdSrrrCs r#rz.AdditionalSkipNamesModuleTest.test_path_existsrr-c|jd|tjjddSrrrCs r#rz3L   !!!00000r-r-ceZdZdZdZdZdS)PatchModuleTestrc@|dtidS)r@rmodules_to_patchN)rBr-rCs r#rDzPatchModuleTest.setUps2 @BST      r-cd}|j|d|dtjj|jdSrrrws r#rz PatchModuleTest.test_system_stats_  I888  x~/;;IFFN     r-N)r)r*r+rnrDrr,r-r#r:r:s<        r-r:cpeZdZdZeejdZedeidZ dS)PatchModuleTestUsingDecoratorzMake sure that reloading a module allows patching of classes not patched automatically - use patchfs decorator with parameter. cd}||d|dtjj|jdSrrrrsrtrurrr r&rxs r#test_system_stat_failingz6PatchModuleTestUsingDecorator.test_system_stat_failings_ I888  x~/;;IFFN     r-rr<cd}||d|dtjj|jdSrrBrCs r#rz.PatchModuleTestUsingDecorator.test_system_stats] I888  x~/;;IFFN     r-N) r)r*r+rnr rrrDr-rr,r-r#r@r@sx     W  WACTUVVV  WV   r-r@ceZdZdZdZdZdS)NoRootUserTestz/Test allow_root_user argument to setUpPyfakefs.c2|ddS)NF)allow_root_userrArCs r#rDzNoRootUserTest.setUp s 511111r-cd|j_d}|j|d|dz}|t5|j|dddn #1swxYwYd}|j|t j|d|t5t|d ddddS#1swxYwYdS) zYCheck that fs behaves as non-root user regardless of actual user rights. Frim) perm_bitsbazNz/bazrI) r is_windows_fsr`rrrr4chmodr)r dir_pathrxs r#test_non_root_behaviorz%NoRootUserTest.test_non_root_behaviorsn!& 8u555u$   w ' ' + + G   * * * + + + + + + + + + + + + + + +  I&&& E"""   w ' ' ! ! C  ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s$ A11A58A5C%%C),C)N)r)r*r+rnrDrQr,r-r#rGrGs899222!!!!!r-rGc8eZdZdZdZdZdZdZdZdZ dS) PauseResumeTestc<d|_|dSr)real_temp_filerBrCs r#rDzPauseResumeTest.setUp!s"" r-cJ|j|jdSdSr)rUcloserCs r#tearDownzPauseResumeTest.tearDown%s.   *   % % ' ' ' ' ' + *r-ctj}||j|j|t j|j|||j|j| t j|jtj|_ | |j|j j|t j|j j| | t j|j j|t j|jdSr) tempfileNamedTemporaryFilerNrrLr7r4rKpauserJrUresumer fake_temp_files r#test_pause_resumez!PauseResumeTest.test_pause_resume)sh!466 ~':;;<<< ~':;;<<<  ~':;;<<< (;<<===&9;; (;(@AABBB t':'?@@AAA  (;(@AABBB ~':;;<<<<+>?? @ @ @   RW^^N,?@@ A A A"*"="?"?D    TW^^D,?,DEE F F F OOBGNN4+>+CDD E E E  F F F F F F F F F F F F F F F (;(@AABBB ~':;;<<<<+>?? @ @ @   RW^^N,?@@ A A A"*"="?"?D    TW^^D,?,DEE F F F OOBGNN4+>+CDD E E E  F F F F F F F F F F F F F F F (;(@AABBB ~':;;<<<<+>?? @ @ @ GGIII OOADKK(;<< = = =   RW^^N,?@@ A A A%8::N   QT[[)<== > > > OOBGNN>+>?? @ @ @ HHJJJ   RW^^N,?@@ A A A OOBGNN>+>?? @ @ @ A A A A A A A A A A A A A A A sG8HHHcft5}tj}||j|j|tj|jt|5||j|j| tj|jtj}| |j|j|tj|jdddn #1swxYwY| tj|j|tj|jdddn #1swxYwY| dSr) r rZr[rNrrLr7r4rKr rJrWros r#rez7PauseResumePatcherTest.test_pause_resume_contextmanager}s6 YY A!%8::N OOADKK(;<< = = = OOBGNN>+>?? @ @ @q E E N,? @ @AAA  0C!D!DEEE!)!!>  ^-@!A!ABBB~/B C CDDD  E E E E E E E E E E E E E E E   RW^^N,?@@ A A A OOBGNN>+>?? @ @ @ A A A A A A A A A A A A A A A s8B HC&F  H F HF A1HHHN)r)r*r+r`rer,r-r#rmrmls2     r-rmceZdZdZdZdS)TestPyfakefsTestCasecVGddtj}|d|_dS)NceZdZdZdS)0TestPyfakefsTestCase.setUp..TestTestCasecdSrr,rCs r#runTestz8TestPyfakefsTestCase.setUp..TestTestCase.runTestsr-N)r)r*r+rwr,r-r# TestTestCaserus#     r-rxrw)rr test_case)r rxs r#rDzTestPyfakefsTestCase.setUpsG     3<   &i00r-c||jtj||jtjdSr)assertIsInstanceryrrr TestCaseMixinrCs r#test_test_case_typez(TestPyfakefsTestCase.test_test_case_types? dnh.?@@@ dn.F.TUUUUUr-N)r)r*r+rDr}r,r-r#rrrrs7111VVVVVr-rrcdeZdZdZdZdZejej dkddZ dS)TestTempDirCreationz2Test that the temp directory exists at test start.c.|dSrrArCs r#rDzTestTempDirCreation.setUprr-c|tjt jdSr)rNr4rKrLrZ gettempdirrCs r#test_tempdir_existsz'TestTempDirCreation.test_tempdir_existss1 x':'<'<==>>>>>r-win32zPOSIX only testcj|tjddS)Nz/tmp)rNr4rKrLrCs r#test_tmp_existsz#TestTempDirCreation.test_tmp_existss* v../////r-N) r)r*r+rnrDrrrr\r]rr,r-r#rrsk<<???X_S\W,.?@@00A@000r-rceZdZdZdZdZdS)TestTempFileReloadzbRegression test for #356 to make sure that reloading the tempfile does not affect other tests.ct5}|jddddddS#1swxYwYdS)Nz /mytempfileabcdr)r rr)r r!s r# test_fakefszTestTempFileReload.test_fakefss YY C' J " "=6 " B B B C C C C C C C C C C C C C C C C C Cs 9==cftjdd}||jddS)NIr)multiprocessingValuervalue)r vs r# test_valuezTestTempFileReload.test_values2  !#q ) ) !$$$$$r-N)r)r*r+rnrrr,r-r#rrs?$$CCC%%%%%r-rceZdZdZdS)TestPyfakefsTestCaseMixinc||t|d||jt jdS)Nr)rBrNhasattrr{rrrirCs r#test_set_up_pyfakefsz.TestPyfakefsTestCaseMixin.test_set_up_pyfakefssQ  d++,,, dg'EFFFFFr-N)r)r*r+rr,r-r#rrs(GGGGGr-rc$eZdZdZdZdZdZdS)TestShutilWithZipfilezRegression test for #427.cb||jddS)Nfoo/bar)rBrrrCs r#rDzTestShutilWithZipfile.setUps0  I&&&&&r-c4tjddddSNarchivezipr2)root_dirrf make_archiverCs r#test_azTestShutilWithZipfile.test_as Iuu======r-c4tjddddSrrrCs r#test_bzTestShutilWithZipfile.test_bs Iuu======r-N)r)r*r+rnrDrrr,r-r#rrsG##'''>>>>>>>>r-rc$eZdZdZdZdZdZdS)TestDistutilsCopyTreezRegression test for #501.c||jd|jd|jddS)Nz./test/subdir/z./test/subdir2/./test2/subdir/1.txt)rBrr`rrCs r#rDzTestDistutilsCopyTree.setUps_    G  / 0 0 0 G  0 1 1 1 G   6 7 7 7 7 7r-c tddtd|tjd|tjddS)N./test2/./test/./test/subdir/1.txt)rrrNr4rKisfilerJisdirrCs r#test_file_copiedz&TestDistutilsCopyTree.test_file_copiedsi j) , , ,  # # # OOBGNN+@AA B B B   RW]]:66 7 7 7 7 7r-cp|tjdt ddt d|tjd|tjddS)Nrrrr)rNr4rKrrrrJrrCs r#test_file_copied_againz,TestDistutilsCopyTree.test_file_copied_agains OOBGNN+ABB C C C j) , , ,  # # # OOBGNN+@AA B B B   RW]]:66 7 7 7 7 7r-N)r)r*r+rnrDrrr,r-r#rrsG'' 8 8 8  8 8 8 8 8 8 8 8r-rc(eZdZdZedZdS) PathlibTestzRegression test for #527ctjd}|rdtjjzntjj}||ttj tj d }||t|| | dS)z4Make sure fake file system is used for os in pathlibrYC:.N)r\r]r^r4rKseprstrrkrcwdabsoluterNrL)r rrbrdot_abss r#test_cwdzPathlibTest.test_cwds\,,U33 )3D4"'+%% 3w|'7'7'9'9#:#:;;;,s##,,.. 3w<<000 (()))))r-N)r)r*r+rnr rr,r-r#rrs3"" ** W***r-rc`eZdZejejddkddZdS)TestDeprecationSuppressionz,Test fails for Python 3.6 for unknown reasoncddlm}tjd5}tjdt ||dt|ddddS#1swxYwYdS)zaEnsures that deprecation warnings are suppressed during module lookup, see #542. r)DeprecationTestT)recorderrorN) +pyfakefs.tests.fixtures.deprecated_propertyrwarningscatch_warnings simplefilterDeprecationWarningrBrlen)r rrIs r#test_no_deprecation_warningz6TestDeprecationSuppression.test_no_deprecation_warnings       $D 1 1 1 (Q  !'+= > > >      QA ' ' ' ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (sAA;;A?A?N)r)r*r+rrr\rrr,r-r#rrsQX_ q 6 ( (  ( ( (r-rcg}|D]R}t|dkr&|dddkr|tj|z };|tj|z }S|S)z@Helper code for patching open_code in auto mode, see issue #554.rNz.py)rrunpyrun_path run_module)configsretvalconfigs r# load_configsrsi F// v;;??vbcc{e33 enV,, ,FF e&v.. .FF Mr-c*eZdZdZdZdZdZdZdS)AutoPatchOpenCodeTestCasez5Test patching open_code in auto mode, see issue #554.c|tjd|_|j|jdd|_dS)N)patch_open_codez configpy.pyzconfigurable_value='yup'rz%pyfakefs.tests.fixtures.config_module)rBr AUTOconfigpyrr config_modulerCs r#rDzAutoPatchOpenCodeTestCase.setUpsN 9>:::%  DM4NOOODr-c<t|j|jgdSr)rrrrCs r# test_bothz#AutoPatchOpenCodeTestCase.test_both$s dmT%7899999r-c0t|jgdSr)rrrCs r# test_run_pathz'AutoPatchOpenCodeTestCase.test_run_path'sdm_%%%%%r-c0t|jgdSr)rrrCs r#test_run_modulez)AutoPatchOpenCodeTestCase.test_run_module*sd()*****r-N)r)r*r+rnrDrrrr,r-r#rrsY??EEE:::&&&+++++r-rc2eZdZdZdZdZdZdZdZdS) TestOtherFSc.|dSrrArCs r#rDzTestOtherFS.setUp/rr-cDtjdk|j_|jjr d|j_|jt tt 5}|| dddn #1swxYwYtj }tj |tt 5}|| ddddS#1swxYwYdS)zRegression test for #558ntFN) r4r7rrNis_macos add_real_file__file__rrNrrhomechdir)r r"rs r#test_real_file_with_homez$TestOtherFS.test_real_file_with_home2sV "4 7  %$DG  h''' (^^ &q OOAFFHH % % % & & & & & & & & & & & & & & &y{{  (^^ &q OOAFFHH % % % & & & & & & & & & & & & & & & & & &s$&(BB!B (DDDcntj|j_d}||tjddd|dtj||j|| tj || tj |j | tj d| tj d|dtj |dtjj |d tj|d tj|d tj|d tjdS) Nz C:\foo\barzC:\r2bar)rz\foo\barz \\share\foor\/;z nul)rWINDOWSrr4rrKjoin splitdriverrNrLupperismountraltseppathseplinesepdevnullr rKs r# test_windowszTestOtherFS.test_windows?s^  rw||FE5AABBB ,bg.@.@.F.FGGG D!!! t,,--- ztz||44555 77888 ../// rv&&& rw{+++ bi((( bj))) ,,,  +++++r-cntj|j_d}||tjddd|dtjd|j|| tj || tj |j | tj d| tj d|dtj|dtjj|dtj|dtj|d tj|d tjdS Nrrr2r) C:/foo/barrz //share/foo: z /dev/null)rLINUXrr4rrKrrrrNrLrJrrrrrrrrs r# test_linuxzTestOtherFS.test_linuxPs\  rw||C>>??? +RW-?-? -M-MNNN D!!! t,,---   55666 ,,--- 77888 bf%%% bgk*** ry))) bj))) rz*** bj11111r-cntj|j_d}||tjddd|dtjd|j|| tj || tj |j | tj d| tj d|dtj|dtjj|dtj|dtj|d tj|d tjdSr)rMACOSrr4rrKrrrrNrLrrrJrrrrrrs r# test_macoszTestOtherFS.test_macosas\  rw||C>>??? +RW-?-? -M-MNNN D!!! t,,--- ztz||44555 ,,--- 77888 bf%%% bgk*** ry))) bj))) rz*** bj11111r-c tj|j_t d}|dz }|jd|tj|| tj t| |dS)Nz/testz C:/testfileT)parents)rrrr4rparentmkdirtouchrrNrKrLr relative_to)r folderrxs r#test_drivelike_pathzTestOtherFS.test_drivelike_pathrs\ g]* t,,,  s9+@+@+H+H'I'IJJKKKKKr-N) r)r*r+rDrrrr rr,r-r#rr.ss & & &,,,"222"222"LLLLLr-rrzWindows-specific behaviorc$eZdZedZdS)TestAbsolutePathOnWindowsc|tjddS)Nr)rNrkrr is_absoluter/s r#test_is_absolutez*TestAbsolutePathOnWindows.test_is_absolute~s>  S))2244@@BBCCCCCr-N)r)r*r+r rr,r-r#rr|s2 DD WDDDr-r)rzNot available before Python 3.8c0eZdZedZdZdZdS)TestClassSetupc||dddS)Nrrr)setUpClassPyfakefsr&r)clss r# setUpClasszTestClassSetup.setUpClasss;     !!)f!=====r-c |tjdt d5}|}dddn #1swxYwY|d|dSNrr)rNr4rKrLrrr)r r"rs r#test_using_fs_functionsz&TestClassSetup.test_using_fs_functionss y11222 )__ vvxxH                *****sA##A'*A'c||jd|jd}|d|jdSr)rNrrL get_objectrr)r r"s r#test_using_fakefsz TestClassSetup.test_using_fakefssU y11222 G  y ) ) ,,,,,r-N)r)r*r+ classmethodrr r#r,r-r#rrsK>>[>+++ -----r-r__main__)Hrnr_rSrr4rkrrfr\rZrrrrr pyfakefs.tests.import_as_examplerspyfakefs.tests.logsiorrpyfakefs.fake_filesystemr!pyfakefs.fake_filesystem_unittestr r r r pyfakefs.tests.fixturesr rdistutils.dir_utilrrrr/r>rFrprrmathrKrrrrrr r-r:r@rGrSrmrrrrr|rrrrrrrrrr]rrr)mainr,r-r#r.s"   ########''''>>>>>>>>++++++ ;:::::g99999999 + + + + +( + + + 11111x111,7@ F>F>F>F>F>3F>F>F>RK*K*K*K*K*2K*K*K*\RRRRR6?RRR( J J J J J(@ J J J-----$<---      1    QQQQQ/8QQQ++++++++++.7++++++\.A.A.A.A.A6?.A.A.Ab.A.A.A.A.A$<$E.A.A.Ab00000000"     .7   &     H$5   .!!!!!-6!!!0IIIII.7IIIX5>B V V V V V8, V V V 0 0 0 0 02; 0 0 0 % % % % %* % % %GGGGG /=GGG > > > > >4= > > >g88888 8 A8886 * * * * *( * * *(((((!9!B((((+++++ 8 A+++(KLKLKLKLKL*3KLKLKL\(*EFFDDDDD 8 ADDGFD!F*,MNN------6--ON-$ zHMOOOOOr-