python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_imaplib.cpython-311.pyc

eddlmZddlmZddlmZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlmZmZmZmZmZmZddlmZddlmZddlmZddlZdd	lmZdd
lmZmZmZ	ddlZn
#e$rdZYnwxYwejdejej e!pej"d
dZ#ejej e!pej"d
dZ$Gddej%Z&erGdde	j'Z(ej)Z)nGddZ(dZ)Gdde	j*Z+GddZ,Gdde,ej%Z-ej.edGdde,ej%Z/Gddej%Z0ej.edGd d!e0Z1ej.ej2d"d#ej3d$Gd%d&ej%Z4ej.edej.ej2d"d#ej3d$Gd'd(e4Z5ej.edej3d$Gd)d*e4Z6e7d+krej8dSdS),)support)
socket_helper)contextmanagerN)verboserun_with_tzrun_with_localecpython_onlyrequires_resourcerequires_working_socket)hashlib_helper)threading_helper)warnings_helper)mock)datetimetimezone	timedeltaT)modulecertdatazkeycert3.pemzpycacert.pemceZdZdZeddZdZedddedd	Zd
Z	e
jdZdS)
TestImaplibctjd}tjd}|tj||tjd}|tj||tjd}|tj||dS)N)	irrrrrrs.25 (INTERNALDATE "01-Jan-2000 00:00:00 +0000")s.25 (INTERNALDATE "01-Jan-2000 11:30:00 +1130")s.25 (INTERNALDATE "31-Dec-1999 12:30:00 -1130"))calendartimegmimaplibInternaldate2tupleassertEqualtimemktime)selft0tts   E/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_imaplib.pytest_Internaldate2tuplez#TestImaplib.test_Internaldate2tuple#s
_>
?
?

'=??R"---

'=??R"---

'=??R"-----zMST+07MDT,M4.1.0,M10.5.0cz|tjdtjddS)Ns.25 (INTERNALDATE "02-Apr-2000 02:30:00 +0000")s.25 (INTERNALDATE "02-Apr-2000 03:30:00 +0000"))assertNotEqualrrr!s r$"test_Internaldate2tuple_issue10941z.TestImaplib.test_Internaldate2tuple_issue10941/sPG6=??&A
C
C	D	D	D	D	Dr&cddtjdddtjdt	tdddgS)Ni5wgeA)	r-!rrr)	r,r-r.r-r/r0rrrri "18-May-2033 05:33:20 +0200")r	localtimer
fromtimestamprrr)s r$
timevalueszTestImaplib.timevalues6sOL$.*D*D43&z'/	![0I0I'J'JLL.0	0r&LC_ALLde_DEfr_FRzSTD-1DST,M3.2.0,M11.1.0cd}|D],}tj|}|||-dS)Nr1)r4rTime2Internaldater)r!expectedtinternals    r$test_Time2Internaldatez"TestImaplib.test_Time2Internaldate>sU
2""	1	1A033HXx0000	1	1r&c\|D]}tj|dSN)r4rr9)r!r;s  r$,test_that_Time2Internaldate_returns_a_resultz8TestImaplib.test_that_Time2Internaldate_returns_a_resultIs;""	)	)A%a((((	)	)r&ctj5}	|dtjf|dn#tj$rYnwxYwdddn#1swxYwYt
j}|t5}tj
dddn#1swxYwY||jj
|dS)Nz3Cannot run the test with local IMAP server running.)socketconnectr
IMAP4_PORTskipTesterrorrget_socket_conn_refused_errsassertRaisesOSErrorIMAP4assertIn	exceptionerrno)r!sexpected_errnoscms    r$test_imap4_host_default_valuez)TestImaplib.test_imap4_host_default_valuePse]__	
		2w12333

IKKKK<



															(DFF


w
'
'	2MOOO															

bl(/:::::sFA.6A
A.
AA.AA..A25A2&CC

C
N)
__name__
__module____qualname__r%rr*r4rr=r@rskip_if_tcp_blackholerRr&r$rr!s
.
.
.[+,,DD-,D000_Xw00[*++11,+101)))(;;)(;;;r&rceZdZdZdS)SecureTCPServerc|j\}}tjtj}|t||d}||fS)NT)server_side)rCacceptssl
SSLContextPROTOCOL_TLS_SERVERload_cert_chainCERTFILEwrap_socket)r!	newsocketfromaddrcontext
connstreams     r$get_requestzSecureTCPServer.get_requestesc"&+"4"4"6"6IxnS%<==G##H--- ,,YD,IIJx''r&N)rSrTrUrgrWr&r$rYrYcs#	(	(	(	(	(r&rYceZdZdS)rYNrSrTrUrWr&r$rYrYpsr&cpeZdZejZdZdZfdZdZ	dZ
dZdZdZ
d	Zd
ZdZdZd
ZxZS)SimpleIMAPHandlerNrBcxtd|j_d|j_dSNF)supersetupserveris_selectedloggedr!	__class__s r$rozSimpleIMAPHandler.setup{s.


"'!r&ctr$td|z|j|dS)NzSENT: %r)rprintstripwfilewriter!messages  r$_sendzSimpleIMAPHandler._sendsA	0*w}}.///
!!!!!r&c6||dzdS)N
)r|rzs  r$
_send_linezSimpleIMAPHandler._send_lines

7W$%%%%%r&cV||ddS)NASCII)rencoderzs  r$_send_textlinez SimpleIMAPHandler._send_textlines&w//00000r&c\|d|||fdS)N )rjoin)r!tagcoder{s    r$_send_taggedzSimpleIMAPHandler._send_taggeds/CHHc4%9::;;;;;r&c|d	d}		|jd}|dkrdS||z
}n#t$rYdSwxYw|drnQt
r$t
d|z|jr4	|j	|n#t$r
d|_YnwxYw|d}|d}|d}|dd}t|d	|zr6t|d	|z||}|r||_t|n||d
|dz`)Nz* OK IMAP4rev1rr&r~zGOT: %rrrcmd_BADz unknown)rrfilereadrJendswithrrvrwcontinuationsend
StopIterationdecodesplithasattrgetattrnextr)r!linepart	splitlinercmdargsrs        r$handlezSimpleIMAPHandler.handles,---%	@D
:??1--Ds{{DLDDFF==))

0i$**,,./// 
-%**40000$---(,D%%%-G,,2244IA,CA,CQRR=DtVc\**
@:wtVc\::3EE'(4D%&&&!!#ucJ.>???K%	@s( AA
AAB99C
C
c|jr
d|jznd}|d|z||dddS)Nz
IMAP4rev1 	IMAP4rev1z
* CAPABILITY OKCAPABILITY completed)capabilitiesrr)r!rrcapss    r$cmd_CAPABILITYz SimpleIMAPHandler.cmd_CAPABILITYs\$!t000 	
	
Od2333#t%;<<<<<r&cvd|j_|d||dddS)Nz"* BYE IMAP4ref1 Server logging outrzLOGOUT completed)rprrrrr!rrs   r$
cmd_LOGOUTzSimpleIMAPHandler.cmd_LOGOUTs@!@AAA#t%788888r&cX|d|j_||dddS)NrrzLOGIN completed)rprrrrs   r$	cmd_LOGINzSimpleIMAPHandler.cmd_LOGINs/!!W#t%677777r&cvd|j_|d||dddS)NT
* 2 EXISTSr[READ-WRITE] SELECT completed.)rprqrrrs   r$
cmd_SELECTzSimpleIMAPHandler.cmd_SELECTs="&
&&&#t%EFFFFFr&c|jjr%d|j_||dddS||dddS)NFrz*Returned to authenticated state. (Success)rzNo mailbox selected)rprqrrs   r$cmd_UNSELECTzSimpleIMAPHandler.cmd_UNSELECTsX;"	A&+DK#c4)UVVVVVc5*?@@@@@r&)rSrTrUrLOOPBACK_TIMEOUTtimeoutrrror|rrrrrrrrr
__classcell__rts@r$rkrkvs&GLL"""""
"""
&&&111<<<(@(@(@T===999
888GGG
AAAAAAAr&rkc`eZdZdZd"dZdZdZdZdZdZ	d	Z
d
ZdZdZ
d
ZdZdZejdddZejdddZdZejdddZdZeddZdZdZdZdZdZ d Z!d!Z"dS)#NewIMAPTestsMixinNTcGdd|j}||j|tjdf||_t
j|jdz|jj	ddi|_
d|j
_|j
|r|j
|jj|_|j|jfS)	a
        Sets up imap_handler for tests. imap_handler should inherit from either:
        - SimpleIMAPHandler - for testing IMAP commands,
        - socketserver.StreamRequestHandler - if raw access to stream is needed.
        Returns (client, server).
        ceZdZdZdS)/NewIMAPTestsMixin._setup.<locals>.TestTCPServercV|||)zP
                End request and raise the error if one occurs.
                
close_requestserver_closer!requestclient_addresss   r$handle_errorz<NewIMAPTestsMixin._setup.<locals>.TestTCPServer.handle_errors-""7+++!!###r&NrSrTrUrrWr&r$
TestTCPServerrs#




r&rrz-server
poll_interval{Gz?nametargetkwargsT)server_class
addCleanup_cleanuprHOSTrp	threadingThread_testMethodName
serve_foreverthreaddaemonstart
imap_classserver_addressclient)r!imap_handlerrDrs    r$_setupzNewIMAPTestsMixin._setups					D-				

&&&'');Q(?NN&%i/;,$T*
,,,"	G)$/4;+EFDK{DK''r&c
|j)|jjdkr|j|j|jtj|jd|_dS)z
        Cleans up the test server. This method should not be called manually,
        it is added to the cleanup queue in the _setup method already.
        NLOGOUT)rstateshutdownrprr
join_threadrr)s r$rzNewIMAPTestsMixin._cleanupsu;"t{'8H'D'DK  """  """$T[111r&cGddtj}||d\}}|jtjj|jg|jRdS)NceZdZdZdS)ONewIMAPTestsMixin.test_EOF_without_complete_welcome_message.<locals>.EOFHandlerc:|jddSNs* OKrxryr)s r$rzVNewIMAPTestsMixin.test_EOF_without_complete_welcome_message.<locals>.EOFHandler.handles
  )))))r&NrSrTrUrrWr&r$
EOFHandlerrs#
*
*
*
*
*r&rFrD)	socketserverStreamRequestHandlerrrIrrKabortrr)r!r_rps    r$)test_EOF_without_complete_welcome_messagez;NewIMAPTestsMixin.test_EOF_without_complete_welcome_message	s	*	*	*	*	*:	*	*	*KK
EK::	6'--t	2!0	2	2	2	2	2	2r&cGddt}||d\}}|jtjj|jg|jRdS)NceZdZdZdS)BNewIMAPTestsMixin.test_line_termination.<locals>.BadNewlineHandlerc^|d||dddSNs* CAPABILITY IMAP4rev1 AUTH
rrr|rrs   r$rzQNewIMAPTestsMixin.test_line_termination.<locals>.BadNewlineHandler.cmd_CAPABILITY4

;<<<!!#t-CDDDDDr&NrSrTrUrrWr&r$BadNewlineHandlerrs(
E
E
E
E
Er&rFr)rkrrIrrKrrr)r!rrrps    r$test_line_terminationz'NewIMAPTestsMixin.test_line_terminations	E	E	E	E	E 1	E	E	EKK 15KAA	6'--t	2!0	2	2	2	2	2	2r&chGddt}||\}}||j|t
jjd5|ddddn#1swxYwY||jdS)NceZdZdZdS)MNewIMAPTestsMixin.test_enable_raises_error_if_not_AUTH.<locals>.EnableHandlerAUTH ENABLE UTF8=ACCEPTNrSrTrUrrWr&r$
EnableHandlerrs4LLLr&rzENABLE.*NONAUTHfoo)	rkrassertFalseutf8_enabledassertRaisesRegexrrKrGenable)r!rrrs    r$$test_enable_raises_error_if_not_AUTHz6NewIMAPTestsMixin.test_enable_raises_error_if_not_AUTHs	5	5	5	5	5-	5	5	5KK
..	,---

#
#GM$79J
K
K	!	!MM%   	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!,-----s+B

BBc|t\}}|tjjd5|dddddS#1swxYwYdS)Ndoes not support ENABLEr)rrkrrrKrGr)r!rrs   r$)test_enable_raises_error_if_no_capabilityz;NewIMAPTestsMixin.test_enable_raises_error_if_no_capability$sKK 122	

#
#GM$7)++	!	!MM%   	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!sA&&A*-A*cD|t\}}|dd\}}||d|t
jjd5|dddddS#1swxYwYdS)NuserpassrrUTF8=ACCEPT)	rrkloginrrrrKrGrr!rrtypdatas     r$.test_enable_UTF8_raises_error_if_not_supportedz@NewIMAPTestsMixin.test_enable_UTF8_raises_error_if_not_supported*sKK 122	LL00	Td###

#
#GM$7)++	)	)MM-(((	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)s2BBBcGddt}||\}}||jd|dd\}}||d||jd|d\}}||d||jd	d
}|ddd|d	\}}||d||jd|zd	dS)Nc$eZdZdZdZdZdZdS)HNewIMAPTestsMixin.test_enable_UTF8_True_append.<locals>.UTF8AppendServerzENABLE UTF8=ACCEPTc4||dddSNrzENABLE successfulrrs   r$
cmd_ENABLEzSNewIMAPTestsMixin.test_enable_UTF8_True_append.<locals>.UTF8AppendServer.cmd_ENABLE5!!!#t-@AAAAAr&c3~K|ddV|j_||dddSN+rzFAKEAUTH successfulrrpresponserrs   r$cmd_AUTHENTICATEzYNewIMAPTestsMixin.test_enable_UTF8_True_append.<locals>.UTF8AppendServer.cmd_AUTHENTICATE7G##C(((',uu$!!#t-BCCCCCr&c3~K|ddV|j_||dddSNrrokayrrs   r$
cmd_APPENDzSNewIMAPTestsMixin.test_enable_UTF8_True_append.<locals>.UTF8AppendServer.cmd_APPEND;F##C(((',uu$!!#tV44444r&N)rSrTrUrrrr!rWr&r$UTF8AppendServerr3sL/L
B
B
B
D
D
D
5
5
5
5
5r&r#asciiMYAUTHcdSNsfakerWxs r$<lambda>z@NewIMAPTestsMixin.test_enable_UTF8_True_append.<locals>.<lambda>A'r&r
ZmFrZQ==
r	utf-8Subject: üñí©öðéUTF8 (%s)
)	rkrr	_encodingauthenticaterrappendr)	r!r#rrprr
msg_stringrr
s	         r$test_enable_UTF8_True_appendz.NewIMAPTestsMixin.test_enable_UTF8_True_append2sm	5	5	5	5	50	5	5	5%566)7333%%h0A0ABBat$$$/:::--
..at$$$)7333.
MM$dJ4E4Eg4N4NOO	Td###
z
)11'::	<	<	<	<	<r&cGddt}||\}}|dd\}}||d|d\}}||d||j|tj	j
d5|dd	ddddS#1swxYwYdS)
NceZdZdZdZdZdS)PNewIMAPTestsMixin.test_search_disallows_charset_in_utf8_mode.<locals>.UTF8Serverrc4||dddSrrrs   r$rz[NewIMAPTestsMixin.test_search_disallows_charset_in_utf8_mode.<locals>.UTF8Server.cmd_ENABLEPrr&c3~K|ddV|j_||dddSrrrs   r$rzaNewIMAPTestsMixin.test_search_disallows_charset_in_utf8_mode.<locals>.UTF8Server.cmd_AUTHENTICATERrr&NrSrTrUrrrrWr&r$
UTF8Serverr7Ns?4L
B
B
B
D
D
D
D
Dr&r;r%cdSr'rWr(s r$r*zNNewIMAPTestsMixin.test_search_disallows_charset_in_utf8_mode.<locals>.<lambda>Wsr&rr	z
charset.*UTF8rbar)rkrr1rr
assertTruerrrrKrGsearch)r!r;rrrs     r$*test_search_disallows_charset_in_utf8_modez<NewIMAPTestsMixin.test_search_disallows_charset_in_utf8_modeMsR	D	D	D	D	D*	D	D	DKK
++	$$X/@/@AAQd###}--Qd###+,,,

#
#GM$7
I
I	(	(MM%'''	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(s	C--C14C1cGddt}||\}}|tjjd5|ddddddS#1swxYwYdS)NceZdZdZdS)6NewIMAPTestsMixin.test_bad_auth_name.<locals>.MyServercf||dd|ddSNNOz#unrecognized authentication type {}rrformatrs   r$rzGNewIMAPTestsMixin.test_bad_auth_name.<locals>.MyServer.cmd_AUTHENTICATEasB!!#t9@@aIIKKKKKr&NrSrTrUrrWr&r$MyServerrC`s(
K
K
K
K
Kr&rJz'unrecognized authentication type METHODMETHODcdSNrrWrWr&r$r*z6NewIMAPTestsMixin.test_bad_auth_name.<locals>.<lambda>gs!r&rkrrrrKrGr1r!rJrrs    r$test_bad_auth_namez$NewIMAPTestsMixin.test_bad_auth_name_s	K	K	K	K	K(	K	K	KKK))	

#
#GM$79;;	5	5))444	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5A66A:=A:cGddt}||\}}|tjjd5|ddddddS#1swxYwYdS)NceZdZdZdS)?NewIMAPTestsMixin.test_invalid_authentication.<locals>.MyServerc3tK|ddV|_||dddSNrrFz[AUTHENTICATIONFAILED] invalidrrrrs   r$rzPNewIMAPTestsMixin.test_invalid_authentication.<locals>.MyServer.cmd_AUTHENTICATEkD##C((( %
!!#t-MNNNNNr&NrIrWr&r$rJrTjs(
O
O
O
O
Or&rJz \[AUTHENTICATIONFAILED\] invalidr%cdSr'rWr(s r$r*z?NewIMAPTestsMixin.test_invalid_authentication.<locals>.<lambda>rsGr&rNrOs    r$test_invalid_authenticationz-NewIMAPTestsMixin.test_invalid_authenticationis	O	O	O	O	O(	O	O	O
KK))	

#
#GM$7355	=	=*;*;<<<	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=rQcGddt}||\}}|dd\}}||d||jddS)NceZdZdZdS)CNewIMAPTestsMixin.test_valid_authentication_bytes.<locals>.MyServerc3~K|ddV|j_||dddSrrrs   r$rzTNewIMAPTestsMixin.test_valid_authentication_bytes.<locals>.MyServer.cmd_AUTHENTICATEvrr&NrIrWr&r$rJr]u(
D
D
D
D
Dr&rJr%cdSr'rWr(s r$r*zCNewIMAPTestsMixin.test_valid_authentication_bytes.<locals>.<lambda>{r+r&rr,rkrr1rrr!rJrrprrs      r$test_valid_authentication_bytesz1NewIMAPTestsMixin.test_valid_authentication_bytests	D	D	D	D	D(	D	D	D
X..%%h0A0ABBat$$$/:::::r&cGddt}||\}}|dd\}}||d||jddS)NceZdZdZdS)HNewIMAPTestsMixin.test_valid_authentication_plain_text.<locals>.MyServerc3~K|ddV|j_||dddSrrrs   r$rzYNewIMAPTestsMixin.test_valid_authentication_plain_text.<locals>.MyServer.cmd_AUTHENTICATErr&NrIrWr&r$rJrfr_r&rJr%cdSNfakerWr(s r$r*zHNewIMAPTestsMixin.test_valid_authentication_plain_text.<locals>.<lambda>s&r&rr,rarbs      r$$test_valid_authentication_plain_textz6NewIMAPTestsMixin.test_valid_authentication_plain_texts	D	D	D	D	D(	D	D	D
X..%%h0@0@AAat$$$/:::::r&md5opensslcGddt}||\}}|d|jv|dd\}}||ddS)NceZdZdZdZdS)@NewIMAPTestsMixin.test_login_cram_md5_bytes.<locals>.AuthHandlerLOGINDISABLED AUTH=CRAM-MD5c3K|ddV}|dkr||dddS||dddSNz:+ PDE4OTYuNjk3MTcwOTUyQHBvc3RvZmZpY2UucmVzdG9uLm1jaS5uZXQ=s2dGltIGYxY2E2YmU0NjRiOWVmYTFjY2E2ZmZkNmNmMmQ5ZjMy
rzCRAM-MD5 successfulrFz	No accessrrr!rrrs    r$rzQNewIMAPTestsMixin.test_login_cram_md5_bytes.<locals>.AuthHandler.cmd_AUTHENTICATE{##%9:::EE777%%c41FGGGGG%%c4=====r&NrSrTrUrrrWr&r$AuthHandlerrq(8L
>
>
>
>
>r&rz
AUTH=CRAM-MD5timtanstaaftanstaafrrkrr>rlogin_cram_md5rr!rzrrrets     r$test_login_cram_md5_bytesz+NewIMAPTestsMixin.test_login_cram_md5_bytess
	>
	>
	>
	>
	>+
	>
	>
	>KK,,	6+>>???&&u.ABBQd#####r&cGddt}||\}}|d|jv|dd\}}||ddS)NceZdZdZdZdS)ENewIMAPTestsMixin.test_login_cram_md5_plain_text.<locals>.AuthHandlerrrc3K|ddV}|dkr||dddS||dddSrtrurvs    r$rzVNewIMAPTestsMixin.test_login_cram_md5_plain_text.<locals>.AuthHandler.cmd_AUTHENTICATErxr&NryrWr&r$rzrr{r&rzr|r}tanstaaftanstaafrrrs     r$test_login_cram_md5_plain_textz0NewIMAPTestsMixin.test_login_cram_md5_plain_texts
	>
	>
	>
	>
	>+
	>
	>
	>KK,,	6+>>???&&u.@AAQd#####r&cGddt}||\}}|tjjd5|ddddddS#1swxYwYdS)NceZdZdZdS)?NewIMAPTestsMixin.test_aborted_authentication.<locals>.MyServerc3K|ddV|_|jdkr||dddS||dddSNrs*
rFz[AUTHENTICATIONFAILED] abortedrzMYAUTH successfulrWrs   r$rzPNewIMAPTestsMixin.test_aborted_authentication.<locals>.MyServer.cmd_AUTHENTICATEs~##C((( %
=H,,%%8:::::
%%c41DEEEEEr&NrIrWr&r$rJrs(	
F	
F	
F	
F	
Fr&rJz \[AUTHENTICATIONFAILED\] abortedr%cdSr?rWr(s r$r*z?NewIMAPTestsMixin.test_aborted_authentication.<locals>.<lambda>sDr&rNrOs    r$test_aborted_authenticationz-NewIMAPTestsMixin.test_aborted_authentications
	F
	F
	F
	F
	F(
	F
	F
	FKK))	

#
#GM$7355	:	:..999	:	:	:	:	:	:	:	:	:	:	:	:	:	:	:	:	:	:rQzimaplib._MAXLINE
cGddt}||d\}}|tjjd5|j|jddddS#1swxYwYdS)NceZdZdZdS):NewIMAPTestsMixin.test_linetoolong.<locals>.TooLongHandlerc:|jddS)Ns* OK xxxxxxxxxxx
rr)s r$rzANewIMAPTestsMixin.test_linetoolong.<locals>.TooLongHandler.handles
  !?@@@@@r&NrrWr&r$TooLongHandlerrs(
A
A
A
A
Ar&rFrzgot more than 10 bytes)rkrrrrKrGrr)r!rrrps    r$test_linetoolongz"NewIMAPTestsMixin.test_linetoolongs	A	A	A	A	A.	A	A	AKKK>>	6

#
#GM$7(**	4	4DOV233	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4sA00A47A4c|td\}}|j|j5	ddddS#1swxYwYdS)NFr)rrkrr)r!rrps   r$test_simple_with_statementz,NewIMAPTestsMixin.test_simple_with_statementsKK 15KAA	6
T_f3
4																				s>AAwalltimecH|t\}}|jd}|d|d}||jjd||d|tj	}||jjtj	||
t5|d|d}ddddS#1swxYwYdS)Nr	localhostrr)rrkrrrsockrrrrrI
ValueError)r!rrpaddrrs     r$test_imaplib_timeout_testz+NewIMAPTestsMixin.test_imaplib_timeout_testsRKK 122	6$Q'dDAA,d333dG<TUU,g.FGGG


z
*
*	C	C__[$_BBF	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C	Cs1DDDcGddt}||\}}|jd}|t5|d|d}ddddS#1swxYwYdS)NceZdZdZdS)QNewIMAPTestsMixin.test_imaplib_timeout_functionality_test.<locals>.TimeoutHandlercbtjdt|dSrM)rsleeprkrr)s r$rzXNewIMAPTestsMixin.test_imaplib_timeout_functionality_test.<locals>.TimeoutHandler.handles)
1


!((.....r&NrrWr&r$TimeoutHandlerrs#
/
/
/
/
/r&rrrgMbP?r)rkrrrITimeoutErrorr)r!rrrprrs      r$'test_imaplib_timeout_functionality_testz9NewIMAPTestsMixin.test_imaplib_timeout_functionality_tests	/	/	/	/	/.	/	/	/
KK//	6$Q'


|
,
,	G	G__[$_FFF	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	GsA99A=A=c(|td\}}|j|j5}|dd||jddddn#1swxYwY||jdSNFrrr)rrkrrr
rrrassertIsNoner!rrpimaps    r$test_with_statementz%NewIMAPTestsMixin.test_with_statementsKK 15KAA	6
T_f3
4	4JJvv&&&V]F333	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	
&-(((((s2A--A14A1c|td\}}|j|j5}|dd||jd|||jdddn#1swxYwY||jdSr)	rrkrrr
rrrlogoutrrs    r$test_with_statement_logoutz,NewIMAPTestsMixin.test_with_statement_logoutsKK 15KAA	6
T_f3
4	-JJvv&&&V]F333KKMMMfm,,,		-	-	-	-	-	-	-	-	-	-	-	-	-	-	-
	
&-(((((sA BB"Bc|t\}}|dd\}}||d||dd||jddS)NrrrrLOGIN completedAUTH)rrkr
rrrs     r$
test_loginzNewIMAPTestsMixin.test_logins~KK 122	LL00	Td###a"4555v.....r&c|t\}}|dd\}}||d||dd|\}}||d||f||dd||f||jddS)	NrrrrrBYEsIMAP4ref1 Server logging outr)rrkr
rrrrs     r$test_logoutzNewIMAPTestsMixin.test_logoutsKK 122	LL00	Td###a"4555MMOO	Tec4[111a"AC;OOOx00000r&cGddt}||\}}|dd|\}}||d||dddS)NceZdZdZdS),NewIMAPTestsMixin.test_lsub.<locals>.LsubCmdcZ|d||ddS)Nz* LSUB () "." directoryArzLSUB completedrurs   r$cmd_LSUBz5NewIMAPTestsMixin.test_lsub.<locals>.LsubCmd.cmd_LSUB
s0##$>???((d4DEEEr&N)rSrTrUrrWr&r$LsubCmdrs(
F
F
F
F
Fr&rrrrrs() "." directoryA)rkrr
lsubr)r!rrrrr
s      r$	test_lsubzNewIMAPTestsMixin.test_lsubs	F	F	F	F	F'	F	F	FKK((	VV$$$KKMM	Td###a"677777r&c|t\}}|dd|\}}||d||dd|\}}||d||dd||jddS)Nrrrr2s*Returned to authenticated state. (Success)r)rrkr
selectrunselectrrs     r$
test_unselectzNewIMAPTestsMixin.test_unselectsKK 122	VV$$$MMOO	Td###a$'''OO%%	Td###a"OPPPv.....r&)T)#rSrTrUrrrrrrrrr4r@rPrZrcrkrrequires_hashdigestrrrrpatchrrr
rrrrrrrrrWr&r$rrs
F((((B 222222...!!!)))<<<6((($555	=	=	=	;	;	;	;	;	;(^'t<<<$$=<$"(^'t<<<$$=<$":::"TZ"B''44('4
z""
C
C#"
C	G	G	G))))))///111	8	8	8
/
/
/
/
/r&rc*eZdZejZejZdS)NewIMAPTestsN)	rSrTrUrrKrr	TCPServerrrWr&r$rr#sJ)LLLr&rzSSL not availablec|eZdZeZeZeddZeddZ	e
dZdS)NewIMAPSSLTestsrctjtj}||jtj||jd|t|	tj
d5|t\}}|j
|jd|i}|ddddS#1swxYwYdS)NT=IP address mismatch, certificate is not valid for '127.0.0.1'ssl_context)r]r^PROTOCOL_TLS_CLIENTrverify_mode
CERT_REQUIREDcheck_hostnameload_verify_locationsCAFILErCertificateErrorrrkrrrr!rrrprs     r$test_ssl_raiseszNewIMAPSSLTests.test_ssl_raises-s)nS%<==0#2CDDD3T:::))&111

#
#C$8		$566IAv$T_f&;>1<>>FOO
																		sAC**C.1C.ctjtj}|t|t\}}|d|jd|}|	dS)Nrrr)
r]r^rrrrrkrrrrs     r$test_ssl_verifiedz!NewIMAPSSLTests.test_ssl_verified<s{nS%<==))&111KK 122	6f.CA.F-8!::r&ctjdtf5tj|jd5tj|jd5|ddtdddn#1swxYwYdddn#1swxYwYddddS#1swxYwYdS)NrBopen_connectr)certfile)rcheck_warningsDeprecationWarningrrobjectrrar)s r$test_certfile_arg_warnz&NewIMAPSSLTests.test_certfile_arg_warnHs

+R1C,D
E
E	I	I""4?F;;
I
IZ&&t
CCIIOOKxOHHHIIIIIIIIIIIIIII
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I	I	I	I	I	I	I	I	I	I	I	I	I	I	I	I	I	I	IsY&C&B)(BB)BB)BB)C)B-	-C0B-	1CCCN)rSrTrU	IMAP4_SSLrrYrr
rrr	rrWr&r$rr(sJ"Lz""#"z""#"II\IIIr&rc2eZdZejZejZdZ	dZ
edZedZ
ejdZejdZejdZejdZGd	d
eZejdZejdZejd
ZejdZejdZejdZejdZejdZejejdddZ ejdZ!dZ"ejdZ#ejdZ$ejdZ%eje&e'j(dddZ)dS)ThreadedNetworkedTestsc&Gdd|j}trtd|||}||j|jtrItdtd|td|jtd|jtj	d|jz|j
d	d
i}d|_|trtd
||fS)NceZdZdZdS)4ThreadedNetworkedTests.make_server.<locals>.MyServercV|||r?rrs   r$rzAThreadedNetworkedTests.make_server.<locals>.MyServer.handle_errorVs+""7+++!!###r&NrrWr&r$rJrUs#




r&rJzcreating serverzserver createdzADDR =zCLASS =zHDLR =z
%s servingrrrTzserver running)
rrrvrrrCgetsocknameRequestHandlerClassrrrrr)r!rhdlrrJrpr;s      r$make_serverz"ThreadedNetworkedTests.make_serverSs6					t(				%#$$$$%%.
0I0I0K0KLLL	8"###(D!!!)T.///(F6777 11'$T*

,
,
,					$"###qyr&ctrtd|||trtddSdS)Nzwaiting for serverdone)rrvrrr)r!rprs   r$reap_serverz"ThreadedNetworkedTests.reap_serverssi	(&'''


	&MMMMM		r&c#K|tjdf|\}}	|V|||dS#|||wxYw)Nr)rrrr)r!rrprs    r$
reaped_serverz$ThreadedNetworkedTests.reaped_server|sm))=+=q*A4HH	-LLLVV,,,,,DVV,,,,sAAc#K||5}|j|j}	||fV|n#|wxYw	ddddS#1swxYwYdSr?)rrrr)r!rrprs    r$reaped_pairz"ThreadedNetworkedTests.reaped_pairs



%
%	 $T_f&;<F
 fn$$$



	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 s'A+AA+AA++A/2A/c|t5}|j|j}|ddddS#1swxYwYdSr?)rrkrrrr!rprs   r$test_connectz#ThreadedNetworkedTests.test_connects


 1
2
2	f$T_f&;<FOO																		s$AAAc<Gddt}||5\}}|dd\}}||d||jd|d|dd	d
\}\}|d||d|d\}\}|d|ddddS#1swxYwYdS)
Nc0eZdZfdZdZdZdZxZS)EThreadedNetworkedTests.test_bracket_flags.<locals>.BracketFlagHandlercZgd|_tdS)N)AnsweredFlaggedDeletedSeenDraft)flagsrnrrss r$rzLThreadedNetworkedTests.test_bracket_flags.<locals>.BracketFlagHandler.handles*PPP
     r&c3~K|ddV|j_||dddSrrrs   r$rzVThreadedNetworkedTests.test_bracket_flags.<locals>.BracketFlagHandler.cmd_AUTHENTICATErr&cld|j}|d|zd|d|dd|z}||d||dddS)	N \z* FLAGS (%s)r$rs
* 0 RECENTz-* OK [PERMANENTFLAGS %s \*)] Flags permitted.rr)rrrrr)r!rrflag_msgmsgs     r$rzPThreadedNetworkedTests.test_bracket_flags.<locals>.BracketFlagHandler.cmd_SELECTs ::dj11(!: B B7 K KLLL
...
...G"#

7 3 3444!!#t-MNNNNNr&c|ddd}|j|dd|jz}d|dd|}||d	||d
ddS)Nr()z(FLAGS (%s))rz* rz FETCH r$rzSTORE completed.)rwrrextendrrrr)r!rr	new_flags	flags_msgr	s      r$	cmd_STOREzOThreadedNetworkedTests.test_bracket_flags.<locals>.BracketFlagHandler.cmd_STOREs GMM#..44S99??AA	
!!),,,*UZZ
-C-CC		)-a))<

7 3 3444!!#t-?@@@@@r&)rSrTrUrrrrrrs@r$BracketFlagHandlerrsr
!
!
!
!
!
D
D
D

O
O
O
A
A
A
A
A
A
Ar&rr%cdSr'rWr(s r$r*z;ThreadedNetworkedTests.test_bracket_flags.<locals>.<lambda>r&rr,test1z+FLAGSz[test]s[test]PERMANENTFLAGS)rkrr1rrrstorerL)r!rrprrr
rs       r$test_bracket_flagsz)ThreadedNetworkedTests.test_bracket_flagss|	A	A	A	A	A!2	A	A	A:

0
1
1		+5Eff,,X7H7HIIJD$T4(((V_o>>>MM&!!! ,,tXx@@KC$MM)T***MM&!!! //*:;;KC$MM)T***		+		+		+		+		+		+		+		+		+		+		+		+		+		+		+		+		+		+sCDDDcGddtj}||5}|jtjj|jg|jRddddS#1swxYwYdS)NceZdZdZdS)9ThreadedNetworkedTests.test_issue5949.<locals>.EOFHandlerc:|jddSrrr)s r$rz@ThreadedNetworkedTests.test_issue5949.<locals>.EOFHandler.handles
  )))))r&NrrWr&r$rrs#
*
*
*
*
*r&r)	rrrrIrrKrrr)r!rrps   r$test_issue5949z%ThreadedNetworkedTests.test_issue5949s	*	*	*	*	*:	*	*	*




+
+	GvDgm1"o
G060E
G
G
G
G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	Gs)A$$A(+A(cGddt}||5}|jtjj|jg|jRddddS#1swxYwYdS)NceZdZdZdS)GThreadedNetworkedTests.test_line_termination.<locals>.BadNewlineHandlerc^|d||dddSrrrs   r$rzVThreadedNetworkedTests.test_line_termination.<locals>.BadNewlineHandler.cmd_CAPABILITYrr&NrrWr&r$rr s(
E
E
E
E
Er&r)rkrrIrrKrrr)r!rrps   r$rz,ThreadedNetworkedTests.test_line_terminations	E	E	E	E	E 1	E	E	E

 1
2
2	GfDgm1"o
G060E
G
G
G
G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G)AA#&A#ceZdZdZdZdZdS)!ThreadedNetworkedTests.UTF8Serverrc4||dddSrrrs   r$rz,ThreadedNetworkedTests.UTF8Server.cmd_ENABLEs!c4)<=====r&c#~K|ddV|j_||dddSrrrs   r$rz2ThreadedNetworkedTests.UTF8Server.cmd_AUTHENTICATEsG$$$#(55DK c4)>?????r&Nr:rWr&r$r;r$s<0	>	>	>	@	@	@	@	@r&r;c0||j5\}}||j|t
jj|jd||jddddS#1swxYwYdS)Nr)	rr;rrrIrrKrGrrs   r$rz;ThreadedNetworkedTests.test_enable_raises_error_if_not_AUTHs


do
.
.	22B66V0111gm16=%HHHV0111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2sA#BBBcGdd|j}||5\}}|tjj|jdddddS#1swxYwYdS)NceZdZdZdS)XThreadedNetworkedTests.test_enable_raises_error_if_no_capability.<locals>.NoEnableServerrNrrWr&r$NoEnableServerr*s!LLLr&r+r)r;rrIrrKrGr)r!r+rprs    r$rz@ThreadedNetworkedTests.test_enable_raises_error_if_no_capabilitys	"	"	"	"	"T_	"	"	"


n
-
-	I1A&&gm16=%HHH	I	I	I	I	I	I	I	I	I	I	I	I	I	I	I	I	I	Is/A%%A),A)cGddt}|tjj5||5\}}|dd\}}||d|d	dddn#1swxYwYddddS#1swxYwYdS)NceZdZdS)\ThreadedNetworkedTests.test_enable_UTF8_raises_error_if_not_supported.<locals>.NonUTF8ServerNrirWr&r$
NonUTF8Serverr.sDr&r/rrrr	)	rkrIrrKrGrr
rr)r!r/rprrr
s      r$rzEThreadedNetworkedTests.test_enable_UTF8_raises_error_if_not_supportedsW					-			


w}2
3
3		!!-00
4DVV"LL88	T  d+++

m,,,	














																		s6B;AB#B;#B'	'B;*B'	+B;;B?B?c	Gdd|j}||5\}}||jd|dd\}}||d||jd|d\}}||d||jd	d
}|ddd|d	\}}||d||jd|zd	ddddS#1swxYwYdS)NceZdZdZdS)MThreadedNetworkedTests.test_enable_UTF8_True_append.<locals>.UTF8AppendServerc3~K|ddV|j_||dddSrrrs   r$r!zXThreadedNetworkedTests.test_enable_UTF8_True_append.<locals>.UTF8AppendServer.cmd_APPENDr"r&N)rSrTrUr!rWr&r$r#r2s#
5
5
5
5
5r&r#r$r%cdSr'rWr(s r$r*zEThreadedNetworkedTests.test_enable_UTF8_True_append.<locals>.<lambda>sgr&rr,r	r-r.r/)	r;rrr0r1rrr2r)	r!r#rprrrr3rr
s	         r$r4z3ThreadedNetworkedTests.test_enable_UTF8_True_appends	5	5	5	5	5t	5	5	5

.
/
/	3CFFV-w777))(4E4EFFGD!T4(((V_,
.
.
.mmM22GD!T4(((V-w7772J

dD*"3"3G"<"<>>ICS$''' :-55g>>


																		sD*E  E$'E$c||j5\}}|dd\}}||d|d\}}||d||j|tj	j
|jddddddS#1swxYwYdS)Nr%cdSr'rWr(s r$r*zSThreadedNetworkedTests.test_search_disallows_charset_in_utf8_mode.<locals>.<lambda>$sWr&rr	rr=)rr;r1rrr>rrIrrKrGr?)r!rprrrs     r$r@zAThreadedNetworkedTests.test_search_disallows_charset_in_utf8_mode!s%


do
.
.	P2B66((3D3DEEFCS$''']]=11FCS$'''OOF/000gm16=%OOO
	P	P	P	P	P	P	P	P	P	P	P	P	P	P	P	P	P	PsB(CCCc4Gddt}||5\}}|tjj5|dddddn#1swxYwYddddS#1swxYwYdS)NceZdZdZdS);ThreadedNetworkedTests.test_bad_auth_name.<locals>.MyServercf||dd|ddSrErGrs   r$rzLThreadedNetworkedTests.test_bad_auth_name.<locals>.MyServer.cmd_AUTHENTICATE0s<!!#t.,,2F47OO=====r&NrIrWr&r$rJr9.s#
=
=
=
=
=r&rJrKcdSrMrWrWr&r$r*z;ThreadedNetworkedTests.test_bad_auth_name.<locals>.<lambda>6sar&rkrrIrrKrGr1)r!rJrprs    r$rPz)ThreadedNetworkedTests.test_bad_auth_name+s/	=	=	=	=	=(	=	=	=

h
'
'	9+;FF""7=#677
9
9##Hii888
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9s5(B
A5)B
5A9	9B
<A9	=B

BBc:Gddt}||5\}}|tjj5|dd\}}dddn#1swxYwYddddS#1swxYwYdS)NceZdZdZdS)DThreadedNetworkedTests.test_invalid_authentication.<locals>.MyServerc3tK|ddV|_||dddSrVrWrs   r$rzUThreadedNetworkedTests.test_invalid_authentication.<locals>.MyServer.cmd_AUTHENTICATE=rXr&NrIrWr&r$rJr?;s(
O
O
O
O
Or&rJr%cdSr'rWr(s r$r*zDThreadedNetworkedTests.test_invalid_authentication.<locals>.<lambda>DsWr&r<r!rJrprrr
s      r$rZz2ThreadedNetworkedTests.test_invalid_authentication8s`	O	O	O	O	O(	O	O	O

h
'
'	N+;FF""7=#677
N
N#00;L;LMM
d
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N	N	N	N	N	N	N	N	N	N	N	N	N	N	N	N	N	N	N5(BA8,B8A<	<B?A<	BBBcGddt}||5\}}|dd\}}||d||jddddn#1swxYwY||5\}}|dd\}}||d||jdddddS#1swxYwYdS)NceZdZdZdS)BThreadedNetworkedTests.test_valid_authentication.<locals>.MyServerc3~K|ddV|j_||dddSrrrs   r$rzSThreadedNetworkedTests.test_valid_authentication.<locals>.MyServer.cmd_AUTHENTICATEKrr&NrIrWr&r$rJrFIs(
D
D
D
D
Dr&rJr%cdSr'rWr(s r$r*zBThreadedNetworkedTests.test_valid_authentication.<locals>.<lambda>Qrr&rr,cdSrirWr(s r$r*zBThreadedNetworkedTests.test_valid_authentication.<locals>.<lambda>Wsr&)rkrr1rrrBs      r$test_valid_authenticationz0ThreadedNetworkedTests.test_valid_authenticationFs	D	D	D	D	D(	D	D	D

h
'
'	.+;FF,,X7H7HIIJD$T4(((V_,
.
.
.	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.

h
'
'	.+;FF,,X7G7GHHJD$T4(((V_,
.
.
.	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.%ABBB$ADDDrlTrmcGddt}||5\}}|d|jv|dd\}}||ddddn#1swxYwY||5\}}|d|jv|dd\}}||dddddS#1swxYwYdS)NceZdZdZdZdS)?ThreadedNetworkedTests.test_login_cram_md5.<locals>.AuthHandlerrrc3K|ddV}|dkr||dddS||dddSrtrurvs    r$rzPThreadedNetworkedTests.test_login_cram_md5.<locals>.AuthHandler.cmd_AUTHENTICATEdrxr&NryrWr&r$rzrN`s(8L
>
>
>
>
>r&rzr|r}rrr~)rkrr>rrr)r!rzrprrr
s      r$test_login_cram_md5z*ThreadedNetworkedTests.test_login_cram_md5\s	>	>	>	>	>+	>	>	>

k
*
*	(.>vvOOOv/BBCCC--e5GHHICS$'''	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(


k
*
*	(.>vvOOOv/BBCCC--e5HIIICS$'''	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(rKc:Gddt}||5\}}|tjj5|dd\}}dddn#1swxYwYddddS#1swxYwYdS)NceZdZdZdS)DThreadedNetworkedTests.test_aborted_authentication.<locals>.MyServerc3K|ddV|_|jdkr||dddS||dddSrrWrs   r$rzUThreadedNetworkedTests.test_aborted_authentication.<locals>.MyServer.cmd_AUTHENTICATE~sp##C((( %
=H,,%%c41QRRRRR%%c41DEEEEEr&NrIrWr&r$rJrS|s(
F
F
F
F
Fr&rJr%cdSr?rWr(s r$r*zDThreadedNetworkedTests.test_aborted_authentication.<locals>.<lambda>sTr&r<rBs      r$rz2ThreadedNetworkedTests.test_aborted_authenticationys^		F		F		F		F		F(		F		F		F

h
'
'	K+;FF""7=#677
K
K#00>>JJ
d
K
K
K
K
K
K
K
K
K
K
K
K
K
K
K	K	K	K	K	K	K	K	K	K	K	K	K	K	K	K	K	K	KrCcGddt}||5}|jtjj|jg|jRddddS#1swxYwYdS)NceZdZdZdS)?ThreadedNetworkedTests.test_linetoolong.<locals>.TooLongHandlerc`|jdtjdzzdzdS)Ns* OK xr~)rxryr_MAXLINEr)s r$rzFThreadedNetworkedTests.test_linetoolong.<locals>.TooLongHandler.handles0
  G,<t,C!Cg!MNNNNNr&NrrWr&r$rrXs(
O
O
O
O
Or&r)rkrrIrrKrGrr)r!rrps   r$rz'ThreadedNetworkedTests.test_linetoolongs	O	O	O	O	O.	O	O	O



/
/	G6Dgm1"o
G060E
G
G
G
G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	Gr"c|t5}|j|j5	dddn#1swxYwYddddS#1swxYwYdSr?)rrkrr)r!rps  r$rz1ThreadedNetworkedTests.test_simple_with_statements

 1
2
2	f &"78
















																		s.A9A=	A=	AAAcP|t5}|j|j5}|dd||jddddn#1swxYwY||jddddS#1swxYwYdSNrr)rrkrrr
rrrrr!rprs   r$rz*ThreadedNetworkedTests.test_with_statements 


 1
2
2	-f &"78
8D

66***  777
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
fm,,,		-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-s4B2A)B)A-	-B0A-	1BB"Bc|t5}|j|j5}|dd||jd|||jdddn#1swxYwY||jddddS#1swxYwYdSr^)	rrkrrr
rrrrrr_s   r$rz1ThreadedNetworkedTests.test_with_statement_logoutsE

 1
2
2	-f &"78
1D

66***  777


!!&-000	
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

fm,,,
	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-s5C	A BC	B	C	B	C		C
C
z Won't work if __debug__ is Falsecddgi}|t5}|j|j5}tj|d5}|||ddddn#1swxYwYdddn#1swxYwYddddS#1swxYwYdS)Nz
READ-WRITEr&_mesgz)untagged responses dump:READ-WRITE: [b''])	rrkrrrrr_dump_urassert_called_with)r!untagged_resp_dictrpr	mock_mesgs     r$test_dump_urz#ThreadedNetworkedTests.test_dump_urs
+SE2


 1
2
2	f &"78
DZ&&tW55MM"455500C














																		sXB7!B+B<BBBBBB7B#	#B7&B#	'B77B;>B;N)*rSrTrUrrrrrKrrrrrrr
reap_threadsrrrrrkr;rrrr4r@rPrZrJrrrPrrrrrr	unittest
skipUnlessrgrWr&r$rrOsA)LJ@--^-  ^ "#"
".+.+#".+`"	G	G#"	G"
G
G#"
G	@	@	@	@	@&	@	@	@"22#"2"II#"I"#""#":"PP#"P"
9
9#"
9"NN#"N"..#".*"'^'t<<<((=<#"(6"KK#"K$GGG"#""--#"-"--#"-"X$FGG

HG\#"


r&rc6eZdZeZeZejdZ	dS)ThreadedNetworkedTestsSSLcjtjtj}|t|tjd5|t5}|j	|j
d|i}|dddn#1swxYwYdddn#1swxYwY|t5}|	d|j
d|}|ddddS#1swxYwYdS)Nrrrrr)r]r^rrrrrrrkrrr)r!rrprs    r$rz+ThreadedNetworkedTestsSSL.test_ssl_verifiedsnS%<==))&111

#
#$	"	"##$566
"&(&*?B5@BB!!!
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"		"	"	"	"	"	"	"	"	"	"	"	"	"	"	"

 1
2
2	f__[&2G2J1<%>>FOO																		sHB>4'B'B>'B+	+B>.B+	/B>>CC#8D((D,/D,N)
rSrTrUrYrrrr
rhrrWr&r$rlrls;"LJ"#"r&rlnetworkznetwork resource disabledz'cyrus.andrew.cmu.edu blocks connectionscDeZdZdZdZdZdZejZ	dZ
dZdZdZ
d	S)
RemoteIMAPTestzcyrus.andrew.cmu.edur	anonymousrctj|j5||j|j|_ddddS#1swxYwYdSr?)rtransient_internethostrportrpr)s r$setUpzRemoteIMAPTest.setUps

-di
8
8	@	@//$)TY??DK	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@s&A

AAc|jMtj|j5|jddddS#1swxYwYdSdSr?)rprrsrtrr)s r$tearDownzRemoteIMAPTest.tearDowns;"1$)<<
%
%""$$$
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%#"sAAActj|j5|jjD]}||t|d|jj|d|jj|j|j	|j
}||ddddddS#1swxYwYdS)N
LOGINDISABLEDzAUTH=ANONYMOUSrr)rrsrtrprassertIsInstancestrrLr
usernamepasswordr)r!caprss   r$test_logincapazRemoteIMAPTest.test_logincapas

-di
8
8	*	*{/
0
0%%c3////MM/4;+CDDDMM*DK,DEEE""4=$-@@BRUD)))
	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*sB,CCCctj|j5|j}d|_||dd|ddddS#1swxYwYdSNrr)rrsrtrprr)r!rs  r$rzRemoteIMAPTest.test_logouts

-di
8
8	/	/##%%BDKRUE2...	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/s>A%%A),A)N)rSrTrUrtrur}r~rrKrrvrxrrrWr&r$rprpsp"DDHHJ@@@%%%
***/////r&rpc$eZdZfdZdZxZS)RemoteIMAP_STARTTLSTestcttj|j5|j}||ddddddS#1swxYwYdS)Nrr)rnrvrrsrtrpstarttlsr)r!rrts  r$rvzRemoteIMAP_STARTTLSTest.setUps




-di
8
8	*	*%%''BRUD)))	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*s6A>>BBc|jjD]}||t|d|jjdS)Nrz)rprr{r|assertNotIn)r!rs  r$rz&RemoteIMAP_STARTTLSTest.test_logincapasP;+	,	,C!!#s++++$+*BCCCCCr&)rSrTrUrvrrrs@r$rrsN*****DDDDDDDr&rcFeZdZdZeZdZdZdZdZ	dZ
dZdZd	Z
d
S)RemoteIMAP_SSLTesticdSr?rWr)s r$rvzRemoteIMAP_SSLTest.setUpr&cdSr?rWr)s r$rxzRemoteIMAP_SSLTest.tearDownrr&ctjtj}d|_tj|_|t|Srm)r]r^rr	CERT_NONErr`ra)r!rs  r$create_ssl_contextz%RemoteIMAP_SSLTest.create_ssl_contexts@nS%<==%*""%-##H---r&c	|jD]}||t|d|j|d|j||j|j}||dd|	dS#|	wxYw)Nrzz
AUTH=PLAINrr)
rr{r|rrLr
r}r~rr)r!rprrs    r$check_logincapaz"RemoteIMAP_SSLTest.check_logincapa!s	*
0
0%%c3////_f.ABBBMM,(;<<<dmT];;BRUD)))MMOOOOOFMMOOOOsBB//Cctj|j5||j|j}||ddddS#1swxYwYdSr?)rrsrtrrur)r!_servers  r$rz!RemoteIMAP_SSLTest.test_logincapa,s

-di
8
8	*	*oodi;;G  )))	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*s6AA!$A!ctj|j5||j|j}|}||dd|ddddS#1swxYwYdSr)rrsrtrrurr)r!rrs   r$rzRemoteIMAP_SSLTest.test_logout1s

-di
8
8	/	/oodi;;G!!BRUE2...	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/sAA99A=A=c
tj|j5|t|j|j|jt|ddddS#1swxYwYdS)N)rr	rrsrtrIrrrurarr)s r$#test_ssl_context_certfile_exclusivez6RemoteIMAP_SSLTest.test_ssl_context_certfile_exclusive7s

-di
8
8	J	JDOTY	!t/F/F/H/H

J
J
J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	JAA..A25A2c
tj|j5|t|j|j|jt|ddddS#1swxYwYdS)N)keyfilerrr)s r$"test_ssl_context_keyfile_exclusivez5RemoteIMAP_SSLTest.test_ssl_context_keyfile_exclusive=s

-di
8
8	I	IDOTY	 d.E.E.G.G

I
I
I	I	I	I	I	I	I	I	I	I	I	I	I	I	I	I	I	I	IrN)rSrTrUrurrrvrxrrrrrrrWr&r$rrsDJ





			***
///JJJIIIIIr&r__main__)9rrtest.supportr
contextlibrros.pathosrrrrrCrrrr	r
rrr
rrirrrrr]ImportErrorpathrdirname__file__curdirrarTestCaserrrYrrrkrrrjrrrlis_resource_enabledskiprprrrSmainrWr&r$<module>rs&&&&&&%%%%%%



3333333333333333('''''))))))((((((2222222222JJJJ
CCC t,,,,
7<<11>RY
N[[	bgooh//<29j.	Y	Y>;>;>;>;>;(#>;>;>;B(((((,0(((!II







I\A\A\A\A\A9\A\A\A~K/K/K/K/K/K/K/K/\
*****$h&7***
S-..$I$I$I$I$I'):$I$I/.$ILnnnnnX.nnnbS-.. 6/.0G	**,GII899/////X&//:9II/@S-..G	**,GII899DDDDDnDD:9II/.DS-..8991I1I1I1I1I1I1I:9/.1IhzHMOOOOOs&A++A54A5