i0T_dZddlZddlZddlZddlZddlZddlZddlZddlm Z m Z ddl m Z m Z mZddlmZddlmZmZddlmZddlmZmZGd d eZGd d eZGd deZGddeZGddeZejejdkdGddeZ Gdde Z!ejejdkdGddeZ"Gdde"Z#GddeZ$Gdd e$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/d0eZ-Gd1d2eZ.Gd3d4e.Z/Gd5d6e/Z0Gd7d8e.Z1Gd9d:e1Z2Gd;de3Z4Gd?d@eZ5GdAdBe5Z6GdCdDej7Z8e9dEkrej:dSdS)Fz&Unit tests for fake_open.FakeOsModule.N)fake_filesystemhelpers)is_rootIS_PYPYget_locale_encoding) FakeIoModule) PatchModePatcher) read_open)RealFsTestCaseskip_if_symlink_not_supportedc$eZdZfdZdZxZS)FakeFileOpenTestBasect|rtj|_dSt |j|_|jj|_dSN)supersetUp use_real_fsioopenr filesystemfake_io_moduleself __class__s o/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/pyfakefs/tests/fake_open_test.pyrzFakeFileOpenTestBase.setUp#sX        1DIII".t"?"?D +0DIIIcdS)N!rs rpath_separatorz#FakeFileOpenTestBase.path_separator+ssr)__name__ __module__ __qualname__rr" __classcell__rs@rrr"sG11111rrceZdZfdZfdZdZdZdZdZdZ 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@ZBdAZCdBZDdCZEdDZFdEZGdFZHdGZIdHZJdIZKdJZLdKZMdLZNdMZOdNZPdOZQdPZRdQZSxZTS)RFakeFileOpenTestcjttj|_dSr)rrtime orig_timers rrzFakeFileOpenTest.setUp0s!  rcjt|jt_dSr)rtearDownr,r+rs rr.zFakeFileOpenTest.tearDown4s& N 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|_||dd5||j|dddn #1swxYwY| |j|dS)Nboozboo!farTdelete_on_closer2utf8encoding) skip_real_fsosmkdirr FakeFileOpenrr assertTrueexists assertFalserfile_dirr8s rtest_delete_on_closez%FakeFileOpenTest.test_delete_on_close=s    h#0RVWWW YYy#Y 7 7 ? ? OODO229== > > > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // ::;;;;;s+.B%%B),B)cX|d}||dd5||jj|dddn #1swxYwY||jj|dS)Nczarr2r>r?)r3rrErBpathrFr7s r"test_no_delete_on_close_by_defaultz3FakeFileOpenTest.test_no_delete_on_close_by_defaultGsNN6** YYy#Y 7 7 < < OODGL// :: ; ; ; < < < < < < < < < < < < < < <  ++I6677777s3A--A14A1c|tj|jd|_d}||jj|||dd5| |jj|dddn #1swxYwY||jj|dS)NTr<r0r2r>r?) rArrDrrrGrBrMrFrEr7s r$test_compatibility_of_with_statementz5FakeFileOpenTest.test_compatibility_of_with_statementMs #0RVWWW   ,,Y77888 YYy#Y 7 7 < < OODGL// :: ; ; ; < < < < < < < < < < < < < < < ,,Y7788888s3CCCc|d}d} ||dt5}||dddn #1swxYwYn%#t$r|dYnwxYw||t5}|}dddn #1swxYwY|||dS)Nr0u Ümläütsr2r?,This test does not work with an ASCII locale)r3rrwriteUnicodeEncodeErrorskipTestread assertEqual)rr8text_fractionsfcontentss rtest_unicode_contentsz&FakeFileOpenTest.test_unicode_contentsXsvNN5)) & J9c4G4I4IJJ (a''' ( ( ( ( ( ( ( ( ( ( ( ( ( ( (! J J J MMH I I I I I JYYy+>+@+@Y A A QvvxxH                >22222sF$A+A A+A##A+&A#'A++B  B 3CCCc|d}d}||d5}||dddn #1swxYwY||d5}|}dddn #1swxYwY|||ddS)Nr0⅓ ⅔ ⅕ ⅖wbutf-8r?)r3rrSrVrWdecode)rr8byte_fractionsrYrZs rtest_byte_contentsz#FakeFileOpenTest.test_byte_contentsis1NN5)) O YYy$ ' ' $1 GGN # # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $YYy7Y 3 3 qvvxxH                >#8#8#A#ABBBBBs#AAA2BBBc|d}d} ||dt5}||dddn #1swxYwY||d5}|}dddn #1swxYwY|||tdS#t$r|dYdSwxYw)Nr0uÄsgülr2r?rbrR) r3rrrSrVrWr` UnicodeErrorrU)rr8 str_contentsrYrZs rtest_write_str_read_bytesz*FakeFileOpenTest.test_write_str_read_bytests~NN5))   J9c4G4I4IJJ &a %%% & & & & & & & & & & & & & & &9d++ $q6688 $ $ $ $ $ $ $ $ $ $ $ $ $ $ $   \8??;N;P;P+Q+Q R R R R R J J J MMH I I I I I I JsX$C#A C#A##C#&A#'C#B! C#!B%%C#(B%)8C##DDc<gd}|d}||d|||d5}|||ddddS#1swxYwYdSNz I am he as zyou are he as zyou are me and zwe are all together r1rZr>r?)r3 create_filejoinrrW readlines)rrZr8 fake_files rtest_open_valid_filez%FakeFileOpenTest.test_open_valid_files    NN9--  RWWX->->??? YYy6Y 2 2 >i   Xy':':'<'< = = = > > > > > > > > > > > > > > > > > >s)BBBc@ddg}|dd}||d|||dd 5}|||dddn #1swxYwY||ddd d d 5}|d dd|jjz|dg}|||ddddS#1swxYwYdS)Nz"Bang bang Maxwell's silver hammer Came down on her head abbey_roadmaxwellrkrlr>r@ bufferingstrict )r@rxerrorsnewlineopenerr)r3rmrnrrWrorBlinesep)rrZr8rYexpected_contentss rtest_open_valid_argsz%FakeFileOpenTest.test_open_valid_argss 1 # NN<;;  RWWX->->??? YYy6QY ? ? 61   Xq{{}} 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 YY    ? CRC 47?2 !    . > > > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?s%)BBB8ADDDczgd}|d}||d||j|j||d5}|||ddddS#1swxYwYdSri) r3rmrnrBchdir base_pathrrWro)rrZr8rYs rtest_open_valid_file_with_cwdz.FakeFileOpenTest.test_open_valid_file_with_cwds    NN9--  RWWX->->???  dn%%% YYy6Y 2 2 6a   Xq{{}} 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6s:)B00B47B4c0ddg}|dd}||d|||d5}d |D}dddn #1swxYwY|||dS) Nz!Bang bang Maxwell's silver hammerrsrtrurzrlr>r?c6g|]}|Sr rstrip.0lines r z;FakeFileOpenTest.test_iterate_over_file.. :::dkkmm:::r)r3rmrnrrW)rrZr8rpresults rtest_iterate_over_filez'FakeFileOpenTest.test_iterate_over_files / # NN<;;  TYYx-@-@AAA YYy6Y 2 2 ;i:: :::F ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 6*****s A55A9<A9cddg}g}|d}||d|||d5}|t ||t |dddn #1swxYwY|||dS)Nz Live long z and prosper zfoo.txtrkrlr>r?)r3rmrnrappendnextrW)rrZrr8rps rtest_next_over_filez$FakeFileOpenTest.test_next_over_files!?3NN9--  RWWX->->??? YYy6Y 2 2 +i MM$y// * * * MM$y// * * * + + + + + + + + + + + + + + + 6*****sAB..B25B2c"|d}|j||jr-|t j|jj|dS|t j |jj|dSNr0) r3rBrC is_windowsr4r5EACCESr__call__EISDIR)rdirectory_paths rtest_open_directory_errorz*FakeFileOpenTest.test_open_directory_errors..  n%%% ?   ' ' di0.       ' ' di0.     rcgd}|d}|jj|d}|j|||dd5}|D]}||dz dddn #1swxYwY||d5}d|D}dddn #1swxYwY|||dS) Nz"Here comes the sun, little darlin'zHere comes the sun, and I say,z It's alrightrthere_comes_the_sunr2r>r?rzc6g|]}|Sr rrs rrz@FakeFileOpenTest.test_create_file_with_write..rrr3rBrMrnrCrrSrWrrZrIr8rprrs rtest_create_file_with_writez,FakeFileOpenTest.test_create_file_with_write    >>,//GL%%h0DEE   h YYy#Y 7 7 -9  - -t ,,,, - - - - - - - - - - - - - - - -YYy6Y 2 2 ;i:: :::F ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 6*****$,BBB9 CCCcgd}|d}|jj|d}|j|||dd5}|D]}||dz dddn #1swxYwY||d5}d|D}dddn #1swxYwY|||dS) Nrrtrar>r?rzc6g|]}|Sr rrs rrzAFakeFileOpenTest.test_create_file_with_append..rrrrs rtest_create_file_with_appendz-FakeFileOpenTest.test_create_file_with_appendrrct|d}|||tj|j|d|tj|j|ddS)Nbarxxb)r r3rmr4r5EEXISTrr7s r"test_exclusive_create_file_failurez3FakeFileOpenTest.test_exclusive_create_file_failuresu%'''NN5))  ### ##EL$)YLLL ##EL$)YMMMMMrc|d}|jj|d}|j|d}||dd5}||dddn #1swxYwY||d5}|||ddddS#1swxYwYdS)Nr0rzString contentsrr>r?) r3rBrMrnrCrrSrWrVrrIr8rZrps rtest_exclusive_create_filez+FakeFileOpenTest.test_exclusive_create_filesX>>%((GL%%h66   h$ YYy#Y 7 7 &9 OOH % % % & & & & & & & & & & & & & & & YYy6Y 2 2 9i   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(cH|d}|jj|d}|j|d}||d5}|d|j||dddn #1swxYwY||d5}|d|j||| ddddS#1swxYwYdS)Nr0rsBinary contentsrrd) r3rBrMrnrCrrWmoderSrVrs r!test_exclusive_create_binary_filez2FakeFileOpenTest.test_exclusive_create_binary_files>>%((GL%%h66   h% YYy$ ' ' &9   T9> 2 2 2 OOH % % % & & & & & & & & & & & & & & &YYy$ ' ' 99   T9> 2 2 2   Xy~~'7'7 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9s%(1B%%B),B)ADDDc|d}||dddg}||dd5}|D]}||d z dddn #1swxYwY||d5}d |D}dddn #1swxYwY|||dS) N overwritez To disappearrlzOnly these lineszshould be in the file.r2r>r?rzc6g|]}|Sr rrs rrzAFakeFileOpenTest.test_overwrite_existing_file..rrr3rmrrSrW)rr8 new_contentsrprrs rtest_overwrite_existing_filez-FakeFileOpenTest.test_overwrite_existing_fileskNN;//  ^<<<  $ YYy#Y 7 7 -9$ - -t ,,,, - - - - - - - - - - - - - - - -YYy6Y 2 2 ;i:: :::F ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; v.....s$ A44A8;A8 B//B36B3c|d}dg}|||d||dd5}|ddD]}||d z dddn #1swxYwY||d5}d |D}dddn #1swxYwY|||dS) N appendfilez*Contents of original fileAppended contentsrrlrr>r?rvrzc6g|]}|Sr rrs rrz>FakeFileOpenTest.test_append_existing_file..)rrr)rr8rZrprrs rtest_append_existing_filez*FakeFileOpenTest.test_append_existing_filestNN<00 8  Xa[999 YYy#Y 7 7 -9   - -t ,,,, - - - - - - - - - - - - - - - -YYy6Y 2 2 ;i:: :::F ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 6*****s$&BBB# B<<CCc|d}||d||jj|||dd5}|d||d|j dddn #1swxYwY||dd5}| d| d |d||d|j ddddS#1swxYwYdS) N wplus_file old contentsrlrr>r?w+ new contentsr r3rmrErBrMrFrrWrVrrSseekrr8rps rtest_open_with_wplusz%FakeFileOpenTest.test_open_with_wplus,sNN<00  ^<<<  ++I66777 YYy#Y 7 7 29   ^Y^^-=-= > > >   S). 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2YYy$Y 8 8 3I OON + + + NN1    OONINN,<,< = = =   T9> 2 2 2  3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3s&7ACC C *A.E%%E),E)c|d}||d||jj|||d5}|d||d|j dddn #1swxYwY||d5}| d| d|d||d|j ddddS#1swxYwYdS) N wplus_file_bs old contentsrlrdzwb+ new contentsrrb+rrs rtest_open_with_wplus_binaryz,FakeFileOpenTest.test_open_with_wplus_binary;sNN>22  _===  ++I66777 YYy$ ' ' 39   _inn.>.> ? ? ?   T9> 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3YYy% ( ( 4I OOO , , , NN1    OOOY^^-=-= > > >   UIN 3 3 3  4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s&5ACC  C &A.E!!E%(E%c|d}||d||jj|||dd5}|d|dddn #1swxYwY||dd5}| d|d ||d|j ddddS#1swxYwYdS) Nrrrlrr>r?rrrk) r3rmrErBrMrFrrWrVrrrs rtest_open_with_wplus_truncationz0FakeFileOpenTest.test_open_with_wplus_truncationIsNN<00  ^<<<  ++I66777 YYy#Y 7 7 ?9   ^Y^^-=-= > > > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?YYy$Y 8 8 3I NN1      R!1!1 2 2 2   T9> 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3s%7)B,,B03B0AD55D9<D9cgd}ddg}|d}||d|||dd 5}|t j5|d dddn #1swxYwY|t j5|dddn #1swxYwY| d|j td|}|t|t|j j d z zz }| |||d | d |||dddn #1swxYwY||d 5}| ||z|ddddS#1swxYwYdS) NrjzThese new lines zlike you a lot. rrkrlrr>r?rrv)r3rmrnr assertRaisesrUnsupportedOperationrVreadlinerWrlenrBrtellr writelinesro)rrZadditional_contentsr8rp expected_lens rtest_open_with_append_flagz+FakeFileOpenTest.test_open_with_append_flagVs/    34GHNN<00  RWWX->->??? YYy#Y 7 7 69""2#:;; " "q!!! " " " " " " " " " " " " " " """2#:;; % %""$$$ % % % % % % % % % % % % % % %   S). 1 1 1rwwx0011L 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 6YYy6Y 2 2 Ti   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*-C1 1G*4C1 5C)G**G.1G. ,II  I cRd}d}|d}|||||d5}|tj5|ddddn #1swxYwY|d|j|t|| | d|d| | |dddn #1swxYwY||d5}|||z|ddddS#1swxYwYdS)NsJust some boring stuff... ssome excitement addedz append-binaryrlabrrd) r3rmrrrrrVrWrrrrrS)rrZrr8rps r!test_open_with_append_flag_binaryz2FakeFileOpenTest.test_open_with_append_flag_binaryosN06NN?33  X666 YYy$ ' ' 19""2#:;; " "q!!! " " " " " " " " " " " " " " "   T9> 2 2 2   S]]INN,<,< = = = NN1      Q  0 0 1 1 1 OO/ 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1YYy$ ' ' O9   X(;;Y^^=M=M N N N O O O O O O O O O O O O O O O O O OsI E'B = E B EB B%EE E#,FF #F c|d}||d||jj|||dd5}|d|dddn #1swxYwY|j r tj |j d|_||d d5}|d |j |d | |d |d | |d |d|ddddS#1swxYwYdS)N aplus_filerrlrr>r?Tr<a+ rrold contentsnew contents)r3rmrErBrMrFrrWrVrrrDrrrSrrs rcheck_append_with_aplusz(FakeFileOpenTest.check_append_with_apluss1NN<00  ^<<<  ++I66777 YYy#Y 7 7 ?9   ^Y^^-=-= > > > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? '4DIYYy$Y 8 8 KI   T9> 2 2 2   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%7)B,,B03B06B>GGGcV||dSr)check_macos_onlyrr!s rtest_append_with_aplus_mac_osz.FakeFileOpenTest.test_append_with_aplus_mac_oss,  $$&&&&&rcV||dSr)check_linux_and_windowsrr!s r$test_append_with_aplus_linux_windowsz5FakeFileOpenTest.test_append_with_aplus_linux_windowss, $$&&& $$&&&&&rc|d}||d||jj|||dd5}|d|dddn #1swxYwY||dd5}| d| d | d|D]}|d | ddddS#1swxYwYdS) Nrrrlrr>r?rrrr) r3rmrErBrMrFrrWrVrrS)rr8rprs r%test_append_with_aplus_read_with_loopz6FakeFileOpenTest.test_append_with_aplus_read_with_loopsNN<00  ^<<<  ++I66777 YYy#Y 7 7 ?9   ^Y^^-=-= > > > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?YYy$Y 8 8 CI 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%7)B,,B03B0AD88D<?D<c|d}||dd5}|d|ddddS#1swxYwYdS)Nrrr>r?rk)r3rrWrVrs rtest_read_empty_file_with_aplusz0FakeFileOpenTest.test_read_empty_file_with_aplussNN<00 YYy$Y 8 8 3I   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}||d5}|d||d|jddddS#1swxYwYdS)Nrzab+r)r3rrWrVrrs r&test_read_empty_file_with_aplus_binaryz7FakeFileOpenTest.test_read_empty_file_with_aplus_binarysNN<00 YYy% ( ( 4I   S).."2"2 3 3 3   UIN 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4sAA==BBc(|d}||d||jj|||dd5}|d|dddn #1swxYwY||dd5}|d||d|j | d| d | d|d |ddddS#1swxYwYdS) N rplus_filezold contents hererlrr>r?r+rrznew contents here r3rmrErBrMrFrrWrVrrrSrs rtest_read_with_rplusz%FakeFileOpenTest.test_read_with_rpluss NN<00  -@AAA  ++I66777 YYy#Y 7 7 D9   0)..2B2B C C C D D D D D D D D D D D D D D DYYy$Y 8 8 DI   0)..2B2B C C C   T9> 2 2 2 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%7)B,,B03B0B+FF F c |d}||d||jj|||d5}|d|dddn #1swxYwY||d5}|d||d|j | d| d| d|d|ddddS#1swxYwYdS) N rplus_binarysold contents hererlrdrrrsnew contents hererrs rtest_read_with_rplus_binaryz,FakeFileOpenTest.test_read_with_rplus_binarysNN>22  -ABBB  ++I66777 YYy$ ' ' E9   19>>3C3C D D D E E E E E E E E E E E E E E EYYy% ( ( EI   19>>3C3C D D D   UIN 3 3 3 NN1    OOO , , , NN1      19>>3C3C D D D  E E E E E E E E E E E E E E E E E Es%5)B**B.1B. B+FF Fc|||j|||tjzr|j|}|||j||jt j z| |jt j zdSdSr) rmrBchmodr PERM_READstatassert_mode_equalst_moderES_IFREGrGS_IFDIR)rr8 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||dd||dd||dd|t 5||ddddddS#1swxYwYdS) N target_fileirr>r?r2rINV)check_posix_onlyr3rrcloser ValueErrorr7s rtest_open_flags700z#FakeFileOpenTest.test_open_flags700s7 NN=11  ##Iu555 )S6 2288::: )S6 2288::: )TF 3399;;;   z * * 9 9 IIiI 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9sC>>DDc<||d}||d||ddt sP|tj|j|d|tj|j|ddS||dd||dddS)Nrrr>r?r2r) rr3rrrrr4r5rr7s rtest_open_flags400z#FakeFileOpenTest.test_open_flags400s NN=11  ##Iu555 )S6 2288:::yy @  ' ' diC P P P  ' ' diD Q Q Q Q Q IIivI 6 6 < < > > > IIiI 7 7 = = ? ? ? ? ?rc||d}||d||ddt s|t5||dddddn #1swxYwY|t5||ddddddS#1swxYwYdS||dd||dddS)Nrr2r>r?rr)rr3rrrrrOSErrorr7s rtest_open_flags200z#FakeFileOpenTest.test_open_flags200s NN=11  ##Iu555 )S6 2288:::yy @""7++ ; ; )S6 ::: ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;""7++ < < )TF ;;; < < < < < < < < < < < < < < < < < < IIivI 6 6 < < > > > IIiI 7 7 = = ? ? ? ? ?s$B77B;>B;DD Dc^||d}||dts|t 5||dddddn #1swxYwY|t 5||dddddn #1swxYwY|t 5||ddddddS#1swxYwYdS||dd||dd||dddS)Nr@rr>r?r2r)rr3rrrrrrr7s rtest_open_flags100z#FakeFileOpenTest.test_open_flags100sN NN=11  ##Iu555yy @""7++ ; ; )S6 ::: ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;""7++ ; ; )S6 ::: ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;""7++ < < )TF ;;; < < < < < < < < < < < < < < < < < < IIivI 6 6 < < > > > IIivI 6 6 < < > > > IIiI 7 7 = = ? ? ? ? ?s6(B  BB2CCC<D""D&)D&ct|ddd}|d}d}|||||||||j|||dd }|}| | ||dS) Nr0rbaztarJAYreal baz contentsrlrr>r?) r r3rmcreate_symlinkassert_equal_pathsrBreadlinkrrVrrWr link_pathtargettarget_contentsfh got_contentss rtest_follow_link_readz&FakeFileOpenTest.test_follow_link_reads%'''NN5%77 ))- /::: Iv... (8(8(C(CDDD YYy#Y 7 7wwyy    ,77777rcLt|ddd}|d}d}|||||jj|||dd5}||dddn #1swxYwY||d d5}| }dddn #1swxYwY| ||dS) Nr0rTBDrrr2r>r?r) r r3rrGrBrMrFrrSrVrWrs rtest_follow_link_writez'FakeFileOpenTest.test_follow_link_write&s%'''NN5%77 ))- Iv... ,,V44555 YYy#Y 7 7 &2 HH_ % % % & & & & & & & & & & & & & & & YYvsVY 4 4 %7799L % % % % % % % % % % % % % % % ,77777s$B??CC"DD Dct|jj|jddddd}|ddd}||dd||jj|jddd|d||jj |||jj |d}| |dd 5}| |dddn #1swxYwY| |d d 5}| }dddn #1swxYwY| ||dS) Nr0build local_machineoutput1tmprr2r>r?r)r rBrMrnrr3 create_dirrrGrFrrSrVrWrs r!test_follow_intra_path_link_writez2FakeFileOpenTest.test_follow_intra_path_link_write4s%'''GL%% NE7OXs  x55 uh77888  GL  dneWo N N NN5 ! !   ,,Y77888 ,,V44555- YYy#Y 7 7 &2 HH_ % % % & & & & & & & & & & & & & & & YYvsVY 4 4 %7799L % % % % % % % % % % % % % % % ,77777s$E&&E*-E* F**F.1F.cN||d}|j||jj|d}|j|||tj |j |dS)Nr0r) rr3rBrCrMrnsymlinkr4r5ELOOPrrHs r test_open_raises_on_symlink_loopz1FakeFileOpenTest.test_open_raises_on_symlink_loopKs >>%((  hGL%%h66   9--- ##EKIFFFFFrc|d}||d|d}||d|d}||d||d 5}||d 5}||d 5}|}||||||dddn #1swxYwYdddn #1swxYwYddddS#1swxYwYdS) N some_file1contents here1rl some_file2contents here2 some_file3contents here3r>r?)r3rmrfileno 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_filesTsR^^L11  .>???nn\22  /?@@@^^L11  .>??? YYzFY 3 3 Ez;88 EJYYzFY;;Ez(//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,4E A%D=1 E=E EE E E,E E,E E,,E03E0c|d}||d|d}||d||d5}||d5}||d5}|}||||||dddn #1swxYwYdddn #1swxYwYddddS#1swxYwYdS)Nr3r4rlr5r6r>r?)r3rmrr9assertNotEqual)rr;r<r>r? fake_file1arAs r5test_file_descriptors_for_the_same_file_are_differentzFFakeFileOpenTest.test_file_descriptors_for_the_same_file_are_differentcs'^^L11  .>???nn\22  /?@@@ YYzFY 3 3 Gz;88 GJYYzFY;;G{(//11G''1B1B1D1DEEE'' (:(:(<(r?)r3rmrr9rWr) rr;r<r=r>r?r@rEfileno1rAfileno3fileno4 fake_file1bs r1test_reused_file_descriptors_do_not_affect_otherszBFakeFileOpenTest.test_reused_file_descriptors_do_not_affect_othersoss^^L11  .>???nn\22  /?@@@^^L11  .>??? YYz3Y 8 8 /J;f== /!YYz3YHH "ii C&iII $++--$++--$++--%,,..  / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /YY{C&Y 9 9 @Z:sV<< @   **;*;*=*=>>>  +*<*<*>*>???  **;*;*=*=>>>  +*<*<*>*>???  @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ snE6BE7 EE E E EE!E=IB!I7 II I I II!Ic|d}||||dd5}||dd5}gd}g}|D]f}||||||g|||gd}g}|D]>}||||?|d|D|dddn #1swxYwYddddS#1swxYwYdS) N some_filerr>r?r)hellozworld zsomewhere overzthe rainbow)nothingzto seeherecg|]}dSrkr r_s rrz@FakeFileOpenTest.test_intertwined_read_write..!5!5!5"!5!5!5rr3rmrrSflushrrVrWrr8writerreaderwritesreadsrSs rtest_intertwined_read_writez,FakeFileOpenTest.test_intertwined_read_writesNN;//  ### YYy#Y 7 7 >69cF;; >v###ELL'''LLNNNLL///LLNNNN  ///777$00ELL'''LL////  !5!5f!5!5!5u===/ > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >7E-C-E E-E E-E E--E14E1c|d}||||dd5}||dd5}gd}g}|D]f}||||||g|||ddg}g}|D]>}||||?|d |D|dddn #1swxYwYddddS#1swxYwYdS) NrNrr_r?r)u приветuмир uгде-то заuрадугойu ничегоuне видноcg|]}dSrTr rUs rrzLFakeFileOpenTest.test_intertwined_read_write_python3_str..rWrrXrZs r'test_intertwined_read_write_python3_strz8FakeFileOpenTest.test_intertwined_read_write_python3_strsNN;//  ### YYy#Y 8 8 >F9cG<< >\\\###ELL'''LLNNNLL///LLNNNN  ///(*<=$00ELL'''LL////  !5!5f!5!5!5u===# > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >r`c\ddd5}t5|dddn #1swxYwYt5|dddn #1swxYwYdddn #1swxYwYdd5}t5|dddn #1swxYwYt5|dddn #1swxYwYdddn #1swxYwYdd5}t5|dddn #1swxYwYt5|ddddn #1swxYwYt5| dd gdddn #1swxYwYdddn #1swxYwYfd }t5|ddddn #1swxYwYt5|dddddS#1swxYwYdS) NrNrr>r?r2rrZcontentscv|d5}|D]} ddddS#1swxYwYdS)Nr>r?)r)rrYrVr8rs r_iterator_openz._iterator_opens9dV<< A                  s .22) r3rmrrrrVrotruncaterSr)rr rhr8s` @rtest_open_io_errorsz$FakeFileOpenTest.test_open_io_errorssNN;//  ### YYy#Y 7 7 2""7++                  ""7++                                  YYy#Y 7 7 2""7++                  ""7++                                  YYy#Y 7 7 02""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                     sVC B5 CB CB C&C; CC CC CC"%C"FD=1 F=E FE F"F7 FF F F FF!F=J G9- J 9G= =J G= J I4 J I J I J %J = J  J J J J  J$'J$ K##K'*K' L!!L%(L%c||d}|||jj|d}|tj|j |ddSNrrr2) rr3rmrBrMrnr4r5ENOTDIRrr7s 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 |ddSrl) check_windows_onlyr3rmrBrMrnr4r5r6rr7s 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|ddS)Nr0r2)r3rBrMsepr4r)rerror_nrrMs rcheck_open_with_trailing_sepz-FakeFileOpenTest.check_open_with_trailing_sepsA~~e$$tw|'77 ##HdisCCCCCrcl||tjdSr)check_linux_onlyrur5rr!s r!test_open_with_trailing_sep_linuxz2FakeFileOpenTest.test_open_with_trailing_sep_linux0  ))%,77777rcl||tjdSr)rrur5r6r!s r!test_open_with_trailing_sep_macosz2FakeFileOpenTest.test_open_with_trailing_sep_macosryrcl||tjdSr)rprur5EINVALr!s r#test_open_with_trailing_sep_windowsz4FakeFileOpenTest.test_open_with_trailing_sep_windowss0 !!! ))%,77777rcH|d}|j|tjt jz||dd5}|d| ddddS#1swxYwYdS)Ndevicerr>r?rk) rArrmrS_IFBLKrPERM_ALLrrWrV)r device_pathr s rtest_can_read_from_block_devicez0FakeFileOpenTest.test_can_read_from_block_devices   ##K@P1PQQQ YY{C&Y 9 9 ,R   R + + + , , , , , , , , , , , , , , , , , ,s!)BBBct|d}||||dd5}|d||d|jj|ddddS#1swxYwYdSNrr2r>r?test) r3rmrrSrirWrBrMgetsizerr8f0s rtest_truncate_flushes_contentsz/FakeFileOpenTest.test_truncate_flushes_contentssNN5))  ### YYy#Y 7 7 A2 HHV    KKMMM   Q 4 4Y ? ? @ @ @ A A A A A A A A A A A A A A A A A AsAB--B14B1c|d}||dd5}||dd5}|d|||d|jj|dddn #1swxYwYddddS#1swxYwYdSr) r3rrSrirYrWrBrMrrr8rf1s r1test_update_other_instances_of_same_file_on_flushzBFakeFileOpenTest.test_update_other_instances_of_same_file_on_flushsmNN5)) YYy#Y 7 7 E29cF;; Er       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 Es6CA1C8 CC C C CC #C c,|d}||dd5}|d|d||d||d|jj||d|j |j ddddS#1swxYwYdS)Nr0rr>r?rbrv) r3rrSrrirWrBrMrrst_sizerr8rYs rtest_getsize_after_truncatez,FakeFileOpenTest.test_getsize_after_truncates5NN5)) YYy#Y 7 7 A1 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 AsCD  D D c|d}||dd5}|d||d||d|j|jddddS#1swxYwYdS)Nr0rr>r?r)r3rrSrirWrBrrrs rtest_st_size_after_truncatez,FakeFileOpenTest.test_st_size_after_truncate$sNN5)) YYy#Y 7 7 A1 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 AsBCCCc\|d}||||d5}|d||d|ddddS#1swxYwYdS)Nrr>r?r)r3rmrrrVrWrrs r/test_that_read_over_end_does_not_reset_positionz@FakeFileOpenTest.test_that_read_over_end_does_not_reset_position.sNN5))  ### YYy6Y 2 2 +b GGAJJJ GGIII   Q * * * + + + + + + + + + + + + + + + + + +sAB!!B%(B%c|jrtjd|d}||d||dd}||t5| ddddn #1swxYwY|t5| d dddn #1swxYwY|t5| dddn #1swxYwY|t5| dddn #1swxYwY|t5| dddn #1swxYwY|t5|ddddn #1swxYwY|t5|ddddS#1swxYwYdS) NDifferent exceptions with PyPyr0testrlrr>r?rvr)is_pypyunittestSkipTestr3rmrrrr rVrSrrirrrYrs r!test_accessing_closed_file_raisesz2FakeFileOpenTest.test_accessing_closed_file_raises7s < F#$DEE ENN5))  W555IIivI>>    z * *   NN1                     z * * ! ! OOC  ! ! ! ! ! ! ! ! ! ! ! ! ! ! !   z * * ! !     ! ! ! ! ! ! ! ! ! ! ! ! ! ! !   z * * ! !     ! ! ! ! ! ! ! ! ! ! ! ! ! ! !   z * *   NN                     z * *   NN1                     z * *   OO                     s~B00B47B4C77C;>C;D==EE"FF F(G  G G .HHH5IIIc|jrtjd|d}|j|tjtjztjz}||dd}| | t5| ddddn #1swxYwY| t5| ddddn #1swxYwY|j |dS)Nrr0rr>r?rvr)rrrr3rBrO_CREATO_WRONLYO_TRUNCrrr rVrS)rr8rrps r3test_accessing_open_file_with_another_handle_raiseszDFakeFileOpenTest.test_accessing_open_file_with_another_handle_raisesNs < F#$DEE ENN5)) W\\)RZ"+%= %J K KIIivI>>    z * *   NN1                     z * * ! ! OOC  ! ! ! ! ! ! ! ! ! ! ! ! ! ! !  bs$6CCC=DD#&D#c||d}||dd5}|d|d||d|jj|ddddS#1swxYwYdSNr0r2r>r?rr) rr3rrSrWrrBrMrrs rtest_tell_flushes_under_mac_osz/FakeFileOpenTest.test_tell_flushes_under_mac_os\s  NN5)) YYy#Y 7 7 A2 HHV      Q * * *   Q 4 4Y ? ? @ @ @ A A A A A A A A A A A A A A A A A AA1CCCc||d}||dd5}|d|d||d|jj|ddddS#1swxYwYdSr) rr3rrSrWrrBrMrrs rtest_tell_flushes_in_python3z-FakeFileOpenTest.test_tell_flushes_in_python3es  $$&&&NN5)) YYy#Y 7 7 A2 HHV      Q * * *   Q 4 4Y ? ? @ @ @ A A A A A A A A A A A A A A A A A Arc||d}||dd5}|d|d||d|jj|ddddS#1swxYwYdS)Nr0rr>r?rrkr) rr3rrSrWrVrBrMrrs rtest_read_flushes_under_posixz.FakeFileOpenTest.test_read_flushes_under_posixns  NN5)) YYy$Y 8 8 AB HHV      R + + +   Q 4 4Y ? ? @ @ @ A A A A A A A A A A A A A A A A A Arcr||d}||dd5}|d||d|jj|ddddS#1swxYwYdS)Nr0rr>r?rr) rpr3rrSrVrWrBrMrrs r*test_read_flushes_under_windows_in_python3z;FakeFileOpenTest.test_read_flushes_under_windows_in_python3ws !!!NN5)) YYy$Y 8 8 AB HHV    GGIII   Q 4 4Y ? ? @ @ @ A A A A A A A A A A A A A A A A A AsAB,,B03B0c|d}||dd5}|d|d|jj||d|d|jj|ddddS#1swxYwYdS) Nr0r2r>r?rrr)r3rrSrWrBrMrrrs rtest_seek_flushesz"FakeFileOpenTest.test_seek_flushessNN5)) YYy#Y 7 7 A2 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}||dd5}|d|d|jj|||d|jj|ddddS#1swxYwYdS)Nr0rr>r?rrr)r3rrSrWrBrMrrirs rtest_truncate_flushesz&FakeFileOpenTest.test_truncate_flushessNN5)) YYy#Y 7 7 A2 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  CCc|d}|||d5}|d||d||d|jj||d|d|jj|dddn #1swxYwY|d|jj|dS)Nrr>r?rv) r3rrrirWrrBrMr)rrr8rs r)check_seek_outside_and_truncate_sets_sizez:FakeFileOpenTest.check_seek_outside_and_truncate_sets_sizesVNN5)) YYy$Y 8 8 AB 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;;<<<<r?)r3rrGclosedrrErs r test_closedzFakeFileOpenTest.test_closedsNN5)) IIivI 6 6 """   !!! IIi&I 1 1 """   !!!!!rc`|d}||dd}|||d5}||d|ddddS#1swxYwYdS)Nrr2r>r?rk)r3rrrWrVrs r%test_closing_closed_file_does_nothingz6FakeFileOpenTest.test_closing_closed_file_does_nothingsNN5)) YYy#Y 7 7  YYy6Y 2 2 ,b HHJJJ   R + + + , , , , , , , , , , , , , , , , , ,s=B##B'*B'c||d}|j|tjtjz}|j|}||dd5}|d| d|j dddn #1swxYwY| |j ||j |||j |dS)Nztest.txtr^F)closefdr)rAr3rBrrO_RDWRr get_objectrSrWrrE has_open_filerrG)rfilenamefdfile_objfps r+test_closing_file_with_different_close_modez>*-- W\\(BJ$: ; ;?--h77 YYr4Y / / ,2 HHW      T27 + + + , , , , , , , , , , , , , , , 55h??@@@  b 66x@@AAAAAs1C  CCc|d}||dd5}||d5}|d||d|dddn #1swxYwYddddS#1swxYwYdS)Nrr2r>r?rv)r3rrrirWrVrs rtest_truncate_flushes_zerosz,FakeFileOpenTest.test_truncate_flushes_zeross.NN5)) YYy#Y 7 7 229v66 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 2s6B<AB$ B<$B( (B<+B( ,B<<CCcd|d}||d5}|ddddn #1swxYwY||d5}|d|ddddS#1swxYwYdS)Nrr^rdr3rrSrWrVrs 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тестr^rrdrrs 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 0rcpdD]}||jj|d5}|ddddn #1swxYwY||jjd5}|d|dddn #1swxYwYdS)N)rr2rrrr>r?rrk)rrBdevnullrSrWrV)rrrYs rtest_write_devnullz#FakeFileOpenTest.test_write_devnulls#0 / /D47?D6BB a               47?V<< /  QVVXX... / / / / / / / / / / / / / / / / /s#A  A A 5)B**B. 1B. c|d}||dd5}|ddksJ dddn #1swxYwY||dd5}|ddksJ dddn #1swxYwY||d d5}|}|d ksJ ddddS#1swxYwYdS) Nr0r2zutf-16r?r*rvr2r12)r3rrSrV)rr8rYtexts 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)Ur#r$r%rr.r9rJrNrPr[rbrgrqrrrrrrrrrrrrrrrrrrrrrrrrrrr r rrr"r%r-r1rBrFrLr_rcrjrnrqrurxr{r~rrrrrrrrrrrrrrrrrrrrrrrrrr&r's@rr)r)/sM##########MMM <<<888 9 9 9333" C C C J J J > > >???0 6 6 6 + + ++++   +++ +++ NNN999 9 9 9 / / / + + + 3 3 3 4 4 4 3 3 3TTT2OOO KKK('''''' C C C333 444 DDD E E E888 9 9 9 @ @ @@@@ @@@$ 8 8 8 8 8 8888.GGG E E E G G G4>>><>>>0   @NNNMMMDDD 888888888,,,AAAEEE A A AAAA+++.   AAAAAAAAAAAAAAAAAA = = =<<<<<< " " ",,, B B B222000000///        rr)ceZdZdZdS)RealFileOpenTestcdSNTr r!s rrzRealFileOpenTest.use_real_fstrNr#r$r%rr rrrr#rrcJeZdZdZdZdZdZdZdZdZ dZ d Z d Z d S) FakeFileOpenWithOpenerTestc8|j||Sr)rBr)rrMflagss rr}z!FakeFileOpenWithOpenerTest.openersw||D%(((rc|d}||d||d|j5}|dksJ|t 5|ddddn #1swxYwYddddS#1swxYwYdS)Nr0rrlr>r@r})r3rmrr}rVrrrSrs rtest_use_opener_with_readz4FakeFileOpenWithOpenerTest.test_use_opener_with_reads8NN5))  V444 YYy6$+Y F F !6688v%%%%""7++                                   s6 5B9?B! B9!B% %B9(B% )B99B=B=c|d}||d||d5}|dksJ|t 5|ddddn #1swxYwYddddS#1swxYwYdS)Nr0rrlr>r?)r3rmrrVrrrSrs rtest_no_opener_with_readz3FakeFileOpenWithOpenerTest.test_no_opener_with_reads4NN5))  V444 YYy6Y 2 2 a6688v%%%%""7++                                   s65B39B B3B B3"B #B33B7:B7c|d}||d||dd|j5}|dksJ|ddksJ dddn #1swxYwY||d 5}|d ksJ ddddS#1swxYwYdS) Nr0rrlrr>rrrr?testbarr3rmrr}rVrSrs rtest_use_opener_with_read_plusz9FakeFileOpenWithOpenerTest.test_use_opener_with_read_plus sgNN5))  V444 YYy$ Y L L 'PQ6688v%%%%775>>Q&&&&& ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'YYy6Y 2 2 )a6688y((((( ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )$ 6BBB0CC Cc$|d}||d||dd|j5}|t 5|dddn #1swxYwY|ddksJ dddn #1swxYwY||d5}|dksJ ddddS#1swxYwYdS) Nr0rlr2r>rrrr?)r3rmrr}rrrVrSrs rtest_use_opener_with_writez5FakeFileOpenWithOpenerTest.test_use_opener_with_writesNN5))  U333 YYy#t{Y K K 'q""7++                 775>>Q&&&&& ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'YYy6Y 2 2 %a6688u$$$$$ % % % % % % % % % % % % % % % % % %sH B:&B; B:B B:B B::B>B>DD  D c|d}||d||dd|j5}|dksJ|dd ksJ dddn #1swxYwY||d 5}|dksJ ddddS#1swxYwYdS) Nr0rrlrr>rrkrrr?rrs rtest_use_opener_with_write_plusz:FakeFileOpenWithOpenerTest.test_use_opener_with_write_plusscNN5))  V444 YYy$ Y L L 'PQ6688r>>>>775>>Q&&&&& ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'YYy6Y 2 2 %a6688u$$$$$ % % % % % % % % % % % % % % % % % %rc"|d}||d||dd|j5}|ddksJ|t 5|dddn #1swxYwYdddn #1swxYwY||d5}|d ksJ ddddS#1swxYwYdS) Nr0rlrr>rrrr?foobar)r3rmrr}rSrrrVrs rtest_use_opener_with_appendz6FakeFileOpenWithOpenerTest.test_use_opener_with_append(sNN5))  U333 YYy#t{Y K K q775>>Q&&&&""7++                                YYy6Y 2 2 (a6688x''''' ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (sH 6B9B" B9"B& &B9)B& *B99B=B=DD Dc|d}||d||dd|j5}|dksJ|ddksJ dddn #1swxYwY||d 5}|d ksJ ddddS#1swxYwYdS) Nr0rlrr>rrkrrr?rrrs r test_use_opener_with_append_plusz;FakeFileOpenWithOpenerTest.test_use_opener_with_append_plus2scNN5))  U333 YYy$ Y L L 'PQ6688r>>>>775>>Q&&&&& ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'YYy6Y 2 2 (a6688x''''' ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (rc"|d}||d|t5||dd|jdddn #1swxYwY|d}||dd|j5}|d|j|ddksJ|t5| dddn #1swxYwYdddn #1swxYwY||d 5}| dksJ ddddS#1swxYwYdS) Nr0rrlrr>rrrr? r3rmrrrr}rWrrSrVrs r$test_use_opener_with_exclusive_writez?FakeFileOpenWithOpenerTest.test_use_opener_with_exclusive_write;sNN5))  V444   w ' ' K K IIivdkI J J J K K K K K K K K K K K K K K KNN5)) YYy#t{Y K K q   S!& ) ) )775>>Q&&&&""7++                                 YYy6Y 2 2 %a6688u$$$$$ % % % % % % % % % % % % % % % % % %s[A22A69A60AD9D" D9"D& &D9)D& *D99D=D=FF Fc|d}||d|t5||dd|jdddn #1swxYwY|d}||dd|j5}|d|j|ddksJ| d ksJ dddn #1swxYwY||d 5}| dksJ ddddS#1swxYwYdS) Nr0rrlzx+r>rrrrkr?rrs r#test_use_opener_with_exclusive_plusz>FakeFileOpenWithOpenerTest.test_use_opener_with_exclusive_plusJs#NN5))  V444   w ' ' L L IIit{I K K K L L L L L L L L L L L L L L LNN5)) YYy$ Y L L "PQ   T16 * * *775>>Q&&&&6688r>>>>> " " " " " " " " " " " " " " "YYy6Y 2 2 %a6688u$$$$$ % % % % % % % % % % % % % % % % % %s7A22A69A60ADDD0EE EN) r#r$r%r}rrrrrrrrrr rrrrs))))))%%%%%%(((((( % % % % % % % %rrceZdZdZdS)RealFileOpenWithOpenerTestcdSrr r!s rrz&RealFileOpenWithOpenerTest.use_real_fsZrrNrr rrrrYrrr)rz'open_code only present since Python 3.8ceZdZfdZfdZejeddZeje ddZ dZ dZ xZ S)FakeFilePatchedOpenCodeTestct|rtj|_dSt j|j_|j j|_dSr) rrrr open_coder ONrpatch_open_coderrs rrz!FakeFilePatchedOpenCodeTest.setUp`sR        ;\DNNN.7lDO +!0:DNNNrc|s d|j_tdS)NF)rrr rr.rs rr.z$FakeFilePatchedOpenCodeTest.tearDownhs=!! 4.3DO + rDifferent behavior in PyPyc|t5|dddddS#1swxYwYdSNrr TypeErrorrr!s rtest_invalid_pathz-FakeFilePatchedOpenCodeTest.test_invalid_pathm   y ) )   NN1                     >AAc:|d}||d|j|tj}||5}|dksJ ddddS#1swxYwYdS)Nr0rrlr)r3rmrBrO_RDONLYrrV)rr8rrYs rtest_open_code_fd_pypyz2FakeFilePatchedOpenCodeTest.test_open_code_fd_pypyrsNN5))  V444 W\\)R[ 1 1 ^^B   '16688w&&&&& ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's'BBBcd}|d}|||||5}|}dddn #1swxYwY|||dSNr]r0rlr3rmrrVrWrrar8rYrZs rtest_byte_contents_open_codez8FakeFilePatchedOpenCodeTest.test_byte_contents_open_codezONN5))  ^<<< ^^I & & !vvxxH                >22222A%%A),A)c|t}|t5||ddddS#1swxYwYdSr)rA__file__rrrr7s rtest_open_code_in_real_fsz5FakeFilePatchedOpenCodeTest.test_open_code_in_real_fss    w ' ' & & NN9 % % % & & & & & & & & & & & & & & & & & &sAA A) r#r$r%rr.rskipIfrrrrr r&r's@rrr^s;;;;; X_W:;;<;X_[">??''@?'333&&&&&&&rrceZdZdZdS)RealPatchedFileOpenCodeTestcdSrr r!s rrz'RealPatchedFileOpenCodeTest.use_real_fsrrNrr rrr#r#rrr#cXeZdZfdZejeddZdZxZ S)FakeFileUnpatchedOpenCodeTestct|rtj|_dS|jj|_dSr)rrrrrrrs rrz#FakeFileUnpatchedOpenCodeTest.setUpsF        ;\DNNN!0:DNNNrr c|t5|dddddS#1swxYwYdSrrr!s rrz/FakeFileUnpatchedOpenCodeTest.test_invalid_pathrrct}||5}|}dddn #1swxYwY|t |dkdS)Nd)rrrVrEr)rr8rYrZs rr z7FakeFileUnpatchedOpenCodeTest.test_open_code_in_real_fss ^^I & & !vvxxH                H +,,,,,s>AA) r#r$r%rrr!rrr r&r's@rr&r&sr;;;;;X_W:;;<;-------rr&ceZdZdZdZdS)RealUnpatchedFileOpenCodeTestcdSrr r!s rrz)RealUnpatchedFileOpenCodeTest.use_real_fsrrcd}|d}|||||5}|}dddn #1swxYwY|||dSrrrs rrz:RealUnpatchedFileOpenCodeTest.test_byte_contents_open_coderrN)r#r$r%rrr rrr,r,s233333rr,c\eZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdS)BufferingModeTestcl|d}||dd5}|d||d5}|}|d|dddn #1swxYwYddddS#1swxYwYdS)Nbuffertest.binr^rrxsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaardr3rrSrVrWrr8rYrrs rtest_no_bufferingz#BufferingModeTest.test_no_bufferings(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||dddddddS#1swxYwYdS)Nbuffertest.txtr2r>rrw)r3rr rr7s r)test_no_buffering_not_allowed_in_textmodez;BufferingModeTest.test_no_buffering_not_allowed_in_textmodesNN#344   z * * D D IIivI C C C D D D D D D D D D D D D D D D D D DsAAAc|d}||d5}|d||d5}|}|d|dddn #1swxYwYdddn #1swxYwY||d5}|}|d|ddddS#1swxYwYdS)Nr2r^aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaardrr4r5s rtest_default_buffering_no_flushz1BufferingModeTest.test_default_buffering_no_flushsNN#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)Nr2r^r;rd)r3rrSrYrVrWr5s 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)Nr2r^r3aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaardraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaair3rrSrVrWrr5s 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"ct|d}||ddd5}|d||dd5}|}|d t |dddn #1swxYwY|d ||dd5}|}|d t |dddn #1swxYwY|d ||dd5}|}|d t |dddn #1swxYwY|d ||dd5}|}|d t |dddn #1swxYwYddddS#1swxYwYdS)Nr2r2r>rvrwtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttestrr?r testi(testtesttesttesttesttesttesttesttesttestirGr5s r"test_writing_text_with_line_bufferz4BufferingModeTest.test_writing_text_with_line_buffers)NN#344 YYy#!Y D D . GGL ! ! !9cF;; ,qFFHH  CFF+++ , , , , , , , , , , , , , , , GGH   9cF;; .qFFHH  c!ff--- . . . . . . . . . . . . . . . GGK 9cF;; .qFFHH  c!ff--- . . . . . . . . . . . . . . . GGH   9cF;; .qFFHH  c!ff--- . . . . . . . . . . . . . . .# . . . . . . . . . . . . . . . . . .s.H-8B! H-!B% %H-(B% )0H-8D H-D! !H-$D! %0H-8F H-F H- F !0H-8H H-H H-H H--H14H1cz|d}||ddd5}|ddz||dd 5}|}|d t |dddn #1swxYwY|d||dd 5}|}|d t |dddn #1swxYwY|d ||dd 5}|}|d t |dddn #1swxYwY|d ||dd 5}|}|d t |dddn #1swxYwYddddS#1swxYwYdS)Nr2r2r>rvrwrirr?irKiirGr5s r(test_writing_large_text_with_line_bufferz:BufferingModeTest.test_writing_large_text_with_line_buffer s*NN#344 YYy#!Y D D 1 GGFUN # # #9cF;; 1qFFHH  Q000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 GGFOOO9cF;; 1qFFHH  Q000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 GGH   9cF;; 1qFFHH  Q000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 GGH   9cF;; 1qFFHH  Q000 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 11H0 8B$ H0$B( (H0+B( ,0H08D  H0 D$ $H0'D$ (0H08F H0F H0#F $0H08H H0H H0H H00H47H4cr|d}||dd5}|d||dd5}|}|dt |dddn #1swxYwY|d||dd5}|}|dt |dddn #1swxYwY|d ||dd5}|}|dt |dddn #1swxYwY|d||dd5}|}|dt |dddn #1swxYwYddddS#1swxYwYdS) Nr8r2r>r?testtesttesttesttestrrrKrLrGr5s r%test_writing_text_with_default_bufferz7BufferingModeTest.test_writing_text_with_default_buffer!s'NN#344 YYy#Y 7 7 ,1 GGJ   9cF;; ,qFFHH  CFF+++ , , , , , , , , , , , , , , , GGH   9cF;; ,qFFHH  CFF+++ , , , , , , , , , , , , , , , GGK 9cF;; ,qFFHH  CFF+++ , , , , , , , , , , , , , , , GGH   9cF;; ,qFFHH  CFF+++ , , , , , , , , , , , , , , ,# , , , , , , , , , , , , , , , , , ,s.H,8B  H, B$ $H,'B$ (0H,8D H,D H,#D $0H,8F H,F H,F 0H,8H H,H H,H H,,H03H0cz|d}||ddd5}|ddz||dd 5}|}|d t |dddn #1swxYwY|d ||dd 5}|}|d t |dddn #1swxYwY|d ||dd 5}|}|d t |dddn #1swxYwY|d ||dd 5}|}|d t |dddn #1swxYwYddddS#1swxYwYdS) Nr8r2r>rrwri@rr?rrrGr5s r&test_writing_text_with_specific_bufferz8BufferingModeTest.test_writing_text_with_specific_buffer8s$NN#344 YYy#!Y D D , GGC$J   9cF;; ,qFFHH  CFF+++ , , , , , , , , , , , , , , , GGFOOO9cF;; ,qFFHH  CFF+++ , , , , , , , , , , , , , , , GGFOOO9cF;; ,qFFHH  CFF+++ , , , , , , , , , , , , , , , GGFOOO9cF;; ,qFFHH  CFF+++ , , , , , , , , , , , , , , ,# , , , , , , , , , , , , , , , , , ,rPc|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)Nr2r^r@r3rArrdrCrBrErDirFirGr5s r test_append_with_specific_bufferz2BufferingModeTest.test_append_with_specific_bufferRs8NN#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) Nr*r0r1r^2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaardbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb2)rArset_disk_usagerBmakedirsrMrnrrSrYrVrE startswithrrrir5s r(test_failed_flush_does_not_truncate_filez:BufferingModeTest.test_failed_flush_does_not_truncate_filers  &&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) Nr*r0r1r^rr3rYrdrZ) rArr\rBr]rMrnrrSrVrWrrr5s r(test_failed_write_does_not_truncate_filez:BufferingModeTest.test_failed_write_does_not_truncate_filess  &&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"Fc|d}|||jj|d}t |jj}tjdz|z }dD]}| |dd5}t|D]}| d|zd z dddn #1swxYwY| |d5}| }| |t |dddn #1swxYwYdS) Nr0r1r )r iir@ir2r>r?rrz)r3r,rBrMrnrrrDEFAULT_BUFFER_SIZErrangerSrorW) rdir_pathr8 line_end_size char_count line_countrYiliness rtest_writing_over_buffer_endz.BufferingModeTest.test_writing_over_buffer_ends>>%(( !!!GL%%h :: DGO,, +s2]B 8 9 9J9cF;; 5qz**55AGGC*,t344445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 59v66 9!   SZZ888 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9  9 9s$.C  C C /8D33D7 :D7 N)r#r$r%r6r9r<r>rHrMrOrSrUrWr_rarlr rrr0r0s000DDD - - -111///<...01110,,,.,,,4///@(///"99999rr0ceZdZdZdS)RealBufferingTestcdSrr r!s rrzRealBufferingTest.use_real_fsrrNrr rrrnrnrrrnc^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.c|t|d|_dSr)rrr3r8rs rrzOpenFileWithEncodingTest.setUps+  ..rc~d}||jdd5}||dddn #1swxYwY||jd5}|}dddn #1swxYwY|||ddS)Nعلي باباr2arabicr?rd)rr8rSrVrWr`rrfrYrZs rrgz2OpenFileWithEncodingTest.test_write_str_read_bytess"( 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) Nrtr2cyrillicr?asciixmlcharrefreplacer@r{rz2علي بابا 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})rr8rrTrSrVrWrvs rtest_write_str_error_modesz3OpenFileWithEncodingTest.test_write_str_error_modess=( 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) Nrtr2rur?ryreplacer{backslashreplacez\xd9\xe4\xea \xc8\xc7\xc8\xc7)rr8rSrUnicodeDecodeErrorrVrDrWrvs 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)Nrtr2rur?r)rr8rSrVrWrvs 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é.rr_r?rzc6g|]}|Sr rrs rrzIOpenFileWithEncodingTest.test_create_file_with_append..rr)rr8rSrWrrZrprrs 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^Оригинальное содержаниеДополнительное содержаниеrrxrZr@rr?rvrzc6g|]}|Sr rrs rrzFOpenFileWithEncodingTest.test_append_existing_file.. rr)rmr8rrSrWrs rrz2OpenFileWithEncodingTest.test_append_existing_filesk l  (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!старое содержаниеrxrrr?rновое содержаниеr)rmr8rrWrVrSrrErrps rrz-OpenFileWithEncodingTest.test_open_with_wplus s  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малинка моя. rkrxrrr?r)rmr8rnrrrrrVrrWrrrrro)rrZrrps 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) Nrrxrrr?rr!ru@старое содержаниеновое содержание) rmr8rrrWrrSrrVrs rtest_append_with_aplusz/OpenFileWithEncodingTest.test_append_with_aplus+sl  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,старое содержание здесьrxrrr?rru новое содержаниеu+новое содержание здесь)rmr8rrrWrVrrSrs rrz-OpenFileWithEncodingTest.test_read_with_rplus9s\  NC    IIdncJIGG  YYt~tjY A A ^Y   KY^^M]M] ^ ^ ^ NN1    OO> ? ? ? NN1      JINNL\L\ ] ] ]  ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^s,BD  D D )r#r$r%__doc__rrgr}rrrrrrrrr&r's@rrqrqs""/////BBB   8EEE&111 + + + + + + Q Q QTTT$ s s s^^^^^^^rrqceZdZdZdS)OpenRealFileWithEncodingTestcdSrr r!s rrz(OpenRealFileWithEncodingTest.use_real_fsKrrNrr rrrrJrrrceZdZfdZdZdZdZdZej e j dkddZ ej e j d kd d Z d Zd ZxZS)FakeFileOpenLineEndingTestcHtdSrrrrs rrz FakeFileOpenLineEndingTest.setUpP  rc~|d}dD]#}|||||dd5}|ddg|dddn #1swxYwY||dd5}|d |dddn #1swxYwY||d 5}|||dddn #1swxYwY%dS) NrN)s1 2s1 2s1 2rlrr>rr@z1 r1 2rdrr3rmrrWrorV)rr8rZrYs rtest_read_default_newline_modez9FakeFileOpenLineEndingTest.test_read_default_newline_modeSsNN;// 5 5 5H   Y  : : :93@@ >A  %q{{}}=== > > > > > > > > > > > > > > >93@@ 3A  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 ;)D00D4 7D4 c*|d}||dd5}|ddddn #1swxYwY||d5}|d|jjzd z|dddn #1swxYwY||dd5}|d dddn #1swxYwY||d5}|d |jjzd z|ddddS#1swxYwYdS) NrNr2r>r?rrdr12z1 2s1 )r3rrSrWrBrencoderVrs 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 QsIAAA2A C  C C ,DDD0A FF F c,|d}d}|||||ddd5}|d|dddn #1swxYwY||ddd 5}|d|dddn #1swxYwY||ddd 5}|d|dddn #1swxYwY||ddd 5}|d|ddddS#1swxYwYdS) NrN1 2 3 4rlrr>rkrr@r|1 2 3 4 rz r3rmrrWrVrr8 file_contentsrYs rtest_read_with_newline_argz5FakeFileOpenLineEndingTest.test_read_with_newline_argjsiNN;// '  ];;; YYysVRY H H 7A   ^QVVXX 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 YYysVTY J J 7a   ^QVVXX 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 YYysVTY J J 7a   ^QVVXX 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 YYysVVY L L 7PQ   ^QVVXX 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7sH)A==BB!)CCC:)D//D36D3)F  F F c<|d}d}|||||ddd5}|gd|dddn #1swxYwY||ddd 5}|gd |dddn #1swxYwY||ddd 5}|gd |dddn #1swxYwY||ddd 5}|ddg|ddddS#1swxYwYdS)NrNrrlrr>rkr)1 2 z3 4r)z1 z 2 3 rrz)rrz3 4rrz2 3 4r3rmrrWrors rtest_readlines_with_newline_argz:FakeFileOpenLineEndingTest.test_readlines_with_newline_argwsNN;// '  ];;; YYysVRY H H JA   9991;;== I I I J J J J J J J J J J J J J J J YYysVTY J J Fa   555q{{}} E E E F F F F F F F F F F F F F F F YYysVTY J J Fa   555q{{}} E E E F F F F F F F F F F F F F F F YYysVVY L L BPQ   gy11;;== A A A B B B B B B B B B B B B B B B B B BsH+A??BB#+CC!C>+D55D9<D9+FFF)r zU flag no longer supportedcz|d}d}|||||ddd5}|d|dddn #1swxYwY||ddd5}|d|dddn #1swxYwY||d dd5}|d|ddddS#1swxYwYdS) NrNrrlrr>rrrUrrs r.test_read_with_ignored_universal_newlines_flagzIFakeFileOpenLineEndingTest.test_read_with_ignored_universal_newlines_flagsNN;// '  ];;; YYysVTY J J 7a   ^QVVXX 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 YYysVTY J J 7a   ^QVVXX 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 YYysVTY J J 7a   ^QVVXX 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7s6)A==BB!)CCC:)D00D47D4)r zU flag still supportedc|d}d}||||t5||dddddddS#1swxYwYdS)NrNrrlrr>rr)r3rmrr r)rr8rs r*test_universal_newlines_flag_not_supportedzEFakeFileOpenLineEndingTest.test_universal_newlines_flag_not_supportedsNN;// '  ];;;   z * * J J IIicFDI I I I J J J J J J J J J J J J J J J J J Js A00A47A4c|d}||ddd5}|ddddn #1swxYwY||d5}|d |dddn #1swxYwY||ddd 5}|ddddn #1swxYwY||d5}|d |dddn #1swxYwY||ddd 5}|ddddn #1swxYwY||d5}|d |dddn #1swxYwY||ddd 5}|ddddn #1swxYwY||d5}|d|ddddS#1swxYwYdS)NrNr2r>rk)r@r|rrdrrrzrs 1 2 3 4rs1 2 3 4rrs rtest_write_with_newline_argz6FakeFileOpenLineEndingTest.test_write_with_newline_args9NN;// YYy#Y C C $q GGN # # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ YYytY , , 8   _affhh 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8YYy#Y E E $ GGN # # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ YYytY , , 8   _affhh 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8YYy#Y G G $1 GGN # # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ YYytY , , <   0!&&(( ; ; ; < < < < < < < < < < < < < < <YYy#Y E E $ GGN # # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ YYytY , , 8   _affhh 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8sAAA3)B((B,/B, C..C25C2)EE  E )F  FF-)G""G&)G&H((H,/H, )JJJcB|d}dfd}t|}||||d5}||t|ddddS#1swxYwYdS)NrNs c3Kd}|tkrSd|}|dkr|dVdS||dzV|dz}|tkQdSdS)Nr r~rv)rfind)pxixrs r chunk_linezCFakeFileOpenLineEndingTest.test_binary_readline..chunk_linesBs=))))"''r2288',,,,F#BaK0000!V s=))))))))rrlrdr)r3listrmrrW)rr8rchunked_contentsrYrs @rtest_binary_readlinez/FakeFileOpenLineEndingTest.test_binary_readlinesNN;// 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)r#r$r%rrrrrrr!sys version_inforrrrr&r's@rrrOs 5 5 5 Q Q Q 7 7 7 B B BX_S%02NOO 7 7PO 7X_S%/1IJJJJKJJ888,8888888rrceZdZdZdS)RealFileOpenLineEndingTestcdSrr r!s rrz&RealFileOpenLineEndingTest.use_real_fsrrNrr rrrrrrrc<eZdZfdZdZdZdZdZdZxZ S)&FakeFileOpenLineEndingWithEncodingTestcHtdSrrrs rrz,FakeFileOpenLineEndingWithEncodingTest.setUprrc|d}dD]}|||d||dd5}|ddg|dddn #1swxYwY||dd5}|d |dddn #1swxYwYdS) NrN) раз двараз дваu раз дваrxrrruраз дваrr)rr8rZrps rtest_read_standard_newline_modezFFakeFileOpenLineEndingWithEncodingTest.test_read_standard_newline_modesNN;// 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) NrNr2rxr?rrdruразrrраз )r3rrSrWrrBrrVrs rrzHFakeFileOpenLineEndingWithEncodingTest.test_write_universal_newline_modesNN;// 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) NrN"раз два три четыреrxrrrkrr|r@rrzrrrs 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)NrNrrxrrrkr)раз два uтри четыреr)ru два три rrz)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)NrNr2rkrx)r|r@rrdrrzru$раз два три четыреru"раз два три четыре)r3rrSrWrrVrs 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 dsAAA3r?)r3rmrBrrrWr9)rr8rs rtest_open_with_file_descriptorz9OpenWithFileDescriptorTest.test_open_with_file_descriptor!szNN6622  ### W\\)RZ 0 0 TYYr3Y@@GGIIJJJJJrc|dd}|||j|tj}||ddd}|||jj|||ddd}|| |jj|dS)Nrrrr>F)r@rT) r3rmrBrrrassertIsNotNoner open_files assertIsNone)rr8rr s r!test_closefd_with_file_descriptorz >   $/4R899999rN)r#r$r%rrr rrrr s5KKK : : : : :rrceZdZdZdS)OpenWithRealFileDescriptorTestcdSrr r!s rrz*OpenWithRealFileDescriptorTest.use_real_fs4rrNrr rrrr3rrrc2eZdZfdZdZdZddZxZS)OpenWithFlagsTestBasect|d|_d|_dS)NrN)rrr3r8rrs rrzOpenWithFlagsTestBase.setUp9s5   44!rcBd|i}d|vrd|d<|j|jfi|S)Nrrr>r@)rr8)rrkwargss r open_filezOpenWithFlagsTestBase.open_file>s:$ d??!'F: ty226222rcj||j|}|dd|S)Nrrr)rr8r)rrrps ropen_file_and_seekz(OpenWithFlagsTestBase.open_file_and_seekDs3IIdn4I88 q!rrNc||j|d|i}|r||d<|j|jfi|S)Nrr@)rSrrrr8)rrprr@argss rwrite_and_reopen_filez+OpenWithFlagsTestBase.write_and_reopen_fileIs^*+++~  ('D ty004000r)rN)r#r$r%rrrrr&r's@rrr8sj""""" 333  11111111rrc0eZdZfdZdZdZdZxZS)OpenWithBinaryFlagsTestctd|_||j|jdS)Nsreal binary contents: rl)rrrrmr8rs rrzOpenWithBinaryFlagsTest.setUpSs@  > $2DEEEEErc|d5}||j|ddddS#1swxYwYdS)Nrd)rrWrrVrs rtest_read_binaryz(OpenWithBinaryFlagsTest.test_read_binaryXs ^^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)Nr^rrdrrryr) rrWrrrrVrrr)rrYrf2f3s rtest_write_binaryz)OpenWithBinaryFlagsTest.test_write_binary\sq  $ $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+brrdr)rrWrrrrV)rrYrs rtest_write_and_read_binaryz2OpenWithBinaryFlagsTest.test_write_and_read_binaryisD  $ $U + + @q   Q ) ) )++AD+99 @R  !3RWWYY??? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @s6AB(.B B(B B(B B((B,/B,)r#r$r%rrrr r&r's@rrrRstFFFFF CCC & & &@@@@@@@rrceZdZdZdS)RealOpenWithBinaryFlagsTestcdSrr r!s rrz'RealOpenWithBinaryFlagsTest.use_real_fsqrrNrr rrr r prrr c0eZdZfdZdZdZdZxZS)OpenWithTextModeFlagsTestcpt|dSr)rrsetUpFileSystemrs rrzOpenWithTextModeFlagsTest.setUpvs,   rc|d|_d|_d|_d|_||j|jdS)NrNs two linesz two linesz two linesrl)r3r8roriginal_contentsconverted_contentsrmr!s rrz)OpenWithTextModeFlagsTest.setUpFileSystemzsQ 44,!/". $2DEEEEErc||d5}||j|dddn #1swxYwY|d5}||j|ddddS#1swxYwYdS)z#Test that text mode flag is ignoredrNrt)rprrWrrV)rrYs rtest_read_textz(OpenWithTextModeFlagsTest.test_read_textsP !!! ^^C  @A   T4affhh ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ^^D ! ! @Q   T4affhh ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @s#.A$$A(+A(.B??CCc|t5|dddddS#1swxYwYdS)Nzw+bt)rr rr!s r test_mixed_text_and_binary_flagsz:OpenWithTextModeFlagsTest.test_mixed_text_and_binary_flagss   z * * , ,  # #F + + + , , , , , , , , , , , , , , , , , ,r)r#r$r%rrrrr&r's@rrruskFFF@@@,,,,,,,rrceZdZdZdS)RealOpenWithTextModeFlagsTestcdSrr r!s rrz)RealOpenWithTextModeFlagsTest.use_real_fsrrNrr rrrrrrrc,eZdZdZdZdZdZdZdS)OpenWithInvalidFlagsTestc|t5|ddddddS#1swxYwYdS)NrNRrr rr!s rtest_capital_rz'OpenWithInvalidFlagsTest.test_capital_r   z * * ( ( IIk3 ' ' ' ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (?AAc|t5|ddddddS#1swxYwYdS)NrNWr r!s rtest_capital_wz'OpenWithInvalidFlagsTest.test_capital_wr"r#c|t5|ddddddS#1swxYwYdS)NrNAr r!s rtest_capital_az'OpenWithInvalidFlagsTest.test_capital_ar"r#c|t5|ddddddS#1swxYwYdS)NrNur r!s r test_lower_uz%OpenWithInvalidFlagsTest.test_lower_ur"r#c|t5|ddddddS#1swxYwYdS)NrNrwr r!s r test_lower_rwz&OpenWithInvalidFlagsTest.test_lower_rws   z * * ) ) IIk4 ( ( ( ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )r#N)r#r$r%r!r&r)r,r/r rrrrs_(((((((((((()))))rrceZdZdZdS)OpenWithInvalidFlagsRealFsTestcdSrr r!s rrz*OpenWithInvalidFlagsRealFsTest.use_real_fsrrNrr rrr1r1rrr1ceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdS)ResolvePathTestc||dd5}|dddddS#1swxYwYdS)Nr2r>r?r)rrS)r file_namer s r write_to_filezResolvePathTest.write_to_files YYy#Y 7 7 2 HHSMMM                  s<AAc|t5|dddddddS#1swxYwYdS)Nr2r>r?)rrrr!s r$test_none_filepath_raises_type_errorz4ResolvePathTest.test_none_filepath_raises_type_errors   y ) ) 2 2 IIdC&I 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2AAAc|t5|dddddddS#1swxYwYdS)Nrkr2r>r?)rrrr!s r#test_empty_filepath_raises_io_errorz3ResolvePathTest.test_empty_filepath_raises_io_errors   w ' ' 0 0 IIb#I / / / 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0r:c|d}||||jj|dSr)r3r7rErBrMrFr7s rtest_normal_pathz ResolvePathTest.test_normal_pathsQNN5))  9%%%  ++I6677777rct|dd}|dd}||d||||jj||d|j |tj dS)Nr0rrrv) r r3rr7rErBrMrFrWrST_SIZEr final_targetrs rtest_link_within_same_directoryz/ResolvePathTest.test_link_within_same_directorys%'''~~eU33 NN5%00  Iu--- 9%%%  ++L99::: DGLL66t|DEEEEErc@t|ddd}|dd}|||dd}|jjdd}|||||||jj || d|j |tj ||jj |||j |tj tjzdS)Nr0rbiprrv)r r3r,rBrMrnrr7rErFrWrr@ST_MODEr)rrBrfr target_paths rtest_link_to_sub_directoryz*ResolvePathTest.test_link_to_sub_directorysE%'''~~eUE:: >>%// !!!NN5%00 gl''u55  I{333 9%%%  ++L99::: DGLL66t|DEEE  ++H55666  X..t|>%>>???  ++L99::: DGLL66t|DEEE  ++I6677777rct|ddd}||dd|dd}|||||||jj|dSNr0rrEr) r r3r,rr7rErBrMrFrAs rtest_link_to_absolute_pathz*ResolvePathTest.test_link_to_absolute_paths%'''~~eUE::  ue44555NN5%00  I|444 9%%%  ++L99:::::rcPt|ddd}||dd|dd}|||jjddd|js3|||jj || |jj ||j |d||d|j | |jj d|js3|||jj d||| |jj|dS)Nr0rrEr.)r r3r,rrBrMrnrrrealpathrEislinkrgetcwdr7rFrAs 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:::::rct|ddd}||dd|dd}||||js3|||jj|| |jj ||j |d||d|j | |jj d|js3|||jjd| || |jj|dSrM)r r3r,rrrrBrMrQrErRrrSr7rFrAs 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)Nrr0rrJ) rr3r,rrBrMrnrrQrrS)r dir1_path dir2_pathrs 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 $'..*:*:;;;;;rct|dd}||d||ddd||dd||dd}|d|dS) Nr0rlinkrrr>r?r)r r3rr7rrWrV)rrr s rtest_read_link_to_linkz&ResolvePathTest.test_read_link_to_link2s &'''NN5%00  Iv... DNN5&995AAA 4>>%77888 YYy#Y 7 7 bggii(((((rct|dd}|dd}||d||ddd||||jj|dS)Nr0rrr`)r r3rr7rErBrMrFrAs rtest_write_link_to_linkz'ResolvePathTest.test_write_link_to_link=s%'''~~eU33 NN5%00  Iv... DNN5&995AAA 9%%%  ++L99:::::rc t|j|dddd||ddd|js||dd|jj|dd||ddd|jj|ddd|dddd}||d| |jj || |jj |dddd|ddddd}| |jj || |ddddd| |jj |dS)Nrlink1clink2rde) r rBr]r3rrrrMrQrErFrGr7)rrrBs rtest_multiple_linksz#ResolvePathTest.test_multiple_linksFs%''' Wc7CCDDD DNN344g>>>   # #sG,, %%dnnS#&>&>??     # #sGS11 %%dnnS#s&C&CDD    NN3c::  Iw///  ++I66777  ++DNN3S#,N,NOOPPP~~c7C#FF  ,,\::;;; 4>>#sCcBBCCC  ++L99:::::rct||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)r0rrEr)rvrrvr)rrrrN) r r,r3r7rrButimerrWst_atimest_mtime)rrG link_namers rtest_utime_linkzResolvePathTest.test_utime_link`s8%''' ue44555nnUE599  ;'''NN5%00  I{333  i((( W\\) $ $ BK((( BK(((  i((( W\\) $ $ BK((( BK(((((rc||dd}||d||jj|dS)Nrloop)rr3rrGrBrMrF)rrs rtest_too_many_linksz#ResolvePathTest.test_too_many_linksrsi NN3//  Iv... ,,Y7788888rc|||d|jddS)Nz C:!foo!barz C:!foo!!barrprArWr resolve_pathr!s r%test_that_drive_letters_are_preservedz5ResolvePathTest.test_that_drive_letters_are_preservedxsR !!!  t'C'CM'R'RSSSSSrc|||d|jddS)Nz !!foo!bar!bazz!!foo!bar!baz!!rur!s r!test_that_unc_paths_are_preservedz1ResolvePathTest.test_that_unc_paths_are_preserved}s^ !!!   T_99:KLL     rN)r#r$r%r7r9r<r>rCrHrKrNrTrVrZr^rarcrjrprsrwryr rrr4r4s:222000888 FFF M M M 8 8 8;;;;;;&;;;&===" < < < ) ) );;;;;;4)))$999 TTT      rr4ceZdZdZdS)RealResolvePathTestcdSrr r!s rrzRealResolvePathTest.use_real_fsrrNrr rrr{r{rrr{ceZdZdZdS) SkipOpenTestctdg5td}||dddddS#1swxYwYdS)Nskipped_pathlib)additional_skip_nameszskipped_pathlib.pyz## Licensed under the Apache License)r r rEr^)rrZs rtest_open_in_skipped_modulez(SkipOpenTest.test_open_in_skipped_modules ,=+> ? ? ? X X !566H OOH//0UVV W W W X X X X X X X X X X X X X X X X X Xs8AAAN)r#r$r%rr rrr~r~s(XXXXXrr~__main__);rr5rrBrrr+rpyfakefsrrpyfakefs.helpersrrrpyfakefs.fake_ior!pyfakefs.fake_filesystem_unittestr r pyfakefs.tests.skipped_pathlibr pyfakefs.tests.test_utilsr r rr)rrrr!rrr#r&r,r0rnrqrrrrrrrrrr rrrr1r4r{TestCaser~r#mainr rrrs -, --------BBBBBBBBBB))))))@@@@@@@@444444SSSSSSSS     >   A A A A A +A A A H' ^%^%^%^%^%!5^%^%^%B!; !F*,UVV'&'&'&'&'&"6'&'&WV'&T"= !F*,UVV-----$8--WV-* 3 3 3 3 3$A 3 3 3t9t9t9t9t9,t9t9t9n) Z^Z^Z^Z^Z^3Z^Z^Z^z#; p8p8p8p8p8!5p8p8p8f!; QdQdQdQdQd-AQdQdQdh-S :::::!5:::&%9 1111101114@@@@@3@@@<"9 ,,,,, 5,,,2$= )))))3))),%= T T T T T *T T T n/ XXXXX8$XXX zHMOOOOOr