bgeILdZddlZddlZddlZddlZddlZddlZddlZddlZddl m Z m Z ddl m Z mZddlmZddlmZddlmZGdd eZGd d eZGd d eZGddeZGddeZejejdkdGddeZGddeZejejdkdGddeZGddeZGddeZ Gdde Z!Gd d!eZ"Gd"d#e"Z#Gd$d%eZ$Gd&d'e$Z%Gd(d)eZ&Gd*d+e&Z'Gd,d-eZ(Gd.d/eZ)Gd0d1eZ*Gd2d3e*Z+Gd4d5e+Z,Gd6d7e*Z-Gd8d9e-Z.Gd:d;eZ/Gd<d=e/Z0Gd>d?eZ1Gd@dAe1Z2e3dBkrej4dSdS)Cz&Unit tests for fake_open.FakeOsModule.N)fake_filesystemhelpers)is_rootIS_PYPY) FakeIoModule) PatchMode)RealFsTestCasec$eZdZfdZdZxZS)FakeFileOpenTestBasectt||rtj|_dSt |j|_|jj|_dSN) superr setUp use_real_fsioopenr filesystemfake_io_moduleself __class__s n/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/pyfakefs/tests/fake_open_test.pyrzFakeFileOpenTestBase.setUp#sd "D))//111      1DIII".t"?"?D +0DIIIcdS)N!rs rpath_separatorz#FakeFileOpenTestBase.path_separator+ssr)__name__ __module__ __qualname__rr __classcell__rs@rr r "sG11111rr ceZdZfdZfdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/d.Z0d/Z1d0Z2d1Z3d2Z4d3Z5d4Z6d5Z7d6Z8d7Z9d8Z:d9Z;d:Zd=Z?d>Z@d?ZAd@ZBdAZCdBZDdCZEdDZFdEZGdFZHdGZIdHZJdIZKdJZLdKZMdLZNdMZOxZPS)NFakeFileOpenTestcxtt|tj|_dSr )rr%rtime orig_timers rrzFakeFileOpenTest.setUp0s- %%++---rcxtt||jt_dSr )rr%tearDownr(r'rs rr*zFakeFileOpenTest.tearDown4s- %%..000N rc|dd}|tj|j|ddS)z8Expect raise when opening a file in a missing directory.foobar.txtwN) make_pathassert_raises_os_errorerrnoENOENTrr file_paths rtest_open_no_parent_dirz(FakeFileOpenTest.test_open_no_parent_dir8s9NN5)44  ##EL$)YLLLLLrc|d}d}|j|tj|jd|_||d5||j|dddn #1swxYwY| |j|dS)Nboozboo!farTdelete_on_closer.) skip_real_fsosmkdirr FakeFileOpenrr assertTrueexists assertFalserfile_dirr4s rtest_delete_on_closez%FakeFileOpenTest.test_delete_on_close=s    h#0RVWWW YYy# & & ? ? OODO229== > > > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // ::;;;;;s).B##B'*B'cT|d}||d5||jj|dddn #1swxYwY||jj|dS)Nczarr.)r/rr>r;pathr?r3s r"test_no_delete_on_close_by_defaultz3FakeFileOpenTest.test_no_delete_on_close_by_defaultGsNN6** YYy# & & < < OODGL// :: ; ; ; < < < < < < < < < < < < < < <  ++I6677777s3A++A/2A/c|tj|jd|_d}||jj|||d5| |jj|dddn #1swxYwY||jj|dS)NTr8r,r.) r:rr=rrr@r;rFr?r>r3s r$test_compatibility_of_with_statementz5FakeFileOpenTest.test_compatibility_of_with_statementMs #0RVWWW   ,,Y77888 YYy# & & < < OODGL// :: ; ; ; < < < < < < < < < < < < < < < ,,Y7788888s?3B>>CCc|d}d} ||d5}||dddn #1swxYwYn%#t$r|dYnwxYw||5}|}dddn #1swxYwY|||dS)Nr,u Ümläütsr.,This test does not work with an ASCII locale)r/rwriteUnicodeEncodeErrorskipTestread assertEqual)rr4text_fractionsfcontentss rtest_unicode_contentsz&FakeFileOpenTest.test_unicode_contentsXs`NN5)) & J9c** (a''' ( ( ( ( ( ( ( ( ( ( ( ( ( ( (! J J J MMH I I I I I JYYy ! ! QvvxxH                >22222sFAA AAAAAA?>A?B88B<?B<c|d}d}||d5}||dddn #1swxYwY||d5}|}dddn #1swxYwY|||ddS)Nr,⅓ ⅔ ⅕ ⅖wbutf-8encoding)r/rrLrOrPdecode)rr4byte_fractionsrRrSs rtest_byte_contentsz#FakeFileOpenTest.test_byte_contentsis1NN5)) O YYy$ ' ' $1 GGN # # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $YYy7Y 3 3 qvvxxH                >#8#8#A#ABBBBBs#AAA2BBBc|d}d} ||d5}||dddn #1swxYwYn%#t$r|dYnwxYw||d5}|}dddn #1swxYwY|||tj ddS)Nr,uÄsgülr.rKrbF) r/rrLrMrNrOrPr[localegetpreferredencoding)rr4 str_contentsrRrSs rtest_write_str_read_bytesz*FakeFileOpenTest.test_write_str_read_bytestsNN5))   J9c** &a %%% & & & & & & & & & & & & & & &! J J J MMH I I I I I JYYy$ ' ' 1vvxxH                 (//&*Ee*L*LMM     sFAA AAAAAA?>A?B99B=B=c8gd}|d}||d|||5}|||ddddS#1swxYwYdSNz I am he as zyou are he as zyou are me and zwe are all together r-rS)r/ create_filejoinrrP readlines)rrSr4 fake_files rtest_open_valid_filez%FakeFileOpenTest.test_open_valid_files    NN9--  RWWX->->??? YYy ! ! >Y   Xy':':'<'< = = = > > > > > > > > > > > > > > > > > >s)BBBc<ddg}|dd}||d|||d5}|||dddn #1swxYwY||dd d d 5}|d dd |jjz|dg}|||ddddS#1swxYwYdS)Nz"Bang bang Maxwell's silver hammer Came down on her head abbey_roadmaxwellrgrh bufferingstrict )rterrorsnewlineopenerr)r/rirjrrPrkr;linesep)rrSr4rRexpected_contentss rtest_open_valid_argsz%FakeFileOpenTest.test_open_valid_argss 1 # NN<;;  RWWX->->??? YYyAY . . 6!   Xq{{}} 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 YY 8T$   ?  CRC 47?2 !    . > > > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?s%)BBB6ADDDcvgd}|d}||d||j|j||5}|||ddddS#1swxYwYdSre) r/rirjr;chdir base_pathrrPrk)rrSr4rRs rtest_open_valid_file_with_cwdz.FakeFileOpenTest.test_open_valid_file_with_cwds    NN9--  RWWX->->???  dn%%% YYy ! ! 6Q   Xq{{}} 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6s8)B..B25B2c,ddg}|dd}||d|||5}d|D}dddn #1swxYwY|||dS)Nz!Bang bang Maxwell's silver hammerrorprqrvrhc6g|]}|Srrstrip.0lines r z;FakeFileOpenTest.test_iterate_over_file.. :::dkkmm:::r)r/rirjrrP)rrSr4rlresults rtest_iterate_over_filez'FakeFileOpenTest.test_iterate_over_files / # NN<;;  TYYx-@-@AAA YYy ! ! ;Y:: :::F ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 6*****s A33A7:A7cddg}g}|d}||d|||5}|t ||t |dddn #1swxYwY|||dS)Nz Live long z and prosper zfoo.txtrgrh)r/rirjrappendnextrP)rrSrr4rls rtest_next_over_filez$FakeFileOpenTest.test_next_over_files!?3NN9--  RWWX->->??? YYy ! ! +Y MM$y// * * * MM$y// * * * + + + + + + + + + + + + + + + 6*****sAB,,B03B0c"|d}|j||jr-|t j|jj|dS|t j |jj|dSNr,) r/r;r< is_windowsr0r1EACCESr__call__EISDIR)rdirectory_paths rtest_open_directory_errorz*FakeFileOpenTest.test_open_directory_errors..  n%%% ?   ' ' di0.       ' ' di0.     rcgd}|d}|jj|d}|j|||d5}|D]}||dz dddn #1swxYwY||5}d|D}dddn #1swxYwY|||dS)Nz"Here comes the sun, little darlin'zHere comes the sun, and I say,z It's alrightrphere_comes_the_sunr.rvc6g|]}|Srrrs rrz@FakeFileOpenTest.test_create_file_with_write..rrr/r;rFrjr<rrLrPrrSrBr4rlrrs rtest_create_file_with_writez,FakeFileOpenTest.test_create_file_with_write|    >>,//GL%%h0DEE   h YYy# & & -)  - -t ,,,, - - - - - - - - - - - - - - - -YYy ! ! ;Y:: :::F ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 6*****$*BBB5 CCCcgd}|d}|jj|d}|j|||d5}|D]}||dz dddn #1swxYwY||5}d|D}dddn #1swxYwY|||dS)Nrrprarvc6g|]}|Srrrs rrzAFakeFileOpenTest.test_create_file_with_append..rrrrs rtest_create_file_with_appendz-FakeFileOpenTest.test_create_file_with_appendrrc||d}|||tj|j|d|tj|j|ddS)Nbarxxb)skip_if_symlink_not_supportedr/rir0r1EEXISTrr3s r"test_exclusive_create_file_failurez3FakeFileOpenTest.test_exclusive_create_file_failures{ **,,,NN5))  ### ##EL$)YLLL ##EL$)YMMMMMrc|d}|jj|d}|j|d}||d5}||dddn #1swxYwY||5}|||ddddS#1swxYwYdS)Nr,rzString contentsr r/r;rFrjr<rrLrPrOrrBr4rSrls rtest_exclusive_create_filez+FakeFileOpenTest.test_exclusive_create_filesP>>%((GL%%h66   h$ YYy# & & &) OOH % % % & & & & & & & & & & & & & & & YYy ! ! 9Y   Xy~~'7'7 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9s$(B  BB*)C  C$'C$c|d}|jj|d}|j|d}||d5}||dddn #1swxYwY||d5}|||ddddS#1swxYwYdS)Nr,rsBinary contentsrr_rrs r!test_exclusive_create_binary_filez2FakeFileOpenTest.test_exclusive_create_binary_filesR>>%((GL%%h66   h% YYy$ ' ' &9 OOH % % % & & & & & & & & & & & & & & & YYy$ ' ' 99   Xy~~'7'7 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9s$(B  BB+)C!!C%(C%c|d}||dddg}||d5}|D]}||dz dddn #1swxYwY||5}d|D}dddn #1swxYwY|||dS) Noverwitez To disappearrhzOnly these lineszshould be in the file.r.rvc6g|]}|Srrrs rrzAFakeFileOpenTest.test_overwrite_existing_file..rrr/rirrLrP)rr4 new_contentsrlrrs rtest_overwrite_existing_filez-FakeFileOpenTest.test_overwrite_existing_file scNN:..  ^<<<  $ YYy# & & -)$ - -t ,,,, - - - - - - - - - - - - - - - -YYy ! ! ;Y:: :::F ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; v.....s$A22A69A6 B++B/2B/c|d}dg}|||d||d5}|ddD]}||dz dddn #1swxYwY||5}d|D}dddn #1swxYwY|||dS) N appendfilez*Contents of original fileAppended contentsrrhrrrrvc6g|]}|Srrrs rrz>FakeFileOpenTest.test_append_existing_file..$rrr)rr4rSrlrrs rtest_append_existing_filez*FakeFileOpenTest.test_append_existing_fileslNN<00 ;  Xa[999 YYy# & & -)   - -t ,,,, - - - - - - - - - - - - - - - -YYy ! ! ;Y:: :::F ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 6*****s$ &A??BB B88B<?B<cp|d}||d||jj|||d5}|d|dddn #1swxYwY||d5}| d| d|d|ddddS#1swxYwYdS)N wplus_file old contentsrhrw+ new contentsr) r/rir>r;rFr?rrPrOrLseekrr4rls rtest_open_with_wplusz%FakeFileOpenTest.test_open_with_wplus'sNN<00  ^<<<  ++I66777 YYy# & & ?)   ^Y^^-=-= > > > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?YYy$ ' ' >9 OON + + + NN1    OONINN,<,< = = = > > > > > > > > > > > > > > > > > >s%5)B**B.1B. AD++D/2D/cF|d}||d||jj|||d5}|d|dddn #1swxYwY||d5}| d|d|ddddS#1swxYwYdS)Nrrrhrrrrg) r/rir>r;rFr?rrPrOrrs rtest_open_with_wplus_truncationz0FakeFileOpenTest.test_open_with_wplus_truncation4sNN<00  ^<<<  ++I66777 YYy# & & ?)   ^Y^^-=-= > > > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?YYy$ ' ' 39 NN1      R!1!1 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3s$5)B**B.1B. >DDDcfgd}ddg}|d}||d|||d5}|t j5|ddddn #1swxYwY|t j5|dddn #1swxYwYtd|}|t|t|j j d z zz }| || |d| d| ||dddn #1swxYwY||5}| ||z|ddddS#1swxYwYdS) NrfzThese new lines zlike you a lot. rrgrhrrrr)r/rirjr assertRaisesrUnsupportedOperationrOreadlinelenr;r{rPtellr writelinesrk)rrSadditional_contentsr4rl expected_lens rtest_open_with_append_flagz+FakeFileOpenTest.test_open_with_append_flag@s    34GHNN<00  RWWX->->??? YYy# & & 6)""2#:;; " "q!!! " " " " " " " " " " " " " " """2#:;; % %""$$$ % % % % % % % % % % % % % % %rwwx0011L CMMS-A-AA-EF FL   \9>>+;+; < < < NN1      Q  0 0 1 1 1  !4 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6YYy ! ! TY   X(;;Y=P=P=R=R S S S T T T T T T T T T T T T T T T T T Tsm G >B  G  B$ $G 'B$ ("G  C+ G +C/ /G 2C/ 3CG  GG-,H&&H*-H*c^|d}||d||jj|||d5}|d|dddn #1swxYwY|j r tj |j d|_||d5}|d| | d |d | |d |d |ddddS#1swxYwYdS) N aplus_filerrhrTr8a+ rrold contentsnew contents)r/rir>r;rFr?rrPrOrrr=rrLrrs rcheck_append_with_aplusz(FakeFileOpenTest.check_append_with_aplusXsNN<00  ^<<<  ++I66777 YYy# & & ?)   ^Y^^-=-= > > > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? '4DIYYy$ ' ' K9   R!1!1 2 2 2 OON + + +   R!1!1 2 2 2 NN1      79I9I J J J  K K K K K K K K K K K K K K K K K Ks%5)B**B.1B.2B#F""F&)F&cV||dSr )check_macos_onlyrrs rtest_append_with_aplus_mac_osz.FakeFileOpenTest.test_append_with_aplus_mac_osks,  $$&&&&&rcV||dSr )check_linux_and_windowsrrs r$test_append_with_aplus_linux_windowsz5FakeFileOpenTest.test_append_with_aplus_linux_windowsos, $$&&& $$&&&&&rc|d}||d||jj|||d5}|d|dddn #1swxYwY||d5}| d| d| d|D]}|d| ddddS#1swxYwYdS) Nrrrhrrrrr r/rir>r;rFr?rrPrOrrL)rr4rlrs r%test_append_with_aplus_read_with_loopz6FakeFileOpenTest.test_append_with_aplus_read_with_loopssNN<00  ^<<<  ++I66777 YYy# & & ?)   ^Y^^-=-= > > > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?YYy$ ' ' C9 NN1    OON + + + NN1   ! C C  !;TBBBB C  C C C C C C C C C C C C C C C C C Cs%5)B**B.1B. AD44D8;D8c|d}||d5}|d|ddddS#1swxYwYdS)Nrrrg)r/rrPrOrs rtest_read_empty_file_with_aplusz0FakeFileOpenTest.test_read_empty_file_with_aplussNN<00 YYy$ ' ' 39   R!1!1 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3s)A""A&)A&c|d}||d||jj|||d5}|d|dddn #1swxYwY||d5}|d|| d| d| d|d|ddddS#1swxYwYdS) N rplus_filezold contents hererhrr+rrznew contents hererrs rtest_read_with_rplusz%FakeFileOpenTest.test_read_with_rplussNN<00  -@AAA  ++I66777 YYy# & & D)   0)..2B2B C C C D D D D D D D D D D D D D D DYYy$ ' ' D9   0)..2B2B C C C NN1    OON + + + NN1      0)..2B2B C C C  D D D D D D D D D D D D D D D D D Ds%5)B**B.1B. BE((E,/E,c|||j|||tjzr|j|}|||j||jt j z| |jt j zdSdSr ) rir;chmodr PERM_READstatassert_mode_equalst_moder>S_IFREGr@S_IFDIR)rr4 perm_bitssts rcreate_with_permissionz'FakeFileOpenTest.create_with_permissions ###  i+++ w( ( 8i((B  " "9bj 9 9 9 OOBJ5 6 6 6   RZ$,6 7 7 7 7 7  8 8rc||d}||d||d||d||d|t 5||dddddS#1swxYwYdS)N target_fileirr.rINV)check_posix_onlyr/rrcloser ValueErrorr3s rtest_open_flags700z#FakeFileOpenTest.test_open_flags700s' NN=11  ##Iu555 )S!!''))) )S!!''))) )T""((***   z * * ( ( IIi ' ' ' ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (sC66C:=C:c0||d}||d||dt sP|tj|j|d|tj|j|ddS||d||ddS)Nrrr.r) rr/rrrrr0r1rr3s rtest_open_flags400z#FakeFileOpenTest.test_open_flags400s NN=11  ##Iu555 )S!!'')))yy /  ' ' diC P P P  ' ' diD Q Q Q Q Q IIi % % + + - - - IIi & & , , . . . . .rc||d}||d||dt s|t5||ddddn #1swxYwY|t5||dddddS#1swxYwYdS||d||ddS)Nrr.rr)rr/rrrrrOSErrorr3s rtest_open_flags200z#FakeFileOpenTest.test_open_flags200s NN=11  ##Iu555 )S!!'')))yy /""7++ * * )S))) * * * * * * * * * * * * * * *""7++ + + )T*** + + + + + + + + + + + + + + + + + + IIi % % + + - - - IIi & & , , . . . . .s$B33B7:B7C<<DDcF||d}||dts|t 5||ddddn #1swxYwY|t 5||ddddn #1swxYwY|t 5||dddddS#1swxYwYdS||d||d||ddS)Nr@rr.r)rr/rrrrrrr3s rtest_open_flags100z#FakeFileOpenTest.test_open_flags100s5 NN=11  ##Iu555yy /""7++ * * )S))) * * * * * * * * * * * * * * *""7++ * * )S))) * * * * * * * * * * * * * * *""7++ + + )T*** + + + + + + + + + + + + + + + + + + IIi % % + + - - - IIi % % + + - - - IIi & & , , . . . . .s6(B  BB0CCC8DD #D c||ddd}|d}d}|||||||||j|||d}|}| | ||dS)Nr,rbaztarJAYreal baz contentsrhr) rr/ricreate_symlinkassert_equal_pathsr;readlinkrrOrrPr link_pathtargettarget_contentsfh got_contentss rtest_follow_link_readz&FakeFileOpenTest.test_follow_link_reads **,,,NN5%77 ))- /::: Iv... (8(8(C(CDDD YYy# & &wwyy    ,77777rcP||ddd}|d}d}|||||jj|||d5}||dddn #1swxYwY||d5}| }dddn #1swxYwY| ||dS)Nr,rTBDrrr.r) rr/rr@r;rFr?rrLrOrPr s rtest_follow_link_writez'FakeFileOpenTest.test_follow_link_writes **,,,NN5%77 ))- Iv... ,,V44555 YYy# & & &" HH_ % % % & & & & & & & & & & & & & & & YYvs # # %r7799L % % % % % % % % % % % % % % % ,77777s$!CC C$DD  D c||jj|jddddd}|ddd}||dd||jj|jddd|d||jj |||jj |d}| |d5}| |dddn #1swxYwY| |d 5}| }dddn #1swxYwY| ||dS) Nr,build local_machineoutput1tmprr.r)rr;rFrjrr/ create_dirrr@r?rrLrOrPr s r!test_follow_intra_path_link_writez2FakeFileOpenTest.test_follow_intra_path_link_writes **,,,GL%% NE7OXs  x55 uh77888  GL  dneWo N N NN5 ! !   ,,Y77888 ,,V44555- YYy# & & &" HH_ % % % & & & & & & & & & & & & & & & YYvs # # %r7799L % % % % % % % % % % % % % % % ,77777s$E**E.1E. F,,F03F0cN||d}|j||jj|d}|j|||tj |j |dS)Nr,r) rr/r;r<rFrjsymlinkr0r1ELOOPrrAs r test_open_raises_on_symlink_loopz1FakeFileOpenTest.test_open_raises_on_symlink_loop s >>%((  hGL%%h66   9--- ##EKIFFFFFrc|d}||d|d}||d|d}||d||5}||5}||5}|}||||||dddn #1swxYwYdddn #1swxYwYddddS#1swxYwYdS)N some_file1contents here1rh some_file2contents here2 some_file3contents here3r/rirfileno assertGreater)r first_path second_path third_path fake_file1 fake_file2 fake_file3fileno2s r)test_file_descriptors_for_different_filesz:FakeFileOpenTest.test_file_descriptors_for_different_filessF^^L11  .>???nn\22  /?@@@^^L11  .>??? YYz " " Ej;'' E:YYz**Ej(//11G&&w 0A0A0C0CDDD&&z'8'8':':GDDDEEEEEEEEEEEEEEE E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E Es[E&0EA%D7+ E7D; ;E>D; ?E E&E E&E E&&E*-E*c|d}||d|d}||d||5}||5}||5}|}||||||dddn #1swxYwYdddn #1swxYwYddddS#1swxYwYdS)Nr"r#rhr$r%r()rr+r,r.r/ fake_file1ar1s r5test_file_descriptors_for_the_same_file_are_differentzFFakeFileOpenTest.test_file_descriptors_for_the_same_file_are_different%s^^L11  .>???nn\22  /?@@@ YYz " " Fj;'' F:YYz**Fk(//11G&&w 0A0A0C0CDDD&&{'9'9';';WEEEFFFFFFFFFFFFFFF F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F Fs[.D:D"A%D ? D" D D"D D" D:"D& &D:)D& *D::D>D>c|d}||d|d}||d|d}||d||d5}||d5}||d}||d}|}|} |} |} dddn #1swxYwYdddn #1swxYwY||d5}||d5} ||||| | || ||| |dddn #1swxYwYdddn #1swxYwY||dS) Nr"r#rhr$r%r&r'r)r/rirr)rPr) rr+r,r-r.r/r0r4fileno1r1fileno3fileno4 fake_file1bs r1test_reused_file_descriptors_do_not_affect_otherszBFakeFileOpenTest.test_reused_file_descriptors_do_not_affect_others1s[^^L11  .>???nn\22  /?@@@^^L11  .>??? YYz3 ' ' /:;,, / !YYz377 "ii C88 $++--$++--$++--%,,..  / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /YY{C ( ( @J:s++ @{  **;*;*=*=>>>  +*<*<*>*>???  **;*;*=*=>>>  +*<*<*>*>???  @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ snE2A=D;/ E;D? ?ED? EEE3I B!H7+ I7H; ;I>H; ?IIIc|d}||||d5}||d5}gd}g}|D]f}||||||g|||gd}g}|D]>}||||?|d|D|dddn #1swxYwYddddS#1swxYwYdS)N some_filerr)hellozworld zsomewhere overzthe rainbow)nothingzto seeherecg|]}dSrgrr_s rrz@FakeFileOpenTest.test_intertwined_read_write..g!5!5!5"!5!5!5rr/rirrLflushrrOrPrr4writerreaderwritesreadsrLs rtest_intertwined_read_writez,FakeFileOpenTest.test_intertwined_read_writeKsNN;//  ### YYy# & & >&9c** >f###ELL'''LLNNNLL///LLNNNN  ///777$00ELL'''LL////  !5!5f!5!5!5u===/ > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >s7E)C-E E)E E)E E))E-0E-c|d}||||dd5}||dd5}gd}g}|D]f}||||||g|||ddg}g}|D]>}||||?|d |D|dddn #1swxYwYddddS#1swxYwYdS) Nr=rrXrYr)u приветuмир uгде-то заuрадугойu ничегоuне видноcg|]}dSrCrrDs rrzLFakeFileOpenTest.test_intertwined_read_write_python3_str..rFrrGrIs r'test_intertwined_read_write_python3_strz8FakeFileOpenTest.test_intertwined_read_write_python3_strisNN;//  ### YYy#Y 8 8 >F9cG<< >\\\###ELL'''LLNNNLL///LLNNNN  ///(*<=$00ELL'''LL////  !5!5f!5!5!5u===# > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >s7E-C-E E-E E-E E--E14E1cPdd5}t5|dddn #1swxYwYt5|dddn #1swxYwYdddn #1swxYwYd5}t5|dddn #1swxYwYt5|dddn #1swxYwYdddn #1swxYwYd5}t5|dddn #1swxYwYt5|ddddn #1swxYwYt5| ddgdddn #1swxYwYdddn #1swxYwYfd}t5|ddddn #1swxYwYt5|dddddS#1swxYwYdS) Nr=rr.rrScontentscr|5}|D]} ddddS#1swxYwYdSr )r)moderRrEr4rs r_iterator_openz._iterator_opens9d++ qA                  s ,00) r/rirrrrOrktruncaterLr)rrrWr4s` @rtest_open_io_errorsz$FakeFileOpenTest.test_open_io_errorssNN;//  ### YYy# & & """7++                  ""7++                                  YYy# & & """7++                  ""7++                                  YYy# & & 0"""7++                  ""7++ % %$$$ % % % % % % % % % % % % % % %""7++ 0 0 ug./// 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0         w ' '  N3                    w ' '  N3                     sVCA?3 C?B CB C$C9 CC C C CC #C =FD9- F9D= =FD= FE?3 F?F FF FFF7JG3' J3G7 7J:G7 ;JH:. J:H> >JH> JJ7 JJ J J JJ!J KK!$K! LL"Lc||d}|||jj|d}|tj|j |ddSNrrr.) rr/rir;rFrjr0r1ENOTDIRrr3s r1test_open_raises_io_error_if_parent_is_file_posixzBFakeFileOpenTest.test_open_raises_io_error_if_parent_is_file_posixsv NN5))  ###GL%%i77  ##EM49iMMMMMrc||d}|||jj|d}|tj|j |ddSr[) check_windows_onlyr/rir;rFrjr0r1r2rr3s r3test_open_raises_io_error_if_parent_is_file_windowszDFakeFileOpenTest.test_open_raises_io_error_if_parent_is_file_windowssv !!!NN5))  ###GL%%i77  ##EL$)YLLLLLrc|d|jjjz}|||j|ddSNr,r.)r/r;rFsepr0r)rerror_nrrFs rcheck_open_with_trailing_sepz-FakeFileOpenTest.check_open_with_trailing_sepsA~~e$$tw|'77 ##HdisCCCCCrcl||tjdSr )check_linux_onlyrer1rrs r!test_open_with_trailing_sep_linuxz2FakeFileOpenTest.test_open_with_trailing_sep_linux0  ))%,77777rcl||tjdSr )rrer1r2rs r!test_open_with_trailing_sep_macosz2FakeFileOpenTest.test_open_with_trailing_sep_macosrircl||tjdSr )r_rer1EINVALrs r#test_open_with_trailing_sep_windowsz4FakeFileOpenTest.test_open_with_trailing_sep_windowss0 !!! ))%,77777rcD|d}|j|tjt jz||d5}|d| ddddS#1swxYwYdS)Ndevicerrg) r:rrirS_IFBLKrPERM_ALLrrPrO)r device_pathrs rtest_can_read_from_block_devicez0FakeFileOpenTest.test_can_read_from_block_devices   ##K@P1PQQQ YY{C ( ( ,B   R + + + , , , , , , , , , , , , , , , , , ,s)BBBcp|d}||||d5}|d||d|jj|ddddS#1swxYwYdSNrr.test) r/rirrLrXrPr;rFgetsizerr4f0s rtest_truncate_flushes_contentsz/FakeFileOpenTest.test_truncate_flushes_contentssNN5))  ### YYy# & & A" HHV    KKMMM   Q 4 4Y ? ? @ @ @ A A A A A A A A A A A A A A A A A AsAB++B/2B/c|d}||d5}||d5}|d|||d|jj|dddn #1swxYwYddddS#1swxYwYdSrv) r/rrLrXrHrPr;rFryrr4r{f1s r1test_update_other_instances_of_same_file_on_flushzBFakeFileOpenTest.test_update_other_instances_of_same_file_on_flushseNN5)) YYy# & & E"9c** Eb       DGL$8$8$C$CDDD  E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E Es6CA1C4 CC CC CCCc(|d}||d5}|d|d||d||d|jj||d|j |j ddddS#1swxYwYdS)Nr,rrbrr) r/rrLrrXrPr;rFryrst_sizerr4rRs rtest_getsize_after_truncatez,FakeFileOpenTest.test_getsize_after_truncates1NN5)) YYy# & & A! GGCLLL FF1III JJLLL GGCLLL JJLLL   Q 4 4Y ? ? @ @ @   Q Y 7 7 ? @ @ @ A A A A A A A A A A A A A A A A A AsCDD D c|d}||d5}|d||d||d|j|jddddS#1swxYwYdS)Nr,rr)r/rrLrXrPr;rrrs rtest_st_size_after_truncatez,FakeFileOpenTest.test_st_size_after_truncatesNN5)) YYy# & & A! GGCLLL JJLLL GGCLLL JJLLL   Q Y 7 7 ? @ @ @  A A A A A A A A A A A A A A A A A AsBB??CCcX|d}||||5}|d||d|ddddS#1swxYwYdS)Nrr)r/rirrrOrPrrzs r/test_that_read_over_end_does_not_reset_positionz@FakeFileOpenTest.test_that_read_over_end_does_not_reset_positionsNN5))  ### YYy ! ! +R GGAJJJ GGIII   Q * * * + + + + + + + + + + + + + + + + + +sABB#&B#c|jrtjd|d}||d||d}||t5| ddddn #1swxYwY|t5| ddddn #1swxYwY|t5| dddn #1swxYwY|t5| dddn #1swxYwY|t5| dddn #1swxYwY|t5|ddddn #1swxYwY|t5|ddddS#1swxYwYdS)NDifferent exceptions with PyPyr,testrhrrrr)is_pypyunittestSkipTestr/rirrrrrOrLrrXrrrHrs r!test_accessing_closed_file_raisesz2FakeFileOpenTest.test_accessing_closed_file_raisess < F#$DEE ENN5))  W555IIi--    z * *   NN1                     z * * ! ! OOC  ! ! ! ! ! ! ! ! ! ! ! ! ! ! !   z * * ! !     ! ! ! ! ! ! ! ! ! ! ! ! ! ! !   z * * ! !     ! ! ! ! ! ! ! ! ! ! ! ! ! ! !   z * *   NN                     z * *   NN1                     z * *   OO                     s~ B..B25B2C55C9<C9D;;D?D? FFF&GG G ,HHH3IIIc|jrtjd|d}|j|tjtjztjz}||d}| | t5| ddddn #1swxYwY| t5| ddddn #1swxYwY|j |dS)Nrr,rrrr)rrrr/r;rO_CREATO_WRONLYO_TRUNCrrrrOrL)rr4r{rls r3test_accessing_open_file_with_another_handle_raiseszDFakeFileOpenTest.test_accessing_open_file_with_another_handle_raisess < F#$DEE ENN5)) W\\)RZ"+%= %J K KIIi--    z * *   NN1                     z * * ! ! OOC  ! ! ! ! ! ! ! ! ! ! ! ! ! ! !  bs$4CCC;DD!$D!c||d}||d5}|d|d||d|jj|ddddS#1swxYwYdSNr,r.rwrx) rr/rrLrPrr;rFryrzs rtest_tell_flushes_under_mac_osz/FakeFileOpenTest.test_tell_flushes_under_mac_oss NN5)) YYy# & & A" HHV      Q * * *   Q 4 4Y ? ? @ @ @ A A A A A A A A A A A A A A A A A AA1B>>CCc||d}||d5}|d|d||d|jj|ddddS#1swxYwYdSr) rr/rrLrPrr;rFryrzs rtest_tell_flushes_in_python3z-FakeFileOpenTest.test_tell_flushes_in_python3's $$&&&NN5)) YYy# & & A" HHV      Q * * *   Q 4 4Y ? ? @ @ @ A A A A A A A A A A A A A A A A A Arc||d}||d5}|d|d||d|jj|ddddS#1swxYwYdS)Nr,rrwrgrx) rr/rrLrPrOr;rFryrzs rtest_read_flushes_under_posixz.FakeFileOpenTest.test_read_flushes_under_posix0s NN5)) YYy$ ' ' A2 HHV      R + + +   Q 4 4Y ? ? @ @ @ A A A A A A A A A A A A A A A A A Arcn||d}||d5}|d||d|jj|ddddS#1swxYwYdS)Nr,rrwrx) r_r/rrLrOrPr;rFryrzs r*test_read_flushes_under_windows_in_python3z;FakeFileOpenTest.test_read_flushes_under_windows_in_python39s !!!NN5)) YYy$ ' ' A2 HHV    GGIII   Q 4 4Y ? ? @ @ @ A A A A A A A A A A A A A A A A A AsAB**B.1B.c|d}||d5}|d|d|jj||d|d|jj|ddddS#1swxYwYdS)Nr,r.rwrrx)r/rrLrPr;rFryrrzs rtest_seek_flushesz"FakeFileOpenTest.test_seek_flushesBs NN5)) YYy# & & A" HHV      Q 4 4Y ? ? @ @ @ GGAJJJ   Q 4 4Y ? ? @ @ @  A A A A A A A A A A A A A A A A A AsBC  CCc|d}||d5}|d|d|jj|||d|jj|ddddS#1swxYwYdS)Nr,rrwrrx)r/rrLrPr;rFryrXrzs rtest_truncate_flushesz&FakeFileOpenTest.test_truncate_flushesKs NN5)) YYy# & & A" HHV      Q 4 4Y ? ? @ @ @ KKMMM   Q 4 4Y ? ? @ @ @  A A A A A A A A A A A A A A A A A AsBC  C C c|d}|||5}|d||d||d|jj||d|d|jj|dddn #1swxYwY|d|jj|dS)Nrrr) r/rrrXrPrr;rFry)rrVr4r{s r)check_seek_outside_and_truncate_sets_sizez:FakeFileOpenTest.check_seek_outside_and_truncate_sets_sizeTsRNN5)) YYy$ ' ' A2 GGAJJJ KKMMM   Q * * *   Q 4 4Y ? ? @ @ @ GGAJJJ   Q 4 4Y ? ? @ @ @  A A A A A A A A A A A A A A A DGL00;;<<<<rs r test_closedzFakeFileOpenTest.test_closedhsNN5)) IIi % % """   !!! IIi  """   !!!!!rcX|d}||d}|||5}||d|ddddS#1swxYwYdS)Nrr.rg)r/rrrPrOr~s r%test_closing_closed_file_does_nothingz6FakeFileOpenTest.test_closing_closed_file_does_nothingssNN5)) YYy# & &  YYy ! ! ,R HHJJJ   R + + + , , , , , , , , , , , , , , , , , ,s=BB#&B#cb||d}|j|tjtjz}|j|}||dd5}|ddddn #1swxYwY| |j ||j || |j |dS)Nztest.txtrWFclosefdr) r:r/r;rrO_RDWRr get_objectrLr> has_open_filerr@)rfilenamefdfile_objfps r+test_closing_file_with_different_close_modez>*-- W\\(BJ$: ; ;?--h77 YYr4Y / / 2 HHW                   55h??@@@  b 66x@@AAAAAsB00B47B4c|d}||d5}||5}|d||d|dddn #1swxYwYddddS#1swxYwYdS)Nrr.rr)r/rrrXrPrOr~s rtest_truncate_flushes_zerosz,FakeFileOpenTest.test_truncate_flushes_zeross&NN5)) YYy# & & 2"9%% 2    rwwyy111 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2s6B8AB  B8 B$ $B8'B$ (B88B<?B<cd|d}||d5}|ddddn #1swxYwY||d5}|d|ddddS#1swxYwYdS)NrrWr_r/rrLrPrOrs rtest_byte_filenamez#FakeFileOpenTest.test_byte_filenamesNN7++ YYy$ ' ' 1 GGG                   YYy$ ' ' 01   Waffhh / / / 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0#AAA/)B%%B),B)cd|d}||d5}|ddddn #1swxYwY||d5}|d|ddddS#1swxYwYdS)NuтестrWrr_rrs rtest_unicode_filenamez&FakeFileOpenTest.test_unicode_filenamesNN:.. YYy$ ' ' 1 GGG                   YYy$ ' ' 01   Waffhh / / / 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0rchdD]}||jj|5}|ddddn #1swxYwY||jj5}|d|dddn #1swxYwYdS)N)rr.rrrrwrg)rr;devnullrLrPrO)rrVrRs rtest_write_devnullz#FakeFileOpenTest.test_write_devnulls0 / /D47?D11 Q               47?++ /q  QVVXX... / / / / / / / / / / / / / / / / /s#AA A 1)B&&B* -B* c|d}||dd5}|ddksJ dddn #1swxYwY||dd5}|ddksJ dddn #1swxYwY||d d5}|}|d ksJ ddddS#1swxYwYdS) Nr,r.zutf-16rYrrrr2r12)r/rrLrO)rr4rRtexts rtest_utf16_textz FakeFileOpenTest.test_utf16_textsNN5)) YYy#Y 9 9 %Q773<<1$$$$$ % % % % % % % % % % % % % % %YYy#Y 9 9 %Q773<<1$$$$$ % % % % % % % % % % % % % % %YYy#Y 9 9 Q6688D4<<<<<                  s5AAA:B##B'*B'C11C58C5)Qrr r!rr*r5rCrGrIrTr]rcrmr}rrrrrrrrrrrrrrrrrrrrrrrrrrrrr r2r5r;rNrQrYr]r`rerhrkrnrtr|rrrrrrrrrrrrrrrrrrrrrrrr"r#s@rr%r%/s##########MMM <<<888 9 9 9333" C C C     > > >???& 6 6 6 + + ++++   +++ +++ NNN999999 / / / + + + > > > 3 3 3TTT0KKK&'''''' C C C333 D D D888 ( ( ( / / //// ///$ 8 8 8 8 8 8888.GGG E E E F F F4>>><>>>0   @NNNMMMDDD 888888888,,,AAAEEE A A AAAA+++.   AAAAAAAAAAAAAAAAAA = = =<<<<<< " " ",,, B B B222000000///        rr%ceZdZdZdS)RealFileOpenTestcdSNTrrs rrzRealFileOpenTest.use_real_fstrNrr r!rrrrrr#rrcDeZdZdZdZdZdZdZdZdZ dZ d Z d S) FakeFileOpenWithOpenerTestc8|j||Sr )r;r)rrFflagss rryz!FakeFileOpenWithOpenerTest.openersw||D%(((rc|d}||d|||j5}|dksJ|t 5|ddddn #1swxYwYddddS#1swxYwYdS)Nr,rwrhry)r/rirryrOrrrLrs rtest_use_opener_with_readz4FakeFileOpenWithOpenerTest.test_use_opener_with_reads6NN5))  V444 YYyY 5 5 6688v%%%%""7++                                   s6 5B8>B  B8 B$ $B8'B$ (B88B<?B<c|d}||d||d|j5}|dksJ|ddksJ dddn #1swxYwY||5}|dksJ ddddS#1swxYwYdS) Nr,rwrhrrrrtestbarr/rirryrOrLrs rtest_use_opener_with_read_plusz9FakeFileOpenWithOpenerTest.test_use_opener_with_read_pluss`NN5))  V444 YYy$t{Y ; ; 'q6688v%%%%775>>Q&&&&& ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'YYy ! ! )Q6688y((((( ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )$ 6B  BB-CCCc|d}||d||d|j5}|t 5|dddn #1swxYwY|ddksJ dddn #1swxYwY||5}|dksJ ddddS#1swxYwYdS)Nr,rhr.rrr)r/rirryrrrOrLrs rtest_use_opener_with_writez5FakeFileOpenWithOpenerTest.test_use_opener_with_writesNN5))  U333 YYy#dkY : : 'a""7++                 775>>Q&&&&& ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'YYy ! ! %Q6688u$$$$$ % % % % % % % % % % % % % % % % % %sH B9%B: B9B B9 B B99B=B=DD Dc|d}||d||d|j5}|dksJ|ddksJ dddn #1swxYwY||5}|dksJ ddddS#1swxYwYdS) Nr,rwrhrrrgrrrrs rtest_use_opener_with_write_plusz:FakeFileOpenWithOpenerTest.test_use_opener_with_write_pluss\NN5))  V444 YYy$t{Y ; ; 'q6688r>>>>775>>Q&&&&& ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'YYy ! ! %Q6688u$$$$$ % % % % % % % % % % % % % % % % % %rc|d}||d||d|j5}|ddksJ|t 5|dddn #1swxYwYdddn #1swxYwY||5}|dksJ ddddS#1swxYwYdS)Nr,rhrrrrfoobar)r/rirryrLrrrOrs rtest_use_opener_with_appendz6FakeFileOpenWithOpenerTest.test_use_opener_with_appendsNN5))  U333 YYy#dkY : : a775>>Q&&&&""7++                                YYy ! ! (Q6688x''''' ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (sH 6B8B! B8!B% %B8(B% )B88B<?B<DDDc|d}||d||d|j5}|dksJ|ddksJ dddn #1swxYwY||5}|dksJ ddddS#1swxYwYdS) Nr,rhrrrgrrrrrs r test_use_opener_with_append_plusz;FakeFileOpenWithOpenerTest.test_use_opener_with_append_pluss\NN5))  U333 YYy$t{Y ; ; 'q6688r>>>>775>>Q&&&&& ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'YYy ! ! (Q6688x''''' ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (rc|d}||d|t5||d|jdddn #1swxYwY|d}||d|j5}|ddksJ|t5|dddn #1swxYwYdddn #1swxYwY||5}|dksJ ddddS#1swxYwYdS)Nr,rwrhrrrrr/rirrrryrLrOrs r$test_use_opener_with_exclusive_writez?FakeFileOpenWithOpenerTest.test_use_opener_with_exclusive_writesPNN5))  V444   w ' ' : : IIiT[I 9 9 9 : : : : : : : : : : : : : : :NN5)) YYy#dkY : : a775>>Q&&&&""7++                                YYy ! ! %Q6688u$$$$$ % % % % % % % % % % % % % % % % % %sZA11A58A5.6D$D9 DD D D DD #D <E%%E),E)c|d}||d|t5||d|jdddn #1swxYwY|d}||d|j5}|ddksJ|dksJ dddn #1swxYwY||5}|dksJ ddddS#1swxYwYdS) Nr,rwrhzx+rrrrgrrs r#test_use_opener_with_exclusive_plusz>FakeFileOpenWithOpenerTest.test_use_opener_with_exclusive_plussNN5))  V444   w ' ' ; ; IIidkI : : : ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;NN5)) YYy$t{Y ; ; "q775>>Q&&&&6688r>>>>> " " " " " " " " " " " " " " "YYy ! ! %Q6688u$$$$$ % % % % % % % % % % % % % % % % % %s6A11A58A5.6C11C58C5D::D>D>N) rr r!ryrrrrrrrrrrrrrs))))))%%%%%%(((((( % % % % % % % %rrceZdZdZdS)RealFileOpenWithOpenerTestcdSrrrs rrz&RealFileOpenWithOpenerTest.use_real_fsrrNrrrrrrrrr)rz'open_code only present since Python 3.8ceZdZfdZfdZejeddZeje ddZ dZ dZ xZ S)FakeFilePatchedOpenCodeTestctt||rtj|_dSt j|j_ |j j|_dSr ) rrrrr open_coderONrpatch_open_coderrs rrz!FakeFilePatchedOpenCodeTest.setUps^ )40066888      ;\DNNN.7lDO +!0:DNNNrc|s d|j_tt|dS)NF)rrrrrr*rs rr*z$FakeFilePatchedOpenCodeTest.tearDownsD!! 4.3DO + )40099;;;;;rDifferent behavior in PyPyc|t5|dddddS#1swxYwYdSNrxr TypeErrorrrs rtest_invalid_pathz-FakeFilePatchedOpenCodeTest.test_invalid_path$   y ) )   NN1                     >AAc:|d}||d|j|tj}||5}|dksJ ddddS#1swxYwYdS)Nr,rwrhr)r/rir;rO_RDONLYrrO)rr4rrRs rtest_open_code_fd_pypyz2FakeFilePatchedOpenCodeTest.test_open_code_fd_pypy)sNN5))  V444 W\\)R[ 1 1 ^^B   '16688w&&&&& ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's'BBBcd}|d}|||||5}|}dddn #1swxYwY|||dSNrVr,rhr/rirrOrPrr\r4rRrSs rtest_byte_contents_open_codez8FakeFilePatchedOpenCodeTest.test_byte_contents_open_code1ONN5))  ^<<< ^^I & & !vvxxH                >22222A%%A),A)c|t}|t5||ddddS#1swxYwYdSr )r:__file__rrrr3s rtest_open_code_in_real_fsz5FakeFilePatchedOpenCodeTest.test_open_code_in_real_fs9s    w ' ' & & NN9 % % % & & & & & & & & & & & & & & & & & &sAA A) rr r!rr*rskipIfrrrr rr"r#s@rrrs;;;;;<<<<< X_W:;;<;X_[">??''@?'333&&&&&&&rrceZdZdZdS)RealPatchedFileOpenCodeTestcdSrrrs rrz'RealPatchedFileOpenCodeTest.use_real_fsArrNrrrrrr@rrrcXeZdZfdZejeddZdZxZ S)FakeFileUnpatchedOpenCodeTestctt||rtj|_dS|jj|_dSr )rrrrrrrrs rrz#FakeFileUnpatchedOpenCodeTest.setUpGsR +T2288:::      ;\DNNN!0:DNNNrrc|t5|dddddS#1swxYwYdSrrrs rrz/FakeFileUnpatchedOpenCodeTest.test_invalid_pathNrrct}||5}|}dddn #1swxYwY|t |dkdS)Nd)rrrOr>r)rr4rRrSs rrz7FakeFileUnpatchedOpenCodeTest.test_open_code_in_real_fsSs ^^I & & !vvxxH                H +,,,,,s>AA) rr r!rrrrrrr"r#s@rrrEsr;;;;;X_W:;;<;-------rrceZdZdZdZdS)RealUnpatchedFileOpenCodeTestcdSrrrs rrz)RealUnpatchedFileOpenCodeTest.use_real_fs\rrcd}|d}|||||5}|}dddn #1swxYwY|||dSrr r s rr z:RealUnpatchedFileOpenCodeTest.test_byte_contents_open_code_r r N)rr r!rr rrrrr[s233333rrcVeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd S)BufferingModeTestcl|d}||dd5}|d||d5}|}|d|dddn #1swxYwYddddS#1swxYwYdS)Nbuffertest.binrWrrssaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar_r/rrLrOrPrr4rRrrs rtest_no_bufferingz#BufferingModeTest.test_no_bufferingis(NN#344 YYy$!Y 4 4 0 GGJ   9d++ 0qFFHH  Q/// 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s5,B)+B B)B B)B B))B-0B-c|d}|t5||ddddddS#1swxYwYdS)Nbuffertest.txtr.rrs)r/rrrr3s r)test_no_buffering_not_allowed_in_textmodez;BufferingModeTest.test_no_buffering_not_allowed_in_textmodeqsNN#344   z * * 3 3 IIiI 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3sAAAc|d}||d5}|d||d5}|}|d|dddn #1swxYwYdddn #1swxYwY||d5}|}|d|ddddS#1swxYwYdS)Nr"rWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar_rr#r$s rtest_default_buffering_no_flushz1BufferingModeTest.test_default_buffering_no_flushvsNN#344 YYy$ ' ' )1 GGK 9d++ )qFFHH  a((( ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) YYy$ ' ' -1A   [! , , , - - - - - - - - - - - - - - - - - -sG,B&+B B&B B&B B&&B*-B*+C??DDc|d}||d5}|d|||d5}|}|d|dddn #1swxYwYddddS#1swxYwYdS)Nr"rWr*r_)r/rrLrHrOrPr$s rtest_default_buffering_flushz.BufferingModeTest.test_default_buffering_flushs1NN#344 YYy$ ' ' 11 GGK GGIII9d++ 1qFFHH  a000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s6AB;,+B# B;#B' 'B;*B' +B;;B?B?cV|d}||dd5}|d||d5}|}|dt |dddn #1swxYwY|d||d5}|}|d t |dddn #1swxYwY|d ||d5}|}|d t |dddn #1swxYwY|d ||d5}|}|d t |dddn #1swxYwY|d ||d5}|}|d t |dddn #1swxYwYddddS#1swxYwYdS)Nr"rWrsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar_raaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaair/rrLrOrPrr$s r!test_writing_with_specific_bufferz3BufferingModeTest.test_writing_with_specific_buffersNN#344 YYy$#Y 6 6 /! GGJ   9d++ ,qFFHH  CFF+++ , , , , , , , , , , , , , , , GGJ   9d++ .qFFHH  c!ff--- . . . . . . . . . . . . . . . GGJ   9d++ .qFFHH  c!ff--- . . . . . . . . . . . . . . . GGJ   9d++ /qFFHH  s1vv...  / / / / / / / / / / / / / / / GGJ   9d++ /qFFHH  s1vv... / / / / / / / / / / / / / / // / / / / / / / / / / / / / / / / / /s,J8B JB" "J%B" &.J8D JD JD .J8F JF JF .J8H  J H JH .J8J: JJ J J JJ"%J"cb|d}||dd5}|d||d5}|}|dt |dddn #1swxYwY|d||d5}|}|d t |dddn #1swxYwY|d ||d5}|}|d t |dddn #1swxYwY|d||d5}|}|d t |dddn #1swxYwYddddS#1swxYwYdS) Nr"r.rrrstesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttestrr testi(testtesttesttesttesttesttesttesttesttestir6r$s r"test_writing_text_with_line_bufferz4BufferingModeTest.test_writing_text_with_line_buffersNN#344 YYy#Y 3 3 .q GGL ! ! !9c** ,aFFHH  CFF+++ , , , , , , , , , , , , , , , GGH   9c** .aFFHH  c!ff--- . . . . . . . . . . . . . . . GGK 9c** .aFFHH  c!ff--- . . . . . . . . . . . . . . . GGH   9c** .aFFHH  c!ff--- . . . . . . . . . . . . . . .# . . . . . . . . . . . . . . . . . .s,H$8B H$B" "H$%B" &.H$8D H$D H$D .H$8F H$F H$F .H$8H  H$ H H$H H$$H(+H(ch|d}||dd5}|ddz||d5}|}|dt |dddn #1swxYwY|d||d5}|}|dt |dddn #1swxYwY|d ||d5}|}|d t |dddn #1swxYwY|d ||d5}|}|d t |dddn #1swxYwYddddS#1swxYwYdS) Nr"r.rrrsrwiri>r:i>i>r6r$s r(test_writing_large_text_with_line_bufferz:BufferingModeTest.test_writing_large_text_with_line_buffersNN#344 YYy#Y 3 3 0q GGFTM " " "9c** 0aFFHH  A/// 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 GGFOOO9c** 0aFFHH  A/// 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 GGH   9c** 0aFFHH  A/// 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 GGH   9c** 0aFFHH  A/// 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0/H'8B! H'!B% %H'(B% ).H'8D H'D H'"D #.H'8F H'F H'F .H' 8H H'H H'H H''H+.H+c^|d}||d5}|d||d5}|}|dt |dddn #1swxYwY|d||d5}|}|dt |dddn #1swxYwY|d||d5}|}|dt |dddn #1swxYwY|d||d5}|}|dt |dddn #1swxYwYddddS#1swxYwYdS)Nr'r.testtesttesttesttestrrr:r;r6r$s r%test_writing_text_with_default_bufferz7BufferingModeTest.test_writing_text_with_default_buffersNN#344 YYy# & & ,! GGJ   9c** ,aFFHH  CFF+++ , , , , , , , , , , , , , , , GGH   9c** ,aFFHH  CFF+++ , , , , , , , , , , , , , , , GGK 9c** ,aFFHH  CFF+++ , , , , , , , , , , , , , , , GGH   9c** ,aFFHH  CFF+++ , , , , , , , , , , , , , , ,# , , , , , , , , , , , , , , , , , ,s,H"8B H"B H"#B $.H"8D H"D H"D .H" 8F H"F H"F .H"8H > H" H H"H H""H&)H&ch|d}||dd5}|ddz||d5}|}|dt |dddn #1swxYwY|d ||d5}|}|dt |dddn #1swxYwY|d ||d5}|}|dt |dddn #1swxYwY|d ||d5}|}|dt |dddn #1swxYwYddddS#1swxYwYdS) Nr'r.rrsri@rrrwr6r$s r&test_writing_text_with_specific_bufferz8BufferingModeTest.test_writing_text_with_specific_buffersNN#344 YYy#Y 3 3 ,q GGC$J   9c** ,aFFHH  CFF+++ , , , , , , , , , , , , , , , GGFOOO9c** ,aFFHH  CFF+++ , , , , , , , , , , , , , , , GGFOOO9c** ,aFFHH  CFF+++ , , , , , , , , , , , , , , , GGFOOO9c** ,aFFHH  CFF+++ , , , , , , , , , , , , , , ,# , , , , , , , , , , , , , , , , , ,r?c|d}||dd5}|ddddn #1swxYwY||dd5}|d||d5}|}|dt |dddn #1swxYwY|d ||d5}|}|d t |dddn #1swxYwY|d ||d5}|}|d t |dddn #1swxYwY|d ||d5}|}|d t |dddn #1swxYwY|d ||d5}|}|dt |dddn #1swxYwYddddS#1swxYwYdS)Nr"rWr/rsr0abr_r2r1r4r3ir5ir6r$s r test_append_with_specific_bufferz2BufferingModeTest.test_append_with_specific_buffer s8NN#344 YYy$#Y 6 6 ! GGJ                  YYy$#Y 6 6 /! GGJ   9d++ .qFFHH  c!ff--- . . . . . . . . . . . . . . . GGJ   9d++ /qFFHH  s1vv... / / / / / / / / / / / / / / / GGJ   9d++ /qFFHH  s1vv... / / / / / / / / / / / / / / / GGJ   9d++ /qFFHH  s1vv...  / / / / / / / / / / / / / / / GGJ   9d++ /qFFHH  s1vv... / / / / / / / / / / / / / / // / / / / / / / / / / / / / / / / / /sAAA3,K#8C# K##C' 'K#*C' +.K#8E K#E! !K#$E! %.K#8G K#G K#G .K# 8I K#I K#I .K#8K ? K# K K#K K##K'*K'c||jd|jd|jjdd}||d5}|d| ||d5}| }| | ddddn #1swxYwY| t5|d| dddn #1swxYwY||d5}| }| | ddddn #1swxYwY|dddddS#1swxYwYdS) Nrr,r-rW2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar_bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb2)r:rset_disk_usager;makedirsrFrjrrLrHrOr> startswithrrrXr$s r(test_failed_flush_does_not_truncate_filez:BufferingModeTest.test_failed_flush_does_not_truncate_file)s  &&s+++ GL%%eY77 YYy$ ' ' 1 GGI    GGIII9d++ 9qFFHH Y 7 7888 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9""7++   ###                9d++ 9qFFHH Y 7 7888 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 JJrNNN                  s?AG:?=D< G:D G:D G:-*E# G:#E' 'G:*E' +G:=G  G: G G:G G::G>G>cP||jd|jd|jjdd}||dd5}|d||d5}| }| d|dddn #1swxYwY| t5|d dddn #1swxYwY||d5}| }| d|dddn #1swxYwYddddS#1swxYwYdS) Nrr,r-rWrrsrIr_rJ) r:rrLr;rMrFrjrrLrOrPrrr$s r(test_failed_write_does_not_truncate_filez:BufferingModeTest.test_failed_write_does_not_truncate_file=ss  &&s+++ GL%%eY77 YYy$!Y 4 4 / GGI   9d++ /qFFHH  A... / / / / / / / / / / / / / / /""7++ $ $ ### $ $ $ $ $ $ $ $ $ $ $ $ $ $ $9d++ /qFFHH  A... / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /s~,F-+C$ F$C( (F+C( ,F D+ F+D/ /F2D/ 3F +F7 FF F F FF"FN)rr r!r%r(r+r-r7r<r>rBrDrGrOrQrrrr r hs000333 - - -111///<...00000,,,.,,,4///@(/////rr ceZdZdZdS)RealBufferingTestcdSrrrs rrzRealBufferingTest.use_real_fsPrrNrrrrrSrSOrrrSc^eZdZdZfdZdZdZdZdZdZ dZ d Z d Z d Z d ZxZS) OpenFileWithEncodingTestz]Tests that are similar to some open file tests above but using an explicit text encoding.ctt||d|_dSr)rrVrr/r4rs rrzOpenFileWithEncodingTest.setUpXs7 &--33555..rc~d}||jdd5}||dddn #1swxYwY||jd5}|}dddn #1swxYwY|||ddS)Nعلي باباr.arabicrYr_)rr4rLrOrPr[rrbrRrSs rrcz2OpenFileWithEncodingTest.test_write_str_read_bytes\s"( YYt~sXY > > "! GGL ! ! ! " " " " " " " " " " " " " " " YYt~t , , vvxxH                xx'@'@AAAAAs#AA A(B  B B cd}||jdd5}|t5||dddn #1swxYwYdddn #1swxYwY||jddd5}||dddn #1swxYwY||jdd5}|}dddn #1swxYwY|d |||jddd 5}||dddn #1swxYwY||jdd5}|}dddn #1swxYwY|d |dS) NrYr.cyrillicrYasciixmlcharrefreplacerZrwrz2علي بابا namereplacez\N{ARABIC LETTER AIN}\N{ARABIC LETTER LAM}\N{ARABIC LETTER YEH} \N{ARABIC LETTER BEH}\N{ARABIC LETTER ALEF}\N{ARABIC LETTER BEH}\N{ARABIC LETTER ALEF})rr4rrMrLrOrPr[s rtest_write_str_error_modesz3OpenFileWithEncodingTest.test_write_str_error_modesds=( YYt~sZY @ @ &A""#566 & & %%% & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &YY NC':M   "  GGL ! ! ! " " " " " " " " " " " " " " "YYt~sWY = = vvxxH                MxXXX YY NC'-   "  GGL ! ! ! " " " " " " " " " " " " " " "YYt~sWY = = vvxxH                 &       s|A4A A4A! !A4$A! %A44A8;A8B??CC'DD D E))E-0E-F22F69F6cd}||jdd5}||dddn #1swxYwY||jd5}|t5|dddn #1swxYwYdddn #1swxYwY||jdd5}|}dddn #1swxYwY|||||jdd5}|}dddn #1swxYwY|d |dS) NrYr.rZrYr^replacer`backslashreplacez\xd9\xe4\xea \xc8\xc7\xc8\xc7)rr4rLrUnicodeDecodeErrorrOassertNotEqualrPr[s rtest_read_str_error_modesz2OpenFileWithEncodingTest.test_read_str_error_modess( YYt~sXY > > "! GGL ! ! ! " " " " " " " " " " " " " " "YYt~Y 8 8 A""#566                                YYt~ Y J J avvxxH                L(333 YY NW5G   vvxxH                98DDDDDskAA A)B<B% B<%B) )B<,B) -B<<CC$DD  D E$$E(+E(c\d}||jdd5}||dddn #1swxYwY||jdd5}|}dddn #1swxYwY|||dS)NrYr.rZrYr)rr4rLrOrPr[s rtest_write_and_read_strz0OpenFileWithEncodingTest.test_write_and_read_strs( YYt~sXY > > "! GGL ! ! ! " " " " " " " " " " " " " " " YYt~sXY > > !vvxxH                x00000s#AA A*B  BBc`gd}||jdd5}|D]}||dz dddn #1swxYwY||jd5}d|D}dddn #1swxYwY|||dS)N)u:Allons enfants de la Patrie,Le jour de gloire est arrivé!zContre nous de la tyrannie,u!L’étendard sanglant est levé.rrXrYrvc6g|]}|Srrrs rrzIOpenFileWithEncodingTest.test_create_file_with_append..rr)rr4rLrPrrSrlrrs rrz5OpenFileWithEncodingTest.test_create_file_with_appendsI    YYt~sWY = = -  - -t ,,,, - - - - - - - - - - - - - - - -YYt~Y 8 8 ;I:: :::F ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 6*****s#A  AA4 B  BBcdg}||j|dd||jdd5}|ddD]}||dz dddn #1swxYwY||jd5}d |D}dddn #1swxYwY|||dS) Nu^Оригинальное содержаниеДополнительное содержаниеrr]rSrZrrYrrrvc6g|]}|Srrrs rrzFOpenFileWithEncodingTest.test_append_existing_file..rr)rir4rrLrPrms rrz2OpenFileWithEncodingTest.test_append_existing_filesk o  (1+ SSS YYt~sZY @ @ -I   - -t ,,,, - - - - - - - - - - - - - - - -YYt~ Y ; ; ;y:: :::F ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 6*****s$&A77A;>A; B77B;>B;c ||jdd||jdd5}|d|dddn #1swxYwY||jdd5}|d|d|d|ddddS#1swxYwYdS) N!старое содержаниеr]rorrYrновое содержаниеr)rir4rrPrOrLrr>rrls rrz-OpenFileWithEncodingTest.test_open_with_wpluss  N%HS]    YYt~sZY @ @ TI   @)..BRBR S S S T T T T T T T T T T T T T T TYYt~tjY A A QY OO= > > > NN1    OO=y~~?O?O P P P Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Qs$)A00A47A4AC88C<?C<cgd}ddg}||jd|d||jdd5}|t j5|d dddn #1swxYwY|t j5|dddn #1swxYwY| td|| | d | d | | |dddn #1swxYwY||jd5}| ||z|ddddS#1swxYwYdS) N)uКалинка, uкалинка, uкалинка моя, u'В саду ягода-малинка, uмалинка моя. rgr]rorrYr)rir4rjrrrrrOrrPrrrrrk)rrSrrls rrz3OpenFileWithEncodingTest.test_open_with_append_flagsYYYIKef  NRWWX%6%6    YYt~sZY @ @ 6I""2#:;; " "q!!! " " " " " " " " " " " " " " """2#:;; % %""$$$ % % % % % % % % % % % % % % %   S!2!233Y^^5E5E F F F NN1      Q  0 0 1 1 1  !4 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6YYt~ Y ; ; Ty   X(;;Y=P=P=R=R S S S T T T T T T T T T T T T T T T T T Tsm F6B FB FB "FC# F#C' 'F*C' +BFFF;,G44G8;G8cR||jdd||jdd}|||jdd5}|d||d|d ||d |d |ddddS#1swxYwYdS) Nrrr]rorrYrrs!ru@старое содержаниеновое содержание) rir4rrrPrrLrrOrts rtest_append_with_aplusz/OpenFileWithEncodingTest.test_append_with_aplussl  N%HS]    IIdncJIGG  YYt~tjY A A sY   R!1!1 2 2 2 OO= > > >   R!1!1 2 2 2 NN1      _ajaoaoaqaq r r r  s s s s s s s s s s s s s s s s s ss,B#DD #D c,||jdd||jdd}|||jdd5}|d||d|d|d|d |ddddS#1swxYwYdS) Nu,старое содержание здесьr]rorrYrru новое содержаниеu+новое содержание здесь)rir4rrrPrOrrLrts rrz-OpenFileWithEncodingTest.test_read_with_rpluss\  NC    IIdncJIGG  YYt~tjY A A ^Y   KY^^M]M] ^ ^ ^ NN1    OO> ? ? ? NN1      JINNL\L\ ] ] ]  ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^s,BD  D D )rr r!__doc__rrcrbrhrjrrrrryrr"r#s@rrVrVTs""/////BBB   8EEE&111 + + + + + + Q Q QTTT$ s s s^^^^^^^rrVceZdZdZdS)OpenRealFileWithEncodingTestcdSrrrs rrz(OpenRealFileWithEncodingTest.use_real_fsrrNrrrrr}r}rrr}ceZdZfdZdZdZdZdZej e j dkddZ ej e j d kd d Z d Zd ZxZS)FakeFileOpenLineEndingTestcVtt|dSr )rrrrs rrz FakeFileOpenLineEndingTest.setUps& ($//5577777rcz|d}dD]!}|||||d5}|ddg|dddn #1swxYwY||d5}|d|dddn #1swxYwY||d 5}|||dddn #1swxYwY#dS) Nr=)s1 2s1 2s1 2rhrrVz1 r1 2r_r/rirrPrkrO)rr4rSrRs rtest_read_default_newline_modez9FakeFileOpenLineEndingTest.test_read_default_newline_modesNN;// 5 5 5H   Y  : : :93// >1  %q{{}}=== > > > > > > > > > > > > > > >93// 31  222 3 3 3 3 3 3 3 3 3 3 3 3 3 3 39400 5A  16688444 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5  5 5s6 +BB B ")CC C 9)D..D2 5D2 c"|d}||d5}|ddddn #1swxYwY||d5}|d|jjzdz|dddn #1swxYwY||d5}|ddddn #1swxYwY||d5}|d |jjzdz|ddddS#1swxYwYdS) Nr=r.rr_r12z1 2s1 )r/rrLrPr;r{encoderOrs r!test_write_universal_newline_modez&>>Eqvvxx P P P Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q QsIAAA0A CC C (D  DD,A FF Fc$|d}d}|||||dd5}|d|dddn #1swxYwY||dd5}|d|dddn #1swxYwY||dd 5}|d|dddn #1swxYwY||dd 5}|d|ddddS#1swxYwYdS) Nr=1 2 3 4rhrrgrVrx1 2 3 4 rv r/rirrPrOrr4 file_contentsrRs rtest_read_with_newline_argz5FakeFileOpenLineEndingTest.test_read_with_newline_args`NN;// '  ];;; YYysBY 7 7 71   ^QVVXX 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 YYysDY 9 9 7Q   ^QVVXX 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 YYysDY 9 9 7Q   ^QVVXX 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 YYysFY ; ; 7q   ^QVVXX 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7sH)A<<BB)CCC7)D,,D03D0)FF  F c4|d}d}|||||dd5}|gd|dddn #1swxYwY||dd5}|gd |dddn #1swxYwY||dd 5}|gd |dddn #1swxYwY||dd 5}|d dg|ddddS#1swxYwYdS)Nr=rrhrrgr)1 2 z3 4r)z1 z 2 3 rrv)rrz3 4rrz2 3 4r/rirrPrkrs rtest_readlines_with_newline_argz:FakeFileOpenLineEndingTest.test_readlines_with_newline_argsNN;// '  ];;; YYysBY 7 7 J1   9991;;== I I I J J J J J J J J J J J J J J J YYysDY 9 9 FQ   555q{{}} E E E F F F F F F F F F F F F F F F YYysDY 9 9 FQ   555q{{}} E E E F F F F F F F F F F F F F F F YYysFY ; ; Bq   gy11;;== A A A B B B B B B B B B B B B B B B B B BsH+A>>BB!+CCC;+D22D69D6+F  FF)r zU flag no longer supportedct|d}d}|||||dd5}|d|dddn #1swxYwY||dd5}|d|dddn #1swxYwY||dd5}|d|ddddS#1swxYwYdS) Nr=rrhrrrrUrrs r.test_read_with_ignored_universal_newlines_flagzIFakeFileOpenLineEndingTest.test_read_with_ignored_universal_newlines_flag+sNN;// '  ];;; YYysDY 9 9 7Q   ^QVVXX 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 YYysDY 9 9 7Q   ^QVVXX 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 YYysDY 9 9 7Q   ^QVVXX 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7s6)A<<BB)CCC7)D--D14D1)r zU flag still supportedc|d}d}||||t5||ddddddS#1swxYwYdS)Nr=rrhrrr)r/rirrr)rr4rs r*test_universal_newlines_flag_not_supportedzEFakeFileOpenLineEndingTest.test_universal_newlines_flag_not_supported7sNN;// '  ];;;   z * * 9 9 IIic4I 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9s A//A36A3c|d}||dd5}|ddddn #1swxYwY||d5}|d|dddn #1swxYwY||dd 5}|ddddn #1swxYwY||d5}|d|dddn #1swxYwY||dd 5}|ddddn #1swxYwY||d5}|d |dddn #1swxYwY||dd 5}|ddddn #1swxYwY||d5}|d |ddddS#1swxYwYdS)Nr=r.rg)rxrr_rrrvrs 1 2 3 4rs1 2 3 4rrs rtest_write_with_newline_argz6FakeFileOpenLineEndingTest.test_write_with_newline_arg?s1NN;// YYy#rY 2 2 $a GGN # # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ YYytY , , 8   _affhh 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8YYy#tY 4 4 $ GGN # # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ YYytY , , 8   _affhh 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8YYy#vY 6 6 $! GGN # # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ YYytY , , <   0!&&(( ; ; ; < < < < < < < < < < < < < < <YYy#tY 4 4 $ GGN # # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ YYytY , , 8   _affhh 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8sAAA2)B''B+.B+ C,,C03C0)EE E&FF F *)GG#&G#H$$H(+H()I<<JJcB|d}dfd}t|}||||d5}||t|ddddS#1swxYwYdS)Nr=s c3Kd}|tkrSd|}|dkr|dVdS||dzV|dz}|tkQdSdS)Nr rzrr)rfind)pxixrs r chunk_linezCFakeFileOpenLineEndingTest.test_binary_readline..chunk_lineYsBs=))))"''r2288',,,,F#BaK0000!V s=))))))))rrhr_r)r/listrirrP)rr4rchunked_contentsrRrs @rtest_binary_readlinez/FakeFileOpenLineEndingTest.test_binary_readlineUsNN;// 3       -- ];;; YYytY , , 8   -tAww 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8s#$BBB)rr r!rrrrrrrsys version_inforrrrr"r#s@rrrs88888 5 5 5 Q Q Q 7 7 7 B B BX_S%02NOO 7 7PO 7X_S%/1IJJ99KJ9888,8888888rrceZdZdZdS)RealFileOpenLineEndingTestcdSrrrs rrz&RealFileOpenLineEndingTest.use_real_fsjrrNrrrrrrirrrc<eZdZfdZdZdZdZdZdZxZ S)&FakeFileOpenLineEndingWithEncodingTestcVtt|dSr )rrrrs rrz,FakeFileOpenLineEndingWithEncodingTest.setUpos& 4d;;AACCCCCrc|d}dD]}|||d||dd5}|ddg|dddn #1swxYwY||dd5}|d |dddn #1swxYwYdS) Nr=) раз двараз дваu раз дваr]rorrVrZuраз дваrr)rr4rSrls rtest_read_standard_newline_modezFFakeFileOpenLineEndingWithEncodingTest.test_read_standard_newline_modersNN;// P E EH   YJ  O O O93DD P   *h!79L9L9N9NOOO P P P P P P P P P P P P P P P93DD E   !19>>3C3CDDD E E E E E E E E E E E E E E E  E Es$ +BB B $)CC C c|d}||dd5}|ddddn #1swxYwY||d5}|dd|jjzd dz|dddn #1swxYwY||dd5}|d dddn #1swxYwY||d5}|d d|jjzd dz|ddddS#1swxYwYdS) Nr=r.r]rYrr_ruразrrраз )r/rrLrPrr;r{rOrs rrzHFakeFileOpenLineEndingWithEncodingTest.test_write_universal_newline_mode{sNN;// YYy# Y ; ; &q GG$ % % % & & & & & & & & & & & & & & & YYytY , ,     ++'/((**+//*--.                   YYy# Y ; ; (q GG& ' ' ' ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( YYytY , ,    !!*--'/((**+//*--.                      sIAAA2A1C//C36C3D44D8;D8A1GGGc.|d}d}|||d||ddd5}|d|dddn #1swxYwY||ddd5}|d|dddn #1swxYwY||dd d5}|d|dddn #1swxYwY||dd d5}|d|ddddS#1swxYwYdS) Nr="раз два три четыреr]rorrgrVrxrZrrvrrrs rrzAFakeFileOpenLineEndingWithEncodingTest.test_read_with_newline_argsNN;// @  ]ZPPP YYysBY L L QPQ   Eqvvxx P P P Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q YYysD:Y N N QRS   Eqvvxx P P P Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q YYysD:Y N N QRS   Eqvvxx P P P Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q YYysFZY P P QTU   Eqvvxx P P P Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q QsH )A>>BB")CCC;)D00D47D4)F  FFc>|d}d}|||d||ddd5}|gd|dddn #1swxYwY||dd d5}|gd |dddn #1swxYwY||dd d5}|gd |dddn #1swxYwY||dd d5}|ddg|ddddS#1swxYwYdS)Nr=rr]rorrgr)раз два uтри четыреr)ru два три rrv)rruтри четыреrruдва три четыреrrs rrzFFakeFileOpenLineEndingWithEncodingTest.test_readlines_with_newline_argsNN;// @  ]ZPPP YYysBY L L dPQ   SSSUVU`U`UbUb c c c d d d d d d d d d d d d d d d YYysD:Y N N `RS   OOOQRQ\Q\Q^Q^ _ _ _ ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` YYysD:Y N N `RS   OOOQRQ\Q\Q^Q^ _ _ _ ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` YYysFZY P P \TU   l,JKQ[[]] [ [ [ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \sH +BBB$+CC"C?+D66D:=D:+FFFc|d}||ddd5}|ddddn #1swxYwY||d5}|dd|dddn #1swxYwY||dd d5}|ddddn #1swxYwY||d5}|dd|dddn #1swxYwY||dd d5}|ddddn #1swxYwY||d5}|d d|dddn #1swxYwY||dd d5}|ddddn #1swxYwY||d5}|d d|ddddS#1swxYwYdS)Nr=r.rgr])rxrZrr_rrvru$раз два три четыреru"раз два три четыре)r/rrLrPrrOrs rrzBFakeFileOpenLineEndingWithEncodingTest.test_write_with_newline_argsNN;// YYy#rJY G G >1 GG< = = = > > > > > > > > > > > > > > > YYytY , , d   ELLZXXZ[Z`Z`ZbZb c c c d d d d d d d d d d d d d d dYYy#tjY I I >Q GG< = = = > > > > > > > > > > > > > > > YYytY , , d   ELLZXXZ[Z`Z`ZbZb c c c d d d d d d d d d d d d d d dYYy#v Y K K >q GG< = = = > > > > > > > > > > > > > > > YYytY , , h   IPPQ[\\^_^d^d^f^f g g g h h h h h h h h h h h h h h hYYy#tjY I I >Q GG< = = = > > > > > > > > > > > > > > > YYytY , , d   ELLZXXZ[Z`Z`ZbZb c c c d d d d d d d d d d d d d d d d d dsAAA3 $2DEEEEErc|d5}||j|ddddS#1swxYwYdS)Nr_)rrPrrOrts rtest_read_binaryz(OpenWithBinaryFlagsTest.test_read_binarys ^^D ! ! CY   T/1A1A B B B C C C C C C C C C C C C C C C C C Cs.AAAc |d5}|d|||d5}||j||d5}||dd5}|t5|dddn #1swxYwYdddn #1swxYwYdddn #1swxYwYdddn #1swxYwYddddS#1swxYwYdS)NrWrr_rrr^r) rrPrrrrOrrrf)rrRrf2f3s rtest_write_binaryz)OpenWithBinaryFlagsTest.test_write_binarysq  $ $T * * &a   Q ) ) )++AD+99 &R  !3RWWYY???^^D))&R33w4&!../ABB&&GGIII&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &sAE AD3D2D C. " D .C22D 5C26D 9 DD D D D D3D D3#D $D3' E 3D7 7E :D7 ;E  EEcj|d5}|d|||d5}||j|dddn #1swxYwYddddS#1swxYwYdS)Nzw+brr_r)rrPrrrrO)rrRrs rtest_write_and_read_binaryz2OpenWithBinaryFlagsTest.test_write_and_read_binary sD  $ $U + + @q   Q ) ) )++AD+99 @R  !3RWWYY??? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @s6AB(.B B(B B(B B((B,/B,)rr r!rrrrr"r#s@rrrstFFFFF CCC & & &@@@@@@@rrceZdZdZdS)RealOpenWithBinaryFlagsTestcdSrrrs rrz'RealOpenWithBinaryFlagsTest.use_real_fsrrNrrrrrrrrrc0eZdZfdZdZdZdZxZS)OpenWithTextModeFlagsTestc~tt||dSr )rrrsetUpFileSystemrs rrzOpenWithTextModeFlagsTest.setUps8 '..44666 rc|d|_d|_d|_d|_||j|jdS)Nr=s two linesz two linesz two linesrh)r/r4roriginal_contentsconverted_contentsrirs rrz)OpenWithTextModeFlagsTest.setUpFileSystemsQ 44,!/". $2DEEEEErc||d5}||j|dddn #1swxYwY|d5}||j|ddddS#1swxYwYdS)z#Test that text mode flag is ignoredrNrt)r_rrPrrO)rrRs rtest_read_textz(OpenWithTextModeFlagsTest.test_read_text%sP !!! ^^C  @A   T4affhh ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ^^D ! ! @Q   T4affhh ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @s#.A$$A(+A(.B??CCc|t5|dddddS#1swxYwYdS)Nzw+bt)rrrrs r test_mixed_text_and_binary_flagsz:OpenWithTextModeFlagsTest.test_mixed_text_and_binary_flags-s   z * * , ,  # #F + + + , , , , , , , , , , , , , , , , , ,r)rr r!rrrrr"r#s@rrrskFFF@@@,,,,,,,rrceZdZdZdS)RealOpenWithTextModeFlagsTestcdSrrrs rrz)RealOpenWithTextModeFlagsTest.use_real_fs3rrNrrrrrr2rrrc,eZdZdZdZdZdZdZdS)OpenWithInvalidFlagsTestc|t5|ddddddS#1swxYwYdS)Nr=Rrrrrs rtest_capital_rz'OpenWithInvalidFlagsTest.test_capital_r8   z * * ( ( IIk3 ' ' ' ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (?AAc|t5|ddddddS#1swxYwYdS)Nr=Wrrs rtest_capital_wz'OpenWithInvalidFlagsTest.test_capital_w<rrc|t5|ddddddS#1swxYwYdS)Nr=Arrs rtest_capital_az'OpenWithInvalidFlagsTest.test_capital_a@rrc|t5|ddddddS#1swxYwYdS)Nr=urrs r test_lower_uz%OpenWithInvalidFlagsTest.test_lower_uDrrc|t5|ddddddS#1swxYwYdS)Nr=rwrrs r test_lower_rwz&OpenWithInvalidFlagsTest.test_lower_rwHs   z * * ) ) IIk4 ( ( ( ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )rN)rr r!rr r rrrrrrr7s_(((((((((((()))))rrceZdZdZdS)OpenWithInvalidFlagsRealFsTestcdSrrrs rrz*OpenWithInvalidFlagsRealFsTest.use_real_fsNrrNrrrrrrMrrrceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdS)ResolvePathTestc||d5}|dddddS#1swxYwYdS)Nr.r)rrL)r file_namers r write_to_filezResolvePathTest.write_to_fileSs YYy# & & " HHSMMM                  s :>>c|t5|ddddddS#1swxYwYdSr)rrrrs r$test_none_filepath_raises_type_errorz4ResolvePathTest.test_none_filepath_raises_type_errorWs   y ) ) ! ! IIdC  ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !rc|t5|ddddddS#1swxYwYdS)Nrgr.)rrrrs r#test_empty_filepath_raises_io_errorz3ResolvePathTest.test_empty_filepath_raises_io_error[s   w ' '   IIb#                     rc|d}||||jj|dSr)r/rr>r;rFr?r3s rtest_normal_pathz ResolvePathTest.test_normal_path_sQNN5))  9%%%  ++I6677777rc||dd}|dd}||d||||jj||d|j |tj dS)Nr,rrrr) rr/rrr>r;rFr?rPrST_SIZEr final_targetr s rtest_link_within_same_directoryz/ResolvePathTest.test_link_within_same_directoryds **,,,~~eU33 NN5%00  Iu--- 9%%%  ++L99::: DGLL66t|DEEEEErcL||ddd}|dd}|||dd}|jjdd}|||||||jj || d|j |tj ||jj |||j |tj tjzdS)Nr,rbiprrr)rr/rr;rFrjrrr>r?rPrr"ST_MODEr)rr$dir_pathr  target_paths rtest_link_to_sub_directoryz*ResolvePathTest.test_link_to_sub_directorymsK **,,,~~eUE:: >>%// !!!NN5%00 gl''u55  I{333 9%%%  ++L99::: DGLL66t|DEEE  ++H55666  X..t|r?rPrr"r#s rtest_link_to_parent_directoryz-ResolvePathTest.test_link_to_parent_directory|s= **,,,~~eU33  u--... u--...NN5%00  Itw|'8'8u'E'EFFF 4>>%>>???  ++L99::: DGLL66t|DEEE  ++I6677777rc||ddd}||dd|dd}|||||||jj|dSNr,rr'r) rr/rrrr>r;rFr?r#s rtest_link_to_absolute_pathz*ResolvePathTest.test_link_to_absolute_paths **,,,~~eUE::  ue44555NN5%00  I|444 9%%%  ++L99:::::rc\||ddd}||dd|dd}|||jjddd|js3|||jj || |jj ||j |d||d|j | |jj d|js3|||jj d||| |jj|dS)Nr,rr'r.)rr/rrr;rFrjrr realpathr>islinkrgetcwdrr?r#s r$test_relative_links_work_after_chdirz4ResolvePathTest.test_relative_links_work_after_chdirs **,,,~~eUE::  ue44555NN5%00  Itw|'8'8eU'K'KLLL T  # #L$',2G2G 2R2R S S S  ++I66777  dnnU++,,, u 5 5tw~~7G7GHHH  ++E22333 P  # #L$',2G2G2N2N O O O 9%%%  ++L99:::::rc||ddd}||dd|dd}||||js3|||jj|| |jj ||j |d||d|j | |jj d|js3|||jjd| || |jj|dSr0)rr/rrrr r;rFr4r>r5rr6rr?r#s r$test_absolute_links_work_after_chdirz4ResolvePathTest.test_absolute_links_work_after_chdirs **,,,~~eUE::  ue44555NN5%00  I|444 T  # #L$',2G2G 2R2R S S S  ++I66777  dnnU++,,, u 5 5tw~~7G7GHHH  ++E22333 P  # #L$',2G2G2N2N O O O 9%%%  ++L99:::::rcX||dd}|dd}|||||ddd}|||jjdd|||jj||j ||||j |||jjd|j d|||j dS)Nrr,rr-) rr/rrr;rFrjr r4rr6)r dir1_path dir2_pathr s r test_chdir_through_relative_linkz0ResolvePathTest.test_chdir_through_relative_links_ NN3.. NN3..   """  """NN3u55  Itw|'8'8u'E'EFFF  47<+@+@+K+KLLL  i     47>>+;+;<<<  47<+@+@+G+GHHH  e  47>>+;+;<<<<>%// !!!7<<"+66  h  h $'..*:*:;;;;;rc||dd}||d||ddd||dd||d}|d|dS)Nr,rlinkrrr)rr/rrrrPrO)rr rs rtest_read_link_to_linkz&ResolvePathTest.test_read_link_to_links **,,,NN5%00  Iv... DNN5&995AAA 4>>%77888 YYy# & & bggii(((((rc||dd}|dd}||d||ddd||||jj|dS)Nr,rrrC)rr/rrr>r;rFr?r#s rtest_write_link_to_linkz'ResolvePathTest.test_write_link_to_links **,,,~~eU33 NN5%00  Iv... DNN5&995AAA 9%%%  ++L99:::::rc ||j|dddd||ddd|js||dd|jj|dd||ddd|jj|ddd|dddd}||d| |jj || |jj |dddd|ddddd}| |jj || |ddddd| |jj |dS)Nrlink1clink2rde) rr;rMr/rrr rFr4r>r?r@r)rr r$s rtest_multiple_linksz#ResolvePathTest.test_multiple_linkss" **,,, Wc7CCDDD DNN344g>>>   # #sG,, %%dnnS#&>&>??     # #sGS11 %%dnnS#s&C&CDD    NN3c::  Iw///  ++I66777  ++DNN3S#,N,NOOPPP~~c7C#FF  ,,\::;;; 4>>#sCcBBCCC  ++L99:::::rc|||dd|ddd}|||dd}||||j|d|j|}|d|j |d|j |j|d|j|}|d |j |d |j d S) z6os.utime() and os.stat() via symbolic link (issue #49)r,rr'r)rrrrrr)rrxrrxN) rrr/rrr;utimerrPst_atimest_mtime)rr* link_namers rtest_utime_linkzResolvePathTest.test_utime_links> **,,, ue44555nnUE599  ;'''NN5%00  I{333  i((( W\\) $ $ BK((( BK(((  i((( W\\) $ $ BK((( BK(((((rc||dd}||d||jj|dS)Nrloop)rr/rr@r;rFr?)rr s rtest_too_many_linksz#ResolvePathTest.test_too_many_linkssi NN3//  Iv... ,,Y7788888rc|||d|jddS)Nz C:!foo!barz C:!foo!!barr_r:rPr resolve_pathrs r%test_that_drive_letters_are_preservedz5ResolvePathTest.test_that_drive_letters_are_preservedsR !!!  t'C'CM'R'RSSSSSrc|||d|jddS)Nz !!foo!bar!bazz!!foo!bar!baz!!rXrs r!test_that_unc_paths_are_preservedz1ResolvePathTest.test_that_unc_paths_are_preserved!s^ !!!   T_99:KLL     rN)rr r!rrrr r%r+r.r1r7r9r=rArDrFrMrSrVrZr\rrrrrRs:!!!888 FFF M M M 8 8 8;;;;;;&;;;&===" < < < ) ) );;;;;;4)))$999 TTT      rrceZdZdZdS)RealResolvePathTestcdSrrrs rrzRealResolvePathTest.use_real_fs*rrNrrrrr^r^)rrr^__main__)5r{r1rr`r;rrr'rpyfakefsrrpyfakefs.helpersrrpyfakefs.fake_ior!pyfakefs.fake_filesystem_unittestrpyfakefs.tests.test_utilsr r r%rrrrrrrrrr rSrVr}rrrrrrrrrrrrrrr^rmainrrrrgs5 -, ----------------))))))777777444444     >   B B B B B +B B B J' T%T%T%T%T%!5T%T%T%n!; !F*,UVV'&'&'&'&'&"6'&'&WV'&T"= !F*,UVV-----$8--WV-* 3 3 3 3 3$A 3 3 3d/d/d/d/d/,d/d/d/N) Z^Z^Z^Z^Z^3Z^Z^Z^z#; p8p8p8p8p8!5p8p8p8f!; QdQdQdQdQd-AQdQdQdh-S :::::!5:::&%9 111110111.@@@@@3@@@<"9 ,,,,, 5,,,2$= )))))3))),%= T T T T T *T T T n/  zHMOOOOOr