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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
U
Þ=®d¶)ã@sîddlmZmZddlmZmZzddlmZWn ek
rPddl    mZYnXzddl
m Z m Z m Z Wn(ek
r’ddlm Z m Z m Z YnXddlmZmZddlmZdd    lmZGd
d „d eƒZGd d „d eƒZedkrêeƒdS)é)ÚStringIOÚ TextIOWrapper)ÚTestCaseÚmain)Ú    ExitStack)Ú    MagicMockÚMockÚpatché)Ú AnsiToWin32Ú StreamWrapper©Ú"ENABLE_VIRTUAL_TERMINAL_PROCESSINGé)Úosnamec@s<eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd S)ÚStreamWrapperTestcCs&tƒ}t|dƒ}| |j|jk¡dS©N)rr Ú
assertTrueZ random_attr)ÚselfÚ
mockStreamÚwrapper©rúVd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\colorama/tests/ansitowin32_test.pyÚ testIsAProxys
zStreamWrapperTest.testIsAProxycCs8tƒ}tƒ}t||ƒ}| d¡| |jjdif¡dS)NÚhello)r)rr ÚwriterÚ    call_args)rrÚ mockConverterrrrrÚtestDelegatesWrites
 
 
z$StreamWrapperTest.testDelegatesWritec    Cs<tƒ}tƒ}t||ƒ}| d¡W5QRX| |j¡dS©Nr)rrr rrÚclosed)rrÚsÚfprrrÚtestDelegatesContext"s
 z&StreamWrapperTest.testDelegatesContextc
CsPtƒ}tƒ|j_tƒ}| t¡&}t||ƒ}| d¡W5QRXW5QRXdSr)rÚAttributeErrorÚ    __enter__Z side_effectrÚ assertRaisesr r)rrrÚexcinforrrrÚtestProxyNoContextManager)s 
  z+StreamWrapperTest.testProxyNoContextManagercCs*tƒ}| ¡t|dƒ}| |jd¡dS©NT)rÚcloser Ú assertEqualr ©rÚstreamrrrrÚ+test_closed_shouldnt_raise_on_closed_stream1s
z=StreamWrapperTest.test_closed_shouldnt_raise_on_closed_streamcCs.ttƒƒ}| ¡t|dƒ}| |jd¡dSr))rrÚdetachr r+r r,rrrÚ-test_closed_shouldnt_raise_on_detached_stream7s
 
z?StreamWrapperTest.test_closed_shouldnt_raise_on_detached_streamN)    Ú__name__Ú
__module__Ú __qualname__rrr#r(r.r0rrrrrs rc@s¶eZdZdd„Zeddƒeddd„ƒdd    „ƒƒZd
d „Zd d „Zdd„Zd+dd„Z    dd„Z
dd„Z dd„Z dd„Z dd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„ZdS),ÚAnsiToWin32TestcCs8tƒ}tƒ}t||d}| |j|¡| |j|¡dS)N)Ú    autoreset)rr r+Úwrappedr5)rÚ
mockStdoutÚautor-rrrÚtestInit?s
 zAnsiToWin32Test.testInitúcolorama.ansitowin32.wintermNú colorama.ansitowin32.winapi_testcGsdSr)r©Ú_rrrÚ<lambda>GózAnsiToWin32Test.<lambda>c    Cs2tdƒ tƒ}t|ƒ}| |j¡W5QRXdS)NÚnt)rrr rÚstrip©rr7r-rrrÚtestStripIsTrueOnWindowsFs
z(AnsiToWin32Test.testStripIsTrueOnWindowsc    Cs6tdƒ$tdd}t|ƒ}| |j¡W5QRXdS)NÚposixF)r )rrr Ú assertFalserArBrrrÚtestStripIsFalseOffWindowsNs
 
z*AnsiToWin32Test.testStripIsFalseOffWindowscCsVtƒ}t|ƒ}tƒ|_tƒ|_d|_| d¡| |jjj¡| |jj    dif¡dS)NTÚabc©rG)
rr r6Úwrite_and_convertrArrEÚcalledr+rrBrrrÚtestWriteStripsAnsiTs
z#AnsiToWin32Test.testWriteStripsAnsicCs\tƒ}t|ƒ}tƒ|_tƒ|_d|_d|_| d¡| |jj¡|     |jjj
dif¡dS)NFrGrH) rr r6rIrAÚconvertrrErJr+rrBrrrÚtestWriteDoesNotStripAnsi`s
z)AnsiToWin32Test.testWriteDoesNotStripAnsiTcCsDttƒƒ}||_tƒ|_||_tƒ|_| d¡| |jj|¡dS)NrG)    r rrLÚ    reset_allr5Úwintermrr+rJ)rrLr5r-rrrÚassert_autoresetsms
 
z!AnsiToWin32Test.assert_autoresetscCs8|jdd|jdd|jddd|jddddS)NT©rLF)rLr5)rP)rrrrÚtestWriteAutoresetsxs  z#AnsiToWin32Test.testWriteAutoresetscCs.ttƒƒ}| d¡| |jjjdif¡dS)NrGrH)r rrIr+r6rr©rr-rrrÚ"testWriteAndConvertWritesPlainText~s
 
z2AnsiToWin32Test.testWriteAndConvertWritesPlainTextc Cstttƒƒ}tƒ|_ddddddddd    d
d d d g }|D]:}|jj ¡| |¡| dd„|jjjDƒddg¡q4dS)Nz    abcdefz
abcdefz
abcdefz abcdefz abcdefz abcdefz abcdefz abcdefzabcdefzabcdefz    abcdefz
abcdefúabcdefcSsg|] }|d‘qS©rr)Ú.0ÚargsrrrÚ
<listcomp>™szIAnsiToWin32Test.testWriteAndConvertStripsAllValidAnsi.<locals>.<listcomp>rH)Údef)    r rÚ
call_win32r6rÚ
reset_mockrIr+Úcall_args_list)rr-ÚdataÚdatumrrrÚ%testWriteAndConvertStripsAllValidAnsiƒs.
ó 
þz5AnsiToWin32Test.testWriteAndConvertStripsAllValidAnsicCs0ttƒƒ}tƒ|_| d¡| |jjj¡dS)Nz
)r rr[rIrEr6rrJrSrrrÚ%testWriteAndConvertSkipsEmptySnippetss
 
z5AnsiToWin32Test.testWriteAndConvertSkipsEmptySnippetscCsrttƒƒ}d|_tƒ|_tdd|_dddddd    œ}| ¡D]0\}}|j ¡| |¡| |jj    d
|¡q<dS) NTÚparams)Ú return_value)Úarb)Úbrb)Úcrb)ÚGrb)ÚHrb)z    abcdefz abcdefz
abcdefzabcdefrUr)
r rrLr[Úextract_paramsÚitemsr\rIr+r©rr-r^r_ÚexpectedrrrÚ1testWriteAndConvertCallsWin32WithParamsAndCommand£s
 û
 
zAAnsiToWin32Test.testWriteAndConvertCallsWin32WithParamsAndCommandcCs"tƒ}t|ƒ}| ¡| ¡dSr)rr r*rN©rr-Ú    converterrrrÚ3test_reset_all_shouldnt_raise_on_closed_orig_stdout´szCAnsiToWin32Test.test_reset_all_shouldnt_raise_on_closed_orig_stdoutc
Csbtƒ}| ¡tddƒ(tddd„ƒt|ƒ}W5QRXW5QRX| |j¡| |j¡dS)Núcolorama.ansitowin32.os.namer@r;cSsdSr)rrrrrr>Àr?zPAnsiToWin32Test.test_wrap_shouldnt_raise_on_closed_orig_stdout.<locals>.<lambda>)rr*r    r rrArErLrnrrrÚ.test_wrap_shouldnt_raise_on_closed_orig_stdout»sÿ þ z>AnsiToWin32Test.test_wrap_shouldnt_raise_on_closed_orig_stdoutc
CsVtddƒ*tddd„ƒttƒƒ}W5QRXW5QRX| |j¡| |j¡dS)Nrqr@r;cSsdSr)rrrrrr>Èr?zQAnsiToWin32Test.test_wrap_shouldnt_raise_on_missing_closed_attr.<locals>.<lambda>)r    r ÚobjectrrArErL)rrorrrÚ/test_wrap_shouldnt_raise_on_missing_closed_attrÅsÿ þ z?AnsiToWin32Test.test_wrap_shouldnt_raise_on_missing_closed_attrcCsHttƒƒ}ddddddddœ}| ¡D]\}}| | d|¡|¡q&dS)NrV)r
)rr)éiÈ)é éé!é,é7)Úz;;Ú2z;;002;;z0;1z ;;003;;456;;z11;22;33;44;55Úm)r rrjr+rirkrrrÚtestExtractParamsÍs
ù    z!AnsiToWin32Test.testExtractParamscshtƒ‰tˆƒ}‡fdd„f‡fdd„f‡fdd„fdœ|_| dd¡| dd    „ˆjDƒd
d d g¡dS) NcsˆdƒS)Nrvr©r=Ú__©Zlistenerrrr>ßr?z9AnsiToWin32Test.testCallWin32UsesLookup.<locals>.<lambda>csˆdƒS)Nrwrrrrrr>àr?csˆdƒS)Nrxrrrrrr>ár?)rr
rur})rurécr
cSsg|]}|dd‘qSrVr)rWrdrrrrYåsz;AnsiToWin32Test.testCallWin32UsesLookup.<locals>.<listcomp>rxrvrw)rr Ú win32_callsr[r+r]rSrrrÚtestCallWin32UsesLookupÛs   ý þz'AnsiToWin32Test.testCallWin32UsesLookupc    Cs^tƒ}t|dd}tdƒ:}dddddd    g}|D]}| |¡q0| |jjd
¡W5QRXdS) NTrQr:z]0z]0;fooz]0;colorama_test_titlez]1;colorama_test_titlez]2;colorama_test_titlezC];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;r
)rr r    rr+Ú    set_titleZ
call_count)rr7r-rOr^ÚcoderrrÚtest_osc_codesès 
ú zAnsiToWin32Test.test_osc_codesc    s.tƒ‰‡fdd„}|ddƒ|ddd„ƒ|dd    d„ƒ|d
d ƒ|d d d„ƒ|ddd„ƒtƒ}|d|ƒtƒ}d|_d|j_d|j_t|ƒ}| dt¡|     |j
¡|     |j ¡|     |  ¡¡|ddd„ƒtƒ}|d|ƒt|ƒ}| dt¡|  |j
¡|  |j ¡|  |  ¡¡W5QRXdS)Ncsˆ t||dd¡dS)NT)Úcreate)Ú enter_contextr    )rdre©ÚstackrrÚpúsz3AnsiToWin32Test.test_native_windows_ansi.<locals>.prqr@r;cSsdSr)rrrrrr>þr?z:AnsiToWin32Test.test_native_windows_ansi.<locals>.<lambda>zcolorama.win32.winapi_testcSsdSr)rrrrrr>ÿr?zcolorama.winterm.win32.windllznon-Nonezcolorama.winterm.get_osfhandlecSsdS)NéÒrr<rrrr>r?z%colorama.winterm.win32.GetConsoleModecSstSrr r<rrrr>r?z%colorama.winterm.win32.SetConsoleModeFTrrcSsdS)Nrrr<rrrr>r?)rrr ÚisattyrcÚfilenor Zassert_called_withrrErArLÚ should_wrapr)rrŒZSetConsoleModeÚstdoutr-rrŠrÚtest_native_windows_ansiøs<
 
 
þ
 
   z(AnsiToWin32Test.test_native_windows_ansi)T)r1r2r3r9r    rCrFrKrMrPrRrTr`rarmrprrrtr~r„r‡r’rrrrr4=s(   
 
 r4Ú__main__N)ÚiorrZunittestrrÚ
contextlibrÚ ImportErrorÚ contextlib2Z unittest.mockrrr    ZmockÚ ansitowin32r r Úwin32rÚutilsrrr4r1rrrrÚ<module>s"  )i