Your IP : 216.73.216.213


Current Path : /opt/alt/python33/lib64/python3.3/test/__pycache__/
Upload File :
Current File : //opt/alt/python33/lib64/python3.3/test/__pycache__/test_nntplib.cpython-33.pyo

�
��f;�c@swddlZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
mZddl	Z	yddlZWne
k
r�eZYnXdZGdd�d�Zej�Gdd�deej�Zejed	�Gd
d�de��ZGdd
�d
ej�ZGdd�d�ZGdd�de�ZGdd�d�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�d�ZGdd�deeej�ZGdd�deeej�Z Gd d!�d!eej�Z!Gd"d#�d#eej�Z"Gd$d%�d%ej�Z#d&d'�Z$e%d(krse$�ndS()iN(usupport(uNNTPu	GroupInfoicBs7|EeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zd.dd�Zdd �Zd!d"�Zejed#�d$d%��Zd&d'�Zd(d)�Zed*d+��Zd,d-�Zd.S(/uNetworkedNNTPTestsMixincCs)|jj�}|jtt|��dS(N(userveru
getwelcomeuassertEqualustrutype(uselfuwelcome((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyutest_welcomesu$NetworkedNNTPTestsMixin.test_welcomecCsY|jj�\}}|j|jd�|�x$|D]}|jtt|��q5WdS(Nu100 (userveruhelpu
assertTrueu
startswithuassertEqualustrutype(uselfurespulinesuline((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu	test_helps
u!NetworkedNNTPTestsMixin.test_helpcCse|jj�\}}t|�dkra|jtt|d��|jtt|dj��ndS(Ni(userverulistulenuassertEqualu	GroupInfoutypeustrugroup(uselfurespugroups((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu	test_list$su!NetworkedNNTPTestsMixin.test_listcCsk|jj|j�\}}t|�dkrg|jtt|d��|jtt|dj��ndS(Ni(	userverulistu	GROUP_PATulenuassertEqualu	GroupInfoutypeustrugroup(uselfurespugroups((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyutest_list_active*su(NetworkedNNTPTestsMixin.test_list_activec	CsT|jtj��}|jjd�WdQX|jj}|j|jd�|�dS(NuXYZZYu500 (	uassertRaisesunntplibuNNTPPermanentErroruserveru	_shortcmdu	exceptionuresponseu
assertTrueu
startswith(uselfucmuresp((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyutest_unknown_command0su,NetworkedNNTPTestsMixin.test_unknown_commandcCs{tjj�tjdd�}|jj|�\}}t|�dkrw|j|dt�|j|dj	t
�ndS(Nudaysii(udatetimeudateutodayu	timedeltauserveru	newgroupsulenuassertIsInstanceu	GroupInfougroupustr(uselfudturespugroups((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyutest_newgroups6s
u&NetworkedNNTPTestsMixin.test_newgroupscs��fdd�}�jj�j�}||��jd|��jj�j�}||��jjd�}�j|d�dS(Ncs'�j|t��j�j|�dS(N(uassertIsInstanceustruassertNotInu
GROUP_NAME(udesc(uself(u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu_check_desc@su=NetworkedNNTPTestsMixin.test_description.<locals>._check_descuPythonuzk.brrtt.bazu(userverudescriptionu
GROUP_NAMEuassertInu	GROUP_PATuassertEqual(uselfu_check_descudesc((uselfu6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyutest_description?s

u(NetworkedNNTPTestsMixin.test_descriptioncCs�|jj|j�\}}|j|jd�p<|jd�|�|j|t�||j}|j||jj	|j��dS(Nu215 u282 (
userverudescriptionsu	GROUP_PATu
assertTrueu
startswithuassertIsInstanceudictu
GROUP_NAMEuassertEqualudescription(uselfurespudescsudesc((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyutest_descriptionsOs"
u)NetworkedNNTPTestsMixin.test_descriptionscCs�|jj|j�}|jdt|��|\}}}}}|j||j�|j|t�|j|t�|j|t�|j||�|j|j	d�|�dS(Niu211 (
userverugroupu
GROUP_NAMEuassertEqualulenuassertIsInstanceuintuassertLessEqualu
assertTrueu
startswith(uselfuresulturespucountufirstulastugroup((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu
test_groupXsu"NetworkedNNTPTestsMixin.test_groupcCsR|jj�\}}|j|tj�|j|jd�|j|jd�dS(Ni�i�(userverudateuassertIsInstanceudatetimeuassertGreaterEqualuyearuassertLessEqual(uselfurespudate((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu	test_datecsu!NetworkedNNTPTestsMixin.test_datec	Csr|j|t�|j|j�dddddddh�x0|j�D]"}|j|ttd�f�qHWdS(Nusubjectufromudateu
message-idu
referencesu:bytesu:lines(uassertIsInstanceudictuassertGreaterEqualukeysuvaluesustrutypeuNone(uselfuart_dictuv((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu_check_art_dictjsu'NetworkedNNTPTestsMixin._check_art_dictc	Cs�|jj|j�\}}}}}|jj|d|�\}}t|�dkre|jd�n|d\}}|j||d�|j||�|j|�dS(Niiuno articles retrieved(	userverugroupu
GROUP_NAMEuxoverulenuskipTestuassertGreaterEqualuassertLessEqualu_check_art_dict(	uselfurespucountufirstulastunameulinesuart_numuart_dict((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu
test_xoverus$u"NetworkedNNTPTestsMixin.test_xoverc
Cs�|jj|j�\}}}}}|d}|jj|df�\}}|d\}}	|j|	�|jj||f�\}}|d\}}	|j||�|j||�|j|	�dS(Ni
iii����(userverugroupu
GROUP_NAMEuoveruNoneu_check_art_dictuassertGreaterEqualuassertLessEqual(
uselfurespucountufirstulastunameustartulinesuart_numuart_dict((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu	test_over�s$

u!NetworkedNNTPTestsMixin.test_overcCsn|jj|j�\}}}}}|jjd|�\}}x(|D] }|jtt|d��qFWdS(Nusubjecti(userverugroupu
GROUP_NAMEuxhdruassertEqualustrutype(uselfurespucountufirstulastunameulinesuline((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu	test_xhdr�s$
u!NetworkedNNTPTestsMixin.test_xhdrcCst|j|tj�|dk	r5|j|j|�nx!|jD]}|j|t�q?W|j|jdd�dS(Nis.s.
s.
i����(s.s.
s.
(	uassertIsInstanceunntplibuArticleInfouNoneuassertEqualunumberulinesubytesuassertNotIn(uselfurespuarticleuart_numuline((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyucheck_article_resp�su*NetworkedNNTPTestsMixin.check_article_respc
s�|jj|j�\}}}}}x�|||dfD]i}y|jj|�\}}WnCtjk
r�}z |jjd�s��nw8WYdd}~XnXPq8W|jd�|j	|jd�|�|j
|||�|jj|�\}}	|j	|jd�|�|j
||	|�|jj|�\}}
|j	|jd�|�|j
||
|�dd���fd	d
�|j
D�}�fdd
�|
j
D�}|j||dg|	j
�dS(
Niu423 u(could not find a suitable article numberu221 u222 u220 cSs
|jd�S(NsX-Antivirus(u
startswith(uline((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu<lambda>�su@NetworkedNNTPTestsMixin.test_article_head_body.<locals>.<lambda>cs"g|]}�|�s|�qS(((u.0uline(u	blacklist(u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu
<listcomp>�s	uBNetworkedNNTPTestsMixin.test_article_head_body.<locals>.<listcomp>cs"g|]}�|�s|�qS(((u.0uline(u	blacklist(u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu
<listcomp>�s	s(userverugroupu
GROUP_NAMEuheadunntplibuNNTPTemporaryErroruresponseu
startswithuskipTestu
assertTrueucheck_article_respubodyuarticleulinesuassertEqual(
uselfurespucountufirstulastunameuart_numuheadueubodyuarticleufiltered_head_linesufiltered_lines((u	blacklistu6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyutest_article_head_body�s,$
u.NetworkedNNTPTestsMixin.test_article_head_bodycs^�fdd�}�j�jjd�|�jj���jj�\}}||�dS(Ncs4|d}�j|ttf��jd|�dS(NuLISTuOVERVIEW.FMT(uassertIsInstanceulistutupleuassertIn(ucapsu	caps_list(uself(u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu_check_caps�s
u>NetworkedNNTPTestsMixin.test_capabilities.<locals>._check_capsi(uassertGreaterEqualuserverunntp_versionugetcapabilitiesucapabilities(uselfu_check_capsurespucaps((uselfu6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyutest_capabilities�s
u)NetworkedNNTPTestsMixin.test_capabilitiesurequires SSL supportcCs�|jj}|jj}y|jj�Wn"tjk
rM|jd�Yn\X|j||jj�|j||jj�|j|jjt	j
�|jt|jj�dS(Nu!STARTTLS not supported by server.(
userverufileusockustarttlsunntplibuNNTPPermanentErroruskipTestuassertNotEqualuassertIsInstanceusslu	SSLSocketuassertRaisesu
ValueError(uselfufileusock((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu
test_starttls�su%NetworkedNNTPTestsMixin.test_starttlsc	Cs;d}d}|jtj|jjd|d|dd�dS(NunotarealuserunotarealpassworduuserupassworduusenetrcF(uassertRaisesunntplibu	NNTPErroruserveruloginuFalse(uselfubaduserubadpw((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyutest_zlogin�su#NetworkedNNTPTestsMixin.test_zlogincCs.t|�}z|jj�Wdd|_XdS(N(utypeuserveruquituNone(uselfucls((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyutest_zzquit�su#NetworkedNNTPTestsMixin.test_zzquitcCssdd�}x`t|�D]R}|jd�s4qnt||�}t|�sUqnt||||��qWdS(Ncs%tj���fdd��}|S(Nc	s'tj|j���|�WdQXdS(N(usupportutransient_internetu	NNTP_HOST(uself(umeth(u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuwrapped�suHNetworkedNNTPTestsMixin.wrap_methods.<locals>.wrap_meth.<locals>.wrapped(u	functoolsuwraps(umethuwrapped((umethu6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu	wrap_meth�s!u7NetworkedNNTPTestsMixin.wrap_methods.<locals>.wrap_methutest_(udiru
startswithugetattrucallableusetattr(uclsu	wrap_methunameumeth((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuwrap_methods�su$NetworkedNNTPTestsMixin.wrap_methodscs��fdd�}|j|jdtdd��*�|j|��|j�j��WdQX|j|��|j|jdtdd����j�WdQX|j|��dS(NcsGt�d�sdSy�j�Wntjtfk
rBdSYnXdS(NufileFT(uhasattruFalseuhelpusocketuerroruEOFErroruTrue((userver(u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuis_connecteds	uANetworkedNNTPTestsMixin.test_with_statement.<locals>.is_connectedutimeoutuusenetrcF(u
NNTP_CLASSu	NNTP_HOSTuTIMEOUTuFalseu
assertTrueuhelpuassertFalseuquit(uselfuis_connected((userveru6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyutest_with_statements	!!u+NetworkedNNTPTestsMixin.test_with_statementN(u__name__u
__module__u__qualname__utest_welcomeu	test_helpu	test_listutest_list_activeutest_unknown_commandutest_newgroupsutest_descriptionutest_descriptionsu
test_groupu	test_dateu_check_art_dictu
test_xoveru	test_overu	test_xhdruNoneucheck_article_resputest_article_head_bodyutest_capabilitiesuunittestu
skipUnlessusslu
test_starttlsutest_zloginutest_zzquituclassmethoduwrap_methodsutest_with_statement(u
__locals__((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuNetworkedNNTPTestsMixins,			
uNetworkedNNTPTestsMixincBsP|EeZdZdZdZdZeZedd��Z	edd��Z
dS(	uNetworkedNNTPTestsunews.trigofacile.comufr.comp.lang.pythonufr.comp.lang.*c
CsKtjd�tj|j��&|j|jdtdd�|_WdQXdS(NunetworkutimeoutuusenetrcF(usupporturequiresutransient_internetu	NNTP_HOSTu
NNTP_CLASSuTIMEOUTuFalseuserver(ucls((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu
setUpClass&s
uNetworkedNNTPTests.setUpClasscCs#|jdk	r|jj�ndS(N(userveruNoneuquit(ucls((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu
tearDownClass,su NetworkedNNTPTests.tearDownClassN(u__name__u
__module__u__qualname__u	NNTP_HOSTu
GROUP_NAMEu	GROUP_PATuNNTPu
NNTP_CLASSuclassmethodu
setUpClassu
tearDownClass(u
__locals__((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuNetworkedNNTPTestssuNetworkedNNTPTestsurequires SSL supportcBsD|EeZdZdZdZdZeedd�Z	dZ
dZdS(uNetworkedNNTP_SSLTestsu
nntp.aioe.orgucomp.lang.pythonucomp.lang.*uNNTP_SSLN(u__name__u
__module__u__qualname__u	NNTP_HOSTu
GROUP_NAMEu	GROUP_PATugetattrunntplibuNoneu
NNTP_CLASSu	test_listu
test_starttls(u
__locals__((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuNetworkedNNTP_SSLTests1suNetworkedNNTP_SSLTestscBsb|EeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dS(u
_NNTPServerIOu�A raw IO object allowing NNTP commands to be received and processed
    by a handler.  The handler can push responses which can then be read
    from the IO object.cCsWtjj|�tj�|_tj�|_||_|jj|jj|j	�dS(N(
uiou	RawIOBaseu__init__uBytesIOuc2sus2cuhandlerustartureadlineu	push_data(uselfuhandler((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu__init__Ns
	u_NNTPServerIO.__init__cCsdS(NT(uTrue(uself((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyureadableWsu_NNTPServerIO.readablecCsdS(NT(uTrue(uself((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuwritableZsu_NNTPServerIO.writablecCsF|jj�}|jjdd�|jj|�|jj|�dS(u.Push (buffer) some data to send to the client.iiN(us2cutelluseekuwrite(uselfudataupos((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu	push_data]su_NNTPServerIO.push_datacCsF|jj�}|jj|�|jj|�|jj�t|�S(uThe client sends us some data(uc2sutelluwriteuseekuhandleruprocess_pendingulen(uselfubupos((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuwriteds

u_NNTPServerIO.writecCsE|jj�|jjt|��}t|�}||d|�<|S(u#The client wants to read a responseN(uhandleruprocess_pendingus2cureadulen(uselfubufubun((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyureadintols

u_NNTPServerIO.readintoN(
u__name__u
__module__u__qualname__u__doc__u__init__ureadableuwritableu	push_datauwriteureadinto(u
__locals__((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu
_NNTPServerIOIs	u
_NNTPServerIOcsJ|EeZdZdZ�fdd�Z�fdd�Zdd�Z�S(uMockedNNTPTestsMixincst�j�|j�dS(N(usuperusetUpumake_server(uself(u	__class__(u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyusetUpys
uMockedNNTPTestsMixin.setUpcst�j�|`dS(N(usuperutearDownuserver(uself(u	__class__(u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyutearDown}s
uMockedNNTPTestsMixin.tearDowncOs[|j�|_t|j�|_tj|j|j�}tj|d||�|_|jS(Nutest.server(	u
handler_classuhandleru
_NNTPServerIOusiouiouBufferedRWPairunntplibu	_NNTPBaseuserver(uselfuargsukwargsufile((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyumake_server�s
u MockedNNTPTestsMixin.make_serverN(u__name__u
__module__u__qualname__uNoneu
handler_classusetUputearDownumake_server(u
__locals__((u	__class__u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuMockedNNTPTestsMixinusuMockedNNTPTestsMixincs&|EeZdZ�fdd�Z�S(uMockedNNTPWithReaderModeMixincs!t�j�|jdd�dS(Nu
readermodeT(usuperusetUpumake_serveruTrue(uself(u	__class__(u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyusetUp�s
u#MockedNNTPWithReaderModeMixin.setUp(u__name__u
__module__u__qualname__usetUp(u
__locals__((u	__class__u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuMockedNNTPWithReaderModeMixin�suMockedNNTPWithReaderModeMixincBsx|EeZdZdZdZdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zd7dd�Zdd�Zdd �Zd7d7d!d"�Zd#d$�Zd%d&�Zd'd7d(d)�Zd'd7d*d+�Zd,Zd-Zed.eZd7d/d0�Zd7d1d2�Zd7d3d4�Zd5d6�Z d7S(8u
NNTPv1HandleruA handler for RFC 977u200 NNTP mock servercCsDd|_d|_||_||_d|_d|_|j�dS(NFT(	uFalseuin_bodyuTrueu
allow_postingu	_readlineu
_push_datau
_logged_inu
_user_sentuhandle_welcome(uselfureadlineu	push_data((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyustart�s						uNNTPv1Handler.startcCst|dd�S(Nuutf-8usurrogateescape(ustr(uselfudata((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu_decode�suNNTPv1Handler._decodecCs�|jr�x9|j�}|s"dS|jj|�|dkrPqqz&|j\}}|d|j|�Wdd|_d|_d|_Xnx|j|j��}|s�dS|jd�s�t	dj
|���n|dd	�}|j�^}}t|d|j
�d�}|dkr-|j�q�y||�Wn=tk
rz}zt	dj
|��|�WYdd}~Xq�X|jr�||f|_g|_q�q�dS(
Ns.
ubodyu
u line doesn't end with \r\n: {!r}iuhandle_ucommand failed: {!r}Fi����(uin_bodyu	_readlineubodyuappendu
body_callbackuNoneuFalseu_decodeuendswithu
ValueErroruformatusplitugetattruupperuhandle_unknownu	Exception(uselfulineumethutokensucmdue((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuprocess_pending�s@			

+	uNNTPv1Handler.process_pendingcCs
d|_dS(u7Flag that the client is expected to post a request bodyNT(uTrueuin_body(uself((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuexpect_body�suNNTPv1Handler.expect_bodycCs|j|�dS(uPush some binary dataN(u
_push_data(uselfudata((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu	push_data�suNNTPv1Handler.push_datacCsHtj|�}dj|j��d}|jd�}|j|�dS(uPush a string literalu
uutf-8N(utextwrapudedentujoinu
splitlinesuencodeu	push_data(uselfulit((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyupush_lit�suNNTPv1Handler.push_litcCs|jd�dS(Nu	500 What?(upush_lit(uself((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuhandle_unknown�suNNTPv1Handler.handle_unknowncCs|j|j�dS(N(upush_lituwelcome(uself((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuhandle_welcome�suNNTPv1Handler.handle_welcomecCs|jd�dS(Nu205 Bye!(upush_lit(uself((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuhandle_QUIT�suNNTPv1Handler.handle_QUITcCs|jd�dS(Nu111 20100914001155(upush_lit(uself((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuhandle_DATE�suNNTPv1Handler.handle_DATEcCs6|dkr|jd�n|jdj|��dS(Nufr.comp.lang.pythonu$211 486 761 1265 fr.comp.lang.pythonu411 No such group {}(upush_lituformat(uselfugroup((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuhandle_GROUP�suNNTPv1Handler.handle_GROUPcCs|jd�dS(Nu�            100 Legal commands
              authinfo user Name|pass Password|generic <prog> <args>
              date
              help
            Report problems to <root@example.org>
            .(upush_lit(uself((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuhandle_HELP�suNNTPv1Handler.handle_HELPcCse|dkr|jd�nE|dkr8|jd�n)|dkrT|jd�n
|jd�dS(Nu412 No newsgroup selectedu3000234u"223 3000234 <45223423@example.com>u<45223423@example.com>u223 0 <45223423@example.com>u430 No Such Article Found(uNoneupush_lit(uselfumessage_spec((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuhandle_STAT�suNNTPv1Handler.handle_STATcCs|jd�dS(Nu*223 3000237 <668929@example.org> retrieved(upush_lit(uself((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuhandle_NEXT�suNNTPv1Handler.handle_NEXTcCs|jd�dS(Nu,223 3000234 <45223423@example.com> retrieved(upush_lit(uself((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuhandle_LASTsuNNTPv1Handler.handle_LASTcCs�|dkr|jd�n�|dkrT|dkrD|jd�q�|jd�n}|dkrp|jd�na|dkr�|d	kr�|jd
�q�|dkr�|jd�q�|jd
�n
|jd�dS(Nu�                215 Newsgroups in form "group high low flags".
                comp.lang.python 0000052340 0000002828 y
                comp.lang.python.announce 0000001153 0000000993 m
                free.it.comp.lang.python 0000000002 0000000002 y
                fr.comp.lang.python 0000001254 0000000760 y
                free.it.comp.lang.python.learner 0000000000 0000000001 y
                tw.bbs.comp.lang.python 0000000304 0000000304 y
                .uACTIVEu*distutils*u�                    215 Newsgroups in form "group high low flags"
                    gmane.comp.python.distutils.devel 0000014104 0000000001 m
                    gmane.comp.python.distutils.cvs 0000000000 0000000001 m
                    .uW                    215 Newsgroups in form "group high low flags"
                    .uOVERVIEW.FMTu                215 Order of fields in overview database.
                Subject:
                From:
                Date:
                Message-ID:
                References:
                Bytes:
                Lines:
                Xref:full
                .u
NEWSGROUPSucomp.lang.pythonu�                    215 Descriptions in form "group description".
                    comp.lang.python	The Python computer language.
                    .ucomp.lang.python*u�                    215 Descriptions in form "group description".
                    comp.lang.python.announce	Announcements about the Python language. (Moderated)
                    comp.lang.python	The Python computer language.
                    .uW                    215 Descriptions in form "group description".
                    .u501 Unknown LIST keyword(uNoneupush_lit(uselfuactionuparam((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuhandle_LISTs,







uNNTPv1Handler.handle_LISTc	Cs�|dkr4|dkr4|dkr4|jd�n}|dkrh|dkrh|dkrh|jd�nI|dkr�|dkr�|d	kr�|jd
dd�n
|jd
�dS(Nucomp.lang.pythonu20100913u082004u                230 list of newsarticles (NNTP v2) created after Mon Sep 13 08:20:04 2010 follows
                <a4929a40-6328-491a-aaaf-cb79ed7309a2@q2g2000vbk.googlegroups.com>
                <f30c0419-f549-4218-848f-d7d0131da931@y3g2000vbm.googlegroups.com>
                .u100913u                230 list of newsarticles (NNTP v1) created after Mon Sep 13 08:20:04 2010 follows
                <a4929a40-6328-491a-aaaf-cb79ed7309a2@q2g2000vbk.googlegroups.com>
                <f30c0419-f549-4218-848f-d7d0131da931@y3g2000vbm.googlegroups.com>
                .u20100101u100101u090000u
too long linei�u
.uK                230 An empty list of newsarticles follows
                .(u20100101u100101(upush_lit(uselfugroupudate_strutime_str((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuhandle_NEWNEWS9s


uNNTPv1Handler.handle_NEWNEWScCs-|dkr|jd�n
|jd�dS(Nu57-59uL224 Overview information for 57-58 follows
57	Re: ANN: New Plone book with strong Python (and Zope) themes throughout	Doug Hellmann <doug.hellmann-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>	Sat, 19 Jun 2010 18:04:08 -0400	<4FD05F05-F98B-44DC-8111-C6009C925F0C@gmail.com>	<hvalf7$ort$1@dough.gmane.org>	7103	16	Xref: news.gmane.org gmane.comp.python.authors:57
58	Looking for a few good bloggers	Doug Hellmann <doug.hellmann-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>	Thu, 22 Jul 2010 09:14:14 -0400	<A29863FA-F388-40C3-AA25-0FD06B09B5BF@gmail.com>		6683	16	
59	Re: Message d'erreur incompréhensible (par moi)	Eric Brunel <eric.brunel@pragmadev.nospam.com>	Wed, 15 Sep 2010 18:09:15 +0200	<eric.brunel-2B8B56.18091515092010@news.wanadoo.fr>	<4c90ec87$0$32425$ba4acef3@reader.news.orange.fr>	1641	27	Xref: saria.nerim.net fr.comp.lang.python:1265
.
u1                224 No articles
                .(upush_lit(uselfumessage_spec((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuhandle_XOVERXs

uNNTPv1Handler.handle_XOVERubodycCsY|dkr?|jr/|jd�|j�qU|jd�n|jd�||_dS(Nu+340 Input article; end with <CR-LF>.<CR-LF>u440 Posting not permittedu240 Article received OK(uNoneu
allow_postingupush_lituexpect_bodyuposted_body(uselfubody((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuhandle_POSTxs	


uNNTPv1Handler.handle_POSTcCse|dkrK|jr;|dkr;|jd�|j�qa|jd�n|jd�||_dS(Nu+<i.am.an.article.you.will.want@example.com>u%335 Send it; end with <CR-LF>.<CR-LF>u435 Article not wantedu235 Article transferred OK(uNoneu
allow_postingupush_lituexpect_bodyuposted_body(uselfu
message_idubody((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuhandle_IHAVE�s	


uNNTPv1Handler.handle_IHAVEu�        From: "Demo User" <nobody@example.net>
        Subject: I am just a test article
        Content-Type: text/plain; charset=UTF-8; format=flowed
        Message-ID: <i.am.an.article.you.will.want@example.com>ui        This is just a test article.
        ..Here is a dot-starting line.

        -- Signed by André.u

cCs�|dkr|jd�nI|dkr8|jd�n-|dkrT|jd�n|jd�dS|j|j�|jd�dS(Nu"220 3000237 <45223423@example.com>u<45223423@example.com>u220 0 <45223423@example.com>u3000234u"220 3000234 <45223423@example.com>u430 No Such Article Foundu.(uNoneupush_litusample_article(uselfumessage_spec((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuhandle_ARTICLE�s
uNNTPv1Handler.handle_ARTICLEcCs�|dkr|jd�nI|dkr8|jd�n-|dkrT|jd�n|jd�dS|j|j�|jd�dS(Nu"221 3000237 <45223423@example.com>u<45223423@example.com>u221 0 <45223423@example.com>u3000234u"221 3000234 <45223423@example.com>u430 No Such Article Foundu.(uNoneupush_litusample_head(uselfumessage_spec((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuhandle_HEAD�s
uNNTPv1Handler.handle_HEADcCs�|dkr|jd�nI|dkr8|jd�n-|dkrT|jd�n|jd�dS|j|j�|jd�dS(Nu"222 3000237 <45223423@example.com>u<45223423@example.com>u222 0 <45223423@example.com>u3000234u"222 3000234 <45223423@example.com>u430 No Such Article Foundu.(uNoneupush_litusample_body(uselfumessage_spec((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuhandle_BODY�s
uNNTPv1Handler.handle_BODYcCs�|jr|jd�nx|dkrW|jr>|jd�q�|jd�d|_n:|dkr||jd�d|_ntdj|���dS(	Nu502 Already Logged Inuuseru 482 User Credential Already Sentu381 Password Requiredupassu281 Login SuccessfuluUnknown cred type {}T(u
_logged_inupush_litu
_user_sentuTrueu	Exceptionuformat(uselfu	cred_typeudata((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuhandle_AUTHINFO�s		

uNNTPv1Handler.handle_AUTHINFON(!u__name__u
__module__u__qualname__u__doc__uwelcomeustartu_decodeuprocess_pendinguexpect_bodyu	push_dataupush_lituhandle_unknownuhandle_welcomeuhandle_QUITuhandle_DATEuhandle_GROUPuhandle_HELPuNoneuhandle_STATuhandle_NEXTuhandle_LASTuhandle_LISTuhandle_NEWNEWSuhandle_XOVERuhandle_POSTuhandle_IHAVEusample_headusample_bodyusample_articleuhandle_ARTICLEuhandle_HEADuhandle_BODYuhandle_AUTHINFO(u
__locals__((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu
NNTPv1Handler�s:
&	
6 


u
NNTPv1HandlercBsA|EeZdZdZdd�Zdd�Zddd�ZdS(	u
NNTPv2Handleru"A handler for RFC 3977 (NNTP "v2")cCsBd}|js(|j|jd��n|j|jd��dS(Nu            101 Capability list:
            VERSION 2 3
            IMPLEMENTATION INN 2.5.1{}
            HDR
            LIST ACTIVE ACTIVE.TIMES DISTRIB.PATS HEADERS NEWSGROUPS OVERVIEW.FMT
            OVER
            POST
            READER
            .u
            AUTHINFO USERu(u
_logged_inupush_lituformat(uselfufmt((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuhandle_CAPABILITIES�s
	u!NNTPv2Handler.handle_CAPABILITIEScCstd��dS(Nu3MODE READER sent despite READER has been advertised(u	Exception(uselfu_((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuhandle_MODE�suNNTPv2Handler.handle_MODEcCs
|j|�S(N(uhandle_XOVER(uselfumessage_spec((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuhandle_OVER�suNNTPv2Handler.handle_OVERN(u__name__u
__module__u__qualname__u__doc__uhandle_CAPABILITIESuhandle_MODEuNoneuhandle_OVER(u
__locals__((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu
NNTPv2Handler�su
NNTPv2Handlercs,|EeZdZdZ�fdd�Z�S(uCapsAfterLoginNNTPv2Handleru3A handler that allows CAPABILITIES only after logincs*|js|jd�n
t�j�dS(Nu480 You must log in.(u
_logged_inupush_litusuperuhandle_CAPABILITIES(uself(u	__class__(u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuhandle_CAPABILITIES�s	u/CapsAfterLoginNNTPv2Handler.handle_CAPABILITIES(u__name__u
__module__u__qualname__u__doc__uhandle_CAPABILITIES(u
__locals__((u	__class__u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuCapsAfterLoginNNTPv2Handler�suCapsAfterLoginNNTPv2HandlercBs>|EeZdZdZdd�Zdd�Zdd�ZdS(	uModeSwitchingNNTPv2Handleru$A server that starts in transit modecCs
d|_dS(NF(uFalseu	_switched(uself((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu__init__�su#ModeSwitchingNNTPv2Handler.__init__cCsBd}|jr(|j|jd��n|j|jd��dS(Nu            101 Capability list:
            VERSION 2 3
            IMPLEMENTATION INN 2.5.1
            HDR
            LIST ACTIVE ACTIVE.TIMES DISTRIB.PATS HEADERS NEWSGROUPS OVERVIEW.FMT
            OVER
            POST
            {}READER
            .uuMODE-(u	_switchedupush_lituformat(uselfufmt((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuhandle_CAPABILITIESs
	u.ModeSwitchingNNTPv2Handler.handle_CAPABILITIEScCsd|_|jd�dS(Nu200 Posting allowedT(uTrueu	_switchedupush_lit(uselfuwhat((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuhandle_MODEs	u&ModeSwitchingNNTPv2Handler.handle_MODEN(u__name__u
__module__u__qualname__u__doc__u__init__uhandle_CAPABILITIESuhandle_MODE(u
__locals__((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuModeSwitchingNNTPv2Handler�suModeSwitchingNNTPv2Handlercs�|EeZdZ�fdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5Zd6d7�Zd8d9�Zd:d;�Z d<d=�Z!d>d?�Z"d@dA�Z#�S(BuNNTPv1v2TestsMixincst�j�dS(N(usuperusetUp(uself(u	__class__(u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyusetUpsuNNTPv1v2TestsMixin.setUpcCs |j|jj|jj�dS(N(uassertEqualuserveruwelcomeuhandler(uself((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyutest_welcomesuNNTPv1v2TestsMixin.test_welcomecCsU|jdkr(|jd|jj�n|jjdd�|jd|jj�dS(NiuAUTHINFOutestuserutestpw(unntp_versionuassertInuserveru_capsuloginuassertNotIn(uself((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu
test_authinfosu NNTPv1v2TestsMixin.test_authinfoc	CsQ|jj�\}}|j|d�|j|tjdddddd��dS(Nu111 20100914001155i�i	iiii7(userverudateuassertEqualudatetime(uselfurespudate((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu	test_date'suNNTPv1v2TestsMixin.test_datecCsI|j|jj�|jj�}|j|d�|j|jj�dS(Nu205 Bye!(uassertFalseusioucloseduserveruquituassertEqualu
assertTrue(uselfuresp((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu	test_quit,suNNTPv1v2TestsMixin.test_quitcCsE|jj�\}}|j|d�|j|ddddg�dS(Nu100 Legal commandsu8  authinfo user Name|pass Password|generic <prog> <args>u  dateu  helpu%Report problems to <root@example.org>(userveruhelpuassertEqual(uselfurespuhelp((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu	test_help2s	uNNTPv1v2TestsMixin.test_helpcCs�|jj�\}}|jt|�d�|d}|j|tdddd��|jjd�\}}|jt|�d�|d	}|j|td
ddd��dS(
Niiucomp.lang.python.announceu
0000001153u
0000000993umu*distutils*iiu!gmane.comp.python.distutils.develu
0000014104u
0000000001(userverulistuassertEqualulenu	GroupInfo(uselfurespugroupsug((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu	test_list<s
		

		uNNTPv1v2TestsMixin.test_listcCs|jjd�\}}}|j|d�|j|d�|j|d�|jjd�\}}}|j|d�|j|d�|j|d�|jtj��}|jjd�WdQX|j|jjd�|jtj��}|jj�WdQX|j|jjd�dS(	Ni��-u"223 3000234 <45223423@example.com>u<45223423@example.com>u223 0 <45223423@example.com>iu<non.existent.id>u430 No Such Article Foundu412 No newsgroup selected(userverustatuassertEqualuassertRaisesunntplibuNNTPTemporaryErroru	exceptionuresponse(uselfurespuart_numu
message_iducm((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu	test_statJsuNNTPv1v2TestsMixin.test_statcCsL|jj�\}}}|j|d�|j|d�|j|d�dS(Nu*223 3000237 <668929@example.org> retrievedi��-u<668929@example.org>(userverunextuassertEqual(uselfurespuart_numu
message_id((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu	test_nextZsuNNTPv1v2TestsMixin.test_nextcCsL|jj�\}}}|j|d�|j|d�|j|d�dS(Nu,223 3000234 <45223423@example.com> retrievedi��-u<45223423@example.com>(userverulastuassertEqual(uselfurespuart_numu
message_id((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu	test_last`suNNTPv1v2TestsMixin.test_lastcCsH|jjd�}|j|d�|jjd�}|j|d�dS(Nucomp.lang.pythonuThe Python computer language.ucomp.lang.pythonxu(userverudescriptionuassertEqual(uselfudesc((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyutest_descriptionfsu#NNTPv1v2TestsMixin.test_descriptioncCs�|jjd�\}}|j|d�|j|idd6�|jjd�\}}|j|idd6dd6�|jjd�\}}|j|i�dS(Nucomp.lang.pythonu-215 Descriptions in form "group description".uThe Python computer language.ucomp.lang.python*u4Announcements about the Python language. (Moderated)ucomp.lang.python.announceucomp.lang.pythonx(userverudescriptionsuassertEqual(uselfurespugroups((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyutest_descriptionslsu$NNTPv1v2TestsMixin.test_descriptionsc	Cs�|jjd�\}}}}}|j|jd�|�|j|d�|j|d�|j|d�|j|d�|jtj��}|jjd�WdQX|j}|j|j	jd�|j	�dS(Nufr.comp.lang.pythonu211 i�i�i�ucomp.lang.python.develu411 No such group(
userverugroupu
assertTrueu
startswithuassertEqualuassertRaisesunntplibuNNTPTemporaryErroru	exceptionuresponse(uselfurespucountufirstulastugroupucmuexc((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu
test_groupzs!	uNNTPv1v2TestsMixin.test_groupcCs�tjdddddd�}|jjd|�\}}dj|j�}|j||�|j|d	d
g�tjdddddd�}|jjd|�\}}|j|d�|j|g�dS(
Ni�i	i
iiiucomp.lang.pythonuS230 list of newsarticles (NNTP v{0}) created after Mon Sep 13 08:20:04 2010 followsuB<a4929a40-6328-491a-aaaf-cb79ed7309a2@q2g2000vbk.googlegroups.com>uB<f30c0419-f549-4218-848f-d7d0131da931@y3g2000vbm.googlegroups.com>ufr.comp.lang.pythonu)230 An empty list of newsarticles follows(udatetimeuserverunewnewsuformatunntp_versionuassertEqual(uselfudturespuidsuexpected((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyutest_newnews�s	
uNNTPv1v2TestsMixin.test_newnewscCss|jt|�d�|j|d
jd�d�|j|dd�|j|dd�|j|d
d	�dS(Niiuutf-8u-- Signed by André.isis.Here is a dot-starting line.sThis is just a test article.i����i����i����i����(uassertEqualulenudecode(uselfulines((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu_check_article_body�s
u&NNTPv1v2TestsMixin._check_article_bodycCsB|jt|�d�|j|dd�|j|dd�dS(Niis&From: "Demo User" <nobody@example.net>is7Message-ID: <i.am.an.article.you.will.want@example.com>(uassertEqualulen(uselfulines((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu_check_article_head�su&NNTPv1v2TestsMixin._check_article_headcCs\|jt|�d�|j|dd��|j|dd��|j|dd�dS(Ni	isi����(uassertEqualulenu_check_article_headu_check_article_body(uselfulines((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu_check_article_data�su&NNTPv1v2TestsMixin._check_article_datac	Csn|jj�\}}|j|d�|\}}}|j|d�|j|d�|j|�|jjd�\}}|j|d�|\}}}|j|d�|j|d�|j|�|jjd�\}}|j|d�|\}}}|j|d�|j|d�|j|�|jtj��}|jjd�WdQX|j|jjd	�dS(
Nu"220 3000237 <45223423@example.com>i��-u<45223423@example.com>i��-u"220 3000234 <45223423@example.com>u220 0 <45223423@example.com>iu<non-existent@example.com>u430 No Such Article Found(	userveruarticleuassertEqualu_check_article_datauassertRaisesunntplibuNNTPTemporaryErroru	exceptionuresponse(uselfurespuinfouart_numu
message_idulinesucm((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyutest_article�s*


uNNTPv1v2TestsMixin.test_articlecCs�tj�}|jjd|�\}}|j|d�|\}}}|j|d�|j|d�|j|g�|j�}|j|jd�t|��|j|j	d�t|��dS(Nufileu"220 3000237 <45223423@example.com>i��-u<45223423@example.com>sKFrom: "Demo User" <nobody@example.net>
Subject: I am just a test article
sUThis is just a test article.
.Here is a dot-starting line.

-- Signed by André.
(
uiouBytesIOuserveruarticleuassertEqualugetvalueu
assertTrueu
startswithuasciiuendswith(uselfufurespuinfouart_numu
message_idulinesudata((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyutest_article_file�s
u$NNTPv1v2TestsMixin.test_article_filec	Csn|jj�\}}|j|d�|\}}}|j|d�|j|d�|j|�|jjd�\}}|j|d�|\}}}|j|d�|j|d�|j|�|jjd�\}}|j|d�|\}}}|j|d�|j|d�|j|�|jtj��}|jjd�WdQX|j|jjd	�dS(
Nu"221 3000237 <45223423@example.com>i��-u<45223423@example.com>i��-u"221 3000234 <45223423@example.com>u221 0 <45223423@example.com>iu<non-existent@example.com>u430 No Such Article Found(	userveruheaduassertEqualu_check_article_headuassertRaisesunntplibuNNTPTemporaryErroru	exceptionuresponse(uselfurespuinfouart_numu
message_idulinesucm((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu	test_head�s*


uNNTPv1v2TestsMixin.test_headcCs�tj�}|jjd|�\}}|j|d�|\}}}|j|d�|j|d�|j|g�|j�}|j|jd�t|��|j	|j
d�t|��dS(Nufileu"221 3000237 <45223423@example.com>i��-u<45223423@example.com>sKFrom: "Demo User" <nobody@example.net>
Subject: I am just a test article
sUThis is just a test article.
.Here is a dot-starting line.

-- Signed by André.
(uiouBytesIOuserveruheaduassertEqualugetvalueu
assertTrueu
startswithuasciiuassertFalseuendswith(uselfufurespuinfouart_numu
message_idulinesudata((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyutest_head_file�s
u!NNTPv1v2TestsMixin.test_head_filec	Csn|jj�\}}|j|d�|\}}}|j|d�|j|d�|j|�|jjd�\}}|j|d�|\}}}|j|d�|j|d�|j|�|jjd�\}}|j|d�|\}}}|j|d�|j|d�|j|�|jtj��}|jjd�WdQX|j|jjd	�dS(
Nu"222 3000237 <45223423@example.com>i��-u<45223423@example.com>i��-u"222 3000234 <45223423@example.com>u222 0 <45223423@example.com>iu<non-existent@example.com>u430 No Such Article Found(	userverubodyuassertEqualu_check_article_bodyuassertRaisesunntplibuNNTPTemporaryErroru	exceptionuresponse(uselfurespuinfouart_numu
message_idulinesucm((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu	test_bodys*


uNNTPv1v2TestsMixin.test_bodycCs�tj�}|jjd|�\}}|j|d�|\}}}|j|d�|j|d�|j|g�|j�}|j|jd�t|��|j	|j
d�t|��dS(Nufileu"222 3000237 <45223423@example.com>i��-u<45223423@example.com>sKFrom: "Demo User" <nobody@example.net>
Subject: I am just a test article
sUThis is just a test article.
.Here is a dot-starting line.

-- Signed by André.
(uiouBytesIOuserverubodyuassertEqualugetvalueuassertFalseu
startswithuasciiu
assertTrueuendswith(uselfufurespuinfouart_numu
message_idulinesudata((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyutest_body_file&s
u!NNTPv1v2TestsMixin.test_body_filecCs�|j|jd�|�|jt|�d�|d\}}|j|d�|j|idd6dd6d	d
6dd6d
d6dd6dd6dd6�|d\}}|j|dd�|d\}}|j|dd�dS(Nu224 iii9uEDoug Hellmann <doug.hellmann-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>ufromuGRe: ANN: New Plone book with strong Python (and Zope) themes throughoutusubjectuSat, 19 Jun 2010 18:04:08 -0400udateu0<4FD05F05-F98B-44DC-8111-C6009C925F0C@gmail.com>u
message-idu<hvalf7$ort$1@dough.gmane.org>u
referencesu7103u:bytesu16u:linesu+news.gmane.org gmane.comp.python.authors:57uxrefiiu0Re: Message d'erreur incompréhensible (par moi)(u
assertTrueu
startswithuassertEqualulenuNone(uselfurespu	overviewsuart_numuover((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyucheck_over_xover_resp:s$
u(NNTPv1v2TestsMixin.check_over_xover_respcCs/|jjdd�\}}|j||�dS(Ni9i;(userveruxoverucheck_over_xover_resp(uselfurespu	overviews((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu
test_xoverOsuNNTPv1v2TestsMixin.test_xovercCs,|jjd�\}}|j||�dS(Ni9i;(i9i;(userveruoverucheck_over_xover_resp(uselfurespu	overviews((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu	test_overSsuNNTPv1v2TestsMixin.test_oversFrom: "Demo User" <nobody@example.net>
Subject: I am just a test article
Content-Type: text/plain; charset=UTF-8; format=flowed
Message-ID: <i.am.an.article.you.will.want@example.com>

This is just a test article.
.Here is a dot-starting line.

-- Signed by André.
cCs�|jj}|jt|�d�|j|dd�|j|d
d�|j|dd�|j|dd	�|j|d
d�dS(Ni
is.
is-- Signed by André.
is
is ..Here is a dot-starting line.
is(From: "Demo User" <nobody@example.net>
i����i����i����i����(uhandleruposted_bodyuassertEqualulen(uselfulines((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu_check_posted_bodydsu%NNTPv1v2TestsMixin._check_posted_bodycGs�|j}|||�f}d|j_||�}|j�|jjdd�}|||�f}d|j_||�}|j�|S(Ns
s
(usample_postuNoneuhandleruposted_bodyu_check_posted_bodyureplace(uselfufuncufile_factoryuargsupostu	func_argsuresp((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu_check_post_ihave_subos	

u(NNTPv1v2TestsMixin._check_post_ihave_subcGs�|j|dt|�}|j||�|j|dt|�}|j||�|j|dtj|�}|j||�dd�}|j|d||�}|j||�dd�}|j|d||�}|j||�dS(Nufile_factorycSst|jdd��S(NukeependsT(uiteru
splitlinesuTrue(ub((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu	iterlines�su6NNTPv1v2TestsMixin.check_post_ihave.<locals>.iterlinescSst|jdd��S(NukeependsF(uiteru
splitlinesuFalse(ub((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu	iterlines�s(u_check_post_ihave_sububytesuassertEqualu	bytearrayuiouBytesIO(uselfufuncusuccess_respuargsurespu	iterlines((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyucheck_post_ihavesu#NNTPv1v2TestsMixin.check_post_ihavec	Csj|j|jjd�d|j_|jtj��}|jj|j	�WdQX|j
|jjd�dS(Nu240 Article received OKu440 Posting not permittedF(
ucheck_post_ihaveuserverupostuFalseuhandleru
allow_postinguassertRaisesunntplibuNNTPTemporaryErrorusample_postuassertEqualu	exceptionuresponse(uselfucm((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu	test_post�suNNTPv1v2TestsMixin.test_postc
Csd|j|jjdd�|jtj��}|jjd|j�WdQX|j|jj	d�dS(Nu235 Article transferred OKu+<i.am.an.article.you.will.want@example.com>u<another.message.id>u435 Article not wanted(
ucheck_post_ihaveuserveruihaveuassertRaisesunntplibuNNTPTemporaryErrorusample_postuassertEqualu	exceptionuresponse(uselfucm((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu
test_ihave�suNNTPv1v2TestsMixin.test_ihavecCsAtjdddddd�}|jtj|jjd|�dS(Ni�ii	iucomp.lang.python(udatetimeuassertRaisesunntplibu
NNTPDataErroruserverunewnews(uselfudt((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyutest_too_long_lines�su&NNTPv1v2TestsMixin.test_too_long_lines($u__name__u
__module__u__qualname__usetUputest_welcomeu
test_authinfou	test_dateu	test_quitu	test_helpu	test_listu	test_statu	test_nextu	test_lastutest_descriptionutest_descriptionsu
test_grouputest_newnewsu_check_article_bodyu_check_article_headu_check_article_datautest_articleutest_article_fileu	test_headutest_head_fileu	test_bodyutest_body_fileucheck_over_xover_respu
test_xoveru	test_overusample_postu_check_posted_bodyu_check_post_ihave_subucheck_post_ihaveu	test_postu
test_ihaveutest_too_long_lines(u
__locals__((u	__class__u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuNNTPv1v2TestsMixinsB

uNNTPv1v2TestsMixincBs2|EeZdZdZdZeZdd�ZdS(uNNTPv1Testsu*Tests an NNTP v1 server (no capabilities).icCsO|jj�}|j|i�|j|jjd�|j|jjd�dS(Ni(userverugetcapabilitiesuassertEqualunntp_versionunntp_implementationuNone(uselfucaps((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu	test_caps�suNNTPv1Tests.test_capsN(u__name__u
__module__u__qualname__u__doc__unntp_versionu
NNTPv1Handleru
handler_classu	test_caps(u
__locals__((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuNNTPv1Tests�suNNTPv1TestscBs2|EeZdZdZdZeZdd�ZdS(uNNTPv2Testsu,Tests an NNTP v2 server (with capabilities).ic	Cs�|jj�}|j|iddgd6ddgd6dgd6gd	6d
ddd
ddgd6gd6gd6gd6�|j|jjd�|j|jjd�dS(Nu2u3uVERSIONuINNu2.5.1uIMPLEMENTATIONuUSERuAUTHINFOuHDRuACTIVEuACTIVE.TIMESuDISTRIB.PATSuHEADERSu
NEWSGROUPSuOVERVIEW.FMTuLISTuOVERuPOSTuREADERiu	INN 2.5.1(userverugetcapabilitiesuassertEqualunntp_versionunntp_implementation(uselfucaps((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu	test_caps�s


	uNNTPv2Tests.test_capsN(u__name__u
__module__u__qualname__u__doc__unntp_versionu
NNTPv2Handleru
handler_classu	test_caps(u
__locals__((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuNNTPv2Tests�suNNTPv2TestscBs2|EeZdZdZdZeZdd�ZdS(uCapsAfterLoginNNTPv2TestsuCTests a probably NNTP v2 server with capabilities only after login.icCsC|j|jji�|jjdd�|jd|jj�dS(NutestuserutestpwuVERSION(uassertEqualuserveru_capsuloginuassertIn(uself((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyutest_caps_only_after_login�su4CapsAfterLoginNNTPv2Tests.test_caps_only_after_loginN(u__name__u
__module__u__qualname__u__doc__unntp_versionuCapsAfterLoginNNTPv2Handleru
handler_classutest_caps_only_after_login(u
__locals__((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuCapsAfterLoginNNTPv2Tests�suCapsAfterLoginNNTPv2TestscBs2|EeZdZdZdZeZdd�ZdS(uSendReaderNNTPv2TestsuoSame tests as for v2 but we tell NTTP to send MODE READER to a server
    that isn't in READER mode by default.icCs|jd|jj�dS(NuREADER(uassertInuserveru_caps(uself((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu(test_we_are_in_reader_mode_after_connect�su>SendReaderNNTPv2Tests.test_we_are_in_reader_mode_after_connectN(u__name__u
__module__u__qualname__u__doc__unntp_versionuModeSwitchingNNTPv2Handleru
handler_classu(test_we_are_in_reader_mode_after_connect(u
__locals__((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyuSendReaderNNTPv2Tests�suSendReaderNNTPv2TestscBsz|EeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Ze	j
ed
�dd��ZdS(u	MiscTestscsq�fdd�}|dd�|dd�|dd�|dd�|dd	�|d
d�|dd�dS(
Ncs�jtj|�|�dS(N(uassertEqualunntplibu
decode_header(uaub(uself(u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyugives�su+MiscTests.test_decode_header.<locals>.givesuua plain headeru with extra  spaces u%=?ISO-8859-15?Q?D=E9buter_en_Python?=uDébuter en Pythonu=?utf-8?q?Re=3A_=5Bsqlite=5D_probl=C3=A8me_avec_ORDER_BY_sur_des_cha?= =?utf-8?q?=C3=AEnes_de_caract=C3=A8res_accentu=C3=A9es?=uPRe: [sqlite] problème avec ORDER BY sur des chaînes de caractères accentuéesu,Re: =?UTF-8?B?cHJvYmzDqG1lIGRlIG1hdHJpY2U=?=uRe: problème de matriceu0Re: Message d'erreur incompréhensible (par moi)((uselfugives((uselfu6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyutest_decode_header�s



uMiscTests.test_decode_headercCs�dddddddg}|jtj|�dd	d
ddddg�dddddd
dg}|jtj|�dd	d
ddddg�dddddddg}|jtj|�dd	d
ddddg�dddddddddg	}|jtj|�dd	d
ddddddg	�dddddd
dddg	}|jtj|�dd	d
ddddddg	�dddddd
ddg}|jtj|�dd	d
dddddg�dS(NuSubject:uFrom:uDate:uMessage-ID:uReferences:u:bytesu:linesusubjectufromudateu
message-idu
referencesuBytes:uLines:usubject:uFROM:uDaTe:umessage-ID:uBYTES:u	Xref:fulluDistribution:fulluxrefudistributionu	Xref:FULLuDistribution:FULL(uassertEqualunntplibu_parse_overview_fmt(uselfulines((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyutest_parse_overview_fmt�s@


		u!MiscTests.test_parse_overview_fmtcCs&tjdg}dg}tj||�}|\\}}|j|d�|j|idd6dd6dd	6d
d6dd
6dd6dd6dd6�dg}tj||�}|\\}}|j|dd�dg}tj||�}|\\}}|j|d
d�|j|dd�dS(Nuxrefu�3000234	I am just a test article	"Demo User" <nobody@example.com>	6 Oct 1998 04:38:40 -0500	<45223423@example.com>	<45454@example.net>	1234	17	Xref: news.example.com misc.test:3000363i��-uI am just a test articleusubjectu "Demo User" <nobody@example.com>ufromu6 Oct 1998 04:38:40 -0500udateu<45223423@example.com>u
message-idu<45454@example.net>u
referencesu1234u:bytesu17u:linesu"news.example.com misc.test:3000363u�3000234	I am just a test article	"Demo User" <nobody@example.com>	6 Oct 1998 04:38:40 -0500	<45223423@example.com>	<45454@example.net>	1234	17		u�3000234	I am just a test article	"Demo User" <nobody@example.com>	6 Oct 1998 04:38:40 -0500	<45223423@example.com>	 	1234	17	Xref: 	u u(unntplibu_DEFAULT_OVERVIEW_FMTu_parse_overviewuassertEqualuNone(uselfufmtulinesuoverviewuart_numufields((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyutest_parse_overview s.			uMiscTests.test_parse_overviewc	s��fdd�}|dddddddd	�|d
ddddddd	�|dddddddd	�|d
ddddddd	�dS(Ncs)�jtj||�tj|��dS(N(uassertEqualunntplibu_parse_datetimeudatetime(uaubuc(uself(u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyugivesOsu,MiscTests.test_parse_datetime.<locals>.givesu19990623135624i�iii
i8iu19990623u135624u990623u090623i�(uNone(uselfugives((uselfu6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyutest_parse_datetimeNs
uMiscTests.test_parse_datetimec	s��fdd�}|ddddddd	d
�|dddddddd
�|d
ddddddd��fdd�}|dddd	d�|ddddd�|d
dddd�dS(Nc	sctj||||||�}�jtj|�||f��jtj|d�||f�dS(NF(udatetimeuassertEqualunntplibu_unparse_datetimeuFalse(	uyuMuduhumusudate_strutime_strudt(uself(u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyugives\s

u.MiscTests.test_unparse_datetime.<locals>.givesi�iii
i8iu19990623u135624i�u20000623i�iiiiu20100605u010203csZtj|||�}�jtj|�||f��jtj|d�||f�dS(NF(udatetimeudateuassertEqualunntplibu_unparse_datetimeuFalse(uyuMududate_strutime_strudt(uself(u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyugivesfs

u000000((uselfugives((uselfu6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyutest_unparse_datetimeYsuMiscTests.test_unparse_datetimec	s��fdd�}|ddddddd	d
�|dddddddd
�|d
ddddddd��fdd�}|dddd	d�|ddddd�|d
dddd�dS(Nc	sDtj||||||�}�jtj|d�||f�dS(NT(udatetimeuassertEqualunntplibu_unparse_datetimeuTrue(	uyuMuduhumusudate_strutime_strudt(uself(u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyugivesssu5MiscTests.test_unparse_datetime_legacy.<locals>.givesi�iii
i8iu990623u135624i�u000623i�iiiiu100605u010203cs;tj|||�}�jtj|d�||f�dS(NT(udatetimeudateuassertEqualunntplibu_unparse_datetimeuTrue(uyuMududate_strutime_strudt(uself(u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyugives{su000000((uselfugives((uselfu6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyutest_unparse_datetime_legacypsu&MiscTests.test_unparse_datetime_legacyurequires SSL supportcCs|jttd��dS(NuNNTP_SSL(u
assertTrueuhasattrunntplib(uself((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyutest_ssl_support�suMiscTests.test_ssl_supportN(
u__name__u
__module__u__qualname__utest_decode_headerutest_parse_overview_fmtutest_parse_overviewutest_parse_datetimeutest_unparse_datetimeutest_unparse_datetime_legacyuunittestu
skipUnlessusslutest_ssl_support(u
__locals__((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu	MiscTests�s(.u	MiscTestscCs,tttttttg}tj|�dS(N(	u	MiscTestsuNNTPv1TestsuNNTPv2TestsuCapsAfterLoginNNTPv2TestsuSendReaderNNTPv2TestsuNetworkedNNTPTestsuNetworkedNNTP_SSLTestsusupporturun_unittest(utests((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu	test_main�su	test_mainu__main__(&uiousocketudatetimeutextwrapuunittestu	functoolsu
contextlibutestusupportunntplibuNNTPu	GroupInfoussluImportErroruNoneuTIMEOUTuNetworkedNNTPTestsMixinuwrap_methodsuTestCaseuNetworkedNNTPTestsu
skipUnlessuNetworkedNNTP_SSLTestsu	RawIOBaseu
_NNTPServerIOuMockedNNTPTestsMixinuMockedNNTPWithReaderModeMixinu
NNTPv1Handleru
NNTPv2HandleruCapsAfterLoginNNTPv2HandleruModeSwitchingNNTPv2HandleruNNTPv1v2TestsMixinuNNTPv1TestsuNNTPv2TestsuCapsAfterLoginNNTPv2TestsuSendReaderNNTPv2Testsu	MiscTestsu	test_mainu__name__(((u6/opt/alt/python33/lib64/python3.3/test/test_nntplib.pyu<module>sN
�
,�F
��
�