zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
U
Z±d‚ã@sddlZddlZddlZddlmZddlmZddlZddlmZddl    m
Z
m Z m Z ej dd„ƒZej dd    „ƒZej d
d „ƒZd d „Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Zd(d)„Zd*d+„Z dS),éN)Úmock)Úsentinel)Ú_core)ÚAsyncIOWrapperÚ_FILE_SYNC_ATTRSÚ_FILE_ASYNC_METHODScCst | d¡¡S)NÚtest)ÚosÚfspathÚjoin)Ztmpdir©r úNd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\trio/tests/test_file_io.pyÚpath srcCstjtjdS)N)Zspec_set)rZMockÚioÚStringIOr r r r ÚwrappedsrcCs
t |¡S©N)ÚtrioÚ    wrap_file)rr r r Ú
async_filesrc    Cs&t t¡t tƒ¡W5QRXdSr)ÚpytestÚraisesÚ    TypeErrorrrÚstrr r r r Útest_wrap_invalids rc    CsfGdd„dƒ}|ƒ}t|tjƒr$t‚t |¡}t|tƒs<t‚|`t     t
¡t |ƒ¡W5QRXdS)Nc@seZdZdd„Zdd„ZdS)z&test_wrap_non_iobase.<locals>.FakeFilecSsdSrr ©Úselfr r r Úclose#sz,test_wrap_non_iobase.<locals>.FakeFile.closecSsdSrr rr r r Úwrite&sz,test_wrap_non_iobase.<locals>.FakeFile.writeN)Ú__name__Ú
__module__Ú __qualname__rrr r r r ÚFakeFile"sr") Ú
isinstancerÚIOBaseÚAssertionErrorrrrrrrr)r"rrr r r Útest_wrap_non_iobase!s
 r&cCs|j|kst‚dSr)rr%©rrr r r Útest_wrapped_property5sr(csFt t¡}t‡‡fdd„|Dƒƒs&t‚t‡‡fdd„|DƒƒrBt‚dS)Nc3s&|]}|tˆƒkr|tˆƒkVqdSr©Údir©Ú.0Úattrr'r r Ú    <genexpr>=s z+test_dir_matches_wrapped.<locals>.<genexpr>c3s&|]}|tˆƒkr|tˆƒkVqdSrr)r+r'r r r.?s )rÚunionrÚallr%Úany)rrÚattrsr r'r Útest_dir_matches_wrapped9s
 
ÿr3c    CsRGdd„dtjƒ}t |ƒ¡}t|jdƒs.t‚t t    ¡t
|dƒW5QRXdS)Nc@seZdZdd„ZdS)z0test_unsupported_not_forwarded.<locals>.FakeFilecSsdSrr rr r r Úunsupported_attrFszAtest_unsupported_not_forwarded.<locals>.FakeFile.unsupported_attrN)rr r!r4r r r r r"Esr"r4) rÚ    RawIOBaserrÚhasattrrr%rrÚAttributeErrorÚgetattr)r"rr r r Útest_unsupported_not_forwardedDs
  r9cCs4tD]*}|t|ƒkrqt||ƒt||ƒkst‚qdSr)rr*r8r%©rrÚ    attr_namer r r Útest_sync_attrs_forwardedQs r<c
Cs\tD]R}|t|ƒkrqt t¡t||ƒW5QRXt t¡t||ƒW5QRXqdSr)rr*rrr7r8r:r r r Útest_sync_attrs_match_wrapperYs   r=cCs4tD]*}|t|ƒkrqt||ƒt||ƒkst‚qdSr)rr*r8r%)rÚ    meth_namer r r Ú!test_async_methods_generated_oncees r?cCs4|jjdkst‚|jjdks t‚d|jjks0t‚dS)NÚreadzAsyncIOWrapper.readzio.StringIO.read)r@rr%r!Ú__doc__)rr r r Útest_async_methods_signaturemsrBcÃsntD]d}|t|ƒkrqt||ƒ}t||ƒ}|tjtjdIdH}|jtjtjd||ƒks`t‚| ¡qdS)N)Úkeyword)    rr*r8rZargumentrCZassert_called_once_withr%Z
reset_mock)rrr>ÚmethZ wrapped_methÚvaluer r r Útest_async_methods_wrapus 
 
ÿrFc
Ãs\tD]R}|t|ƒkrqt t¡t||ƒW5QRXt t¡t||ƒW5QRXqdSr)rr*rrr7r8)rrr>r r r Ú test_async_methods_match_wrapper‡s   rGcÃs2t |d¡IdH}t|tƒs t‚| ¡IdHdS©NÚw)rÚ    open_filer#rr%Úaclose©rÚfr r r Ú    test_open“srNc
ÃsRt |d¡IdH4IdHš}t|tƒs*t‚|jr4t‚W5QIdHRX|jsNt‚dSrH)rrJr#rr%ÚclosedrLr r r Útest_open_context_manager›srPcÃsXt t d¡¡}t|jƒ}g}|j d¡|2z3dHW}| |¡q.6||ksTt‚dS)Nz test
foo
barr)    rrrrÚlistrÚseekÚappendr%)rÚexpectedÚresultÚliner r r Útest_async_iter£s
 rWc
ÃsŠt ¡n}t |d¡IdH}| ¡t tj¡| d¡IdHW5QRXt tj¡|     ¡IdHW5QRXW5QRX|j
s†t ‚dS)NrIÚa) rZ CancelScoperrJÚcancelrrZ    CancelledrrKrOr%)rZcscoperMr r r Útest_aclose_cancelled¯s
"rZcÃsJt ¡}t |¡}t |¡}| ¡IdH}t|tƒs8t‚|j    |ksFt‚dSr)
rÚBytesIOÚBufferedReaderrrÚdetachr#rr%r)ÚrawZbufferedrZdetachedr r r Útest_detach_rewraps_asynciobase½s 
 
r_)!rr    rZunittestrZ unittest.mockrrrZ trio._file_iorrrZfixturerrrrr&r(r3r9r<r=r?rBrFrGrNrPrWrZr_r r r r Ú<module>s: