HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //usr/lib/python3/dist-packages/twisted/words/test/__pycache__/test_service.cpython-38.pyc
U


W[.o�@sdZddlZddlmZmZmZddlmZmZm	Z	ddl
mZmZm
Z
mZddlmZddlmZddlmZdd	lmZdd
lmZmZddlmZGdd
�d
ej�ZGdd�de�ZGdd�dej�Z Gdd�dej!�Z"e�#e"ej$�Gdd�dej�Z%dS)z%
Tests for L{twisted.words.service}.
�N)�portal�credentials�checkers)�address�defer�reactor)�Deferred�DeferredList�
maybeDeferred�succeed)�unicode)�pb)�
proto_helpers)�unittest)�ewords�service)�ircc@sTeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS)�
RealmTestscCs$t�d�}d|��}t|d|���}t|d|���}d|��d}ttd|���}ttd|���}|�||��}	|�||	j�|�	||���
|�t||d�|�|d	|����}	|�d	|��|	j�|�|d	|����}
|�|	|
�t||d
�|�	|d|�����
|�dS)N�	realmname�test�create�getZ	OnRequestZ	DuplicateZNoSuchT�newFZanother)
r�InMemoryWordsRealm�lower�getattr�titler�successResultOf�assertEqual�name�failureResultOf�trap�setattr�assertIdentical)�selfZkind�realmrrr�flagZdupExcZ	noSuchExc�pZnewp�r(�A/usr/lib/python3/dist-packages/twisted/words/test/test_service.py�_entityCreationTests"
zRealmTests._entityCreationTestcCs
|�d�S)N�User�r*�r$r(r(r)�testUserCreation5szRealmTests.testUserCreationcCs
|�d�S)N�Groupr,r-r(r(r)�testGroupCreation9szRealmTests.testGroupCreationcCsnt�d�}|�|�d��}|�|�d��}|�||�|�|�d��}|�||�|�|�d���t	j
�dS)Nr�testuserZ
nosuchuser)rrr�
createUser�getUserr#�
lookupUserr r!rZ
NoSuchUser)r$r%�user�	retrieved�lookedUpr(r(r)�testUserRetrieval=s
�zRealmTests.testUserRetrievalcCslt�d�}t�d�}|�|�|��}|�||�|�|�d��}|�||�|�|�d��}|�||�dS)Nrr1)rrr+r�addUserr#r3r4)r$r%r'r5r6r7r(r(r)�testUserAdditionPs

zRealmTests.testUserAdditioncCsRt�d�}|�|�d��}|�|�d��}|�||�|�|�d���tj	�dS)Nr�	testgroupZnosuchgroup)
rrr�createGroup�getGroupr#r r!rZNoSuchGroup)r$r%�groupr6r(r(r)�testGroupRetrievalas
�zRealmTests.testGroupRetrievalcCsDt�d�}t�d�}|�|�|��|�|�d��}|�||�dS)Nrr;Z	testGroup)rrr/r�addGroupr=r#)r$r%r'r>r(r(r)�testGroupAdditionns


zRealmTests.testGroupAdditioncCs.t�d�}|�|�d��|�|�d��dS)z�
        Try creating a group with the same name as an existing user and
        assert that it succeeds, since users and groups should not be in the
        same namespace and collisions should be impossible.
        rrN)rrrr2r<)r$r%r(r(r)�testGroupUsernameCollisionws
z%RealmTests.testGroupUsernameCollisioncCsbt�d�}|�|�d��|�|�d��|�|���}dd�|D�}|��|�|ddg�dS)Nr�groupone�grouptwocSsg|]
}|j�qSr()r)�.0�gr(r(r)�
<listcomp>�sz.RealmTests.testEnumeration.<locals>.<listcomp>)rrrr<�
itergroups�sortr)r$r%�groups�nr(r(r)�testEnumeration�s
zRealmTests.testEnumerationN)�__name__�
__module__�__qualname__r*r.r0r8r:r?rArBrLr(r(r(r)rs 
	rc@s*eZdZe�ddd�fdd�Zdd�ZdS)	�TestCaseUserAggZTCP�	127.0.0.1i1�cCsB||_t��|_|�|�|_|j|j_|j|j_|j�|j�dS�N)r5rZ StringTransportWithDisconnection�	transportZ
buildProtocol�protocol�mindZmakeConnection)r$r5r%�factoryrr(r(r)�__init__�s


zTestCaseUserAgg.__init__cCs|j�|�dSrR)rTZdataReceived)r$�stuffr(r(r)�write�szTestCaseUserAgg.writeN)rMrNrOrZIPv4AddressrWrYr(r(r(r)rP�s	rPc@s�eZdZddddddddd	d
dgZdd
�Zdd�Zd=dd�Zdd�Zd>dd�Zdd�Z	dd�Z
dd�Zdd�Zdd �Z
d!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Zd9d:�Zd;d<�ZdS)?�IRCProtocolTests�useruser�	otheruser�someguy�	firstuserZusername�userone�usertwo�	userthreeZuserfoursuserfive�someusercCs�t�d�|_t��|_t�|j|jg�|_t�|j|j�|_	g}|j
D]<}t|t�r^|�
d�}|�|j�|��|j�||d�qFt|�S)Nr�utf-8�	_password)rrr%r�'InMemoryUsernamePasswordDatabaseDontUse�checkerr�PortalZ
IRCFactoryrV�STATIC_USERS�
isinstance�bytes�decode�appendr2r9r	)r$�c�nickr(r(r)�setUp�s



zIRCProtocolTests.setUpcCsV|�|�}tjtjtjtjg}|D]\}}}||kr"|�|�q"|�|d|f�dS)z�
        The user has been greeted with the four messages that are (usually)
        considered to start an IRC session.

        Asserts that the required responses were received.
        zMissing responses for %rN)�	_responserZRPL_WELCOMEZRPL_YOURHOSTZRPL_CREATEDZ
RPL_MYINFO�remove�assertFalse)r$r5�responseZexpected�prefixZcommand�argsr(r(r)�_assertGreeting�s
�z IRCProtocolTests._assertGreetingNcCs4|dkr|d}|�d|f�|�d|f�dS)Nrdz	PASS %s
zNICK %s extrainfo
)rY)r$r5rn�passwordr(r(r)�_login�szIRCProtocolTests._logincCs2|�|j�|��}t||j|j�}|�||�|SrR)rr%r4rPrVrx)r$rr5Zaggr(r(r)�
_loggedInUser�szIRCProtocolTests._loggedInUsercCsp|j��}ttkr&t|t�r&|�d�}|��}|j��g}tt	j
|�D]"}|dks`|d|krH|�|�qH|S)z�
        Extracts the user's response, and returns a list of parsed lines.
        If messageType is defined, only messages of that type will be returned.
        rcN�)rS�valuerj�strrirk�
splitlines�clear�maprZparsemsgrl)r$r5ZmessageTypers�result�messager(r(r)rp�s


zIRCProtocolTests._responsecCs|�d�}|�|�dS)Nr^)ryrv)r$r5r(r(r)�
testPASSLogin�s
zIRCProtocolTests.testPASSLogincCs�|�|j�d��}t||j|j�}|�d�|�|d�}|�t|�d�|�|ddt	j
�|�|ddd�|�|ddddg�|j��|�d�|�
|�d	S)
z�
        Sending NICK without PASS will prompt the user for their password.
        When the user sends their password to NickServ, it will respond with a
        Greeting.
        r^zNICK firstuser extrainfo
�PRIVMSGrzr�z	Password?z%PRIVMSG nickserv firstuser_password
N)rr%r4rPrVrYrpr�lenrZNICKSERVrSr~rv�r$r^r5rsr(r(r)�test_nickServLogin�s


z#IRCProtocolTests.test_nickServLogincCsh|�|j�d��}t||j|j�}|�|dd�|�|d�}|�t|�d�|�|ddddg�dS)Nr^Z	wrongpassr�rzrr�zLogin failed.  Goodbye.)	rr%r4rPrVrxrprr�r�r(r(r)�testFailedLogin�sz IRCProtocolTests.testFailedLogincs^g�|�|j�d��}t||j|j�}|�|d��fdd�|j_|�d�|�	�dg�dS)Nr^cs
��d�S)NT)rlr(��logoutr(r)�<lambda>�z-IRCProtocolTests.testLogout.<locals>.<lambda>zQUIT
T)
rr%r4rPrVrxrTr�rYr)r$r^r5r(r�r)�
testLogouts
zIRCProtocolTests.testLogoutcCs�|�|j�d��}|�|j�d��}d|jd<t||j|j�}|�|d�|j�	�|�
d�|�|�}|�t
|�d�|�|ddd�|�|dd	d
�|�|dddg�|�|d	d	d
�|�|dd	d�|�|dd	d�|�|dd	d�|�d�}|j�	�|j�	�|�
d�|�|�}|�|�}|�t
|�d	�|�|ddd�|�|dd	d
�|�|dddg�|�|d	dd�|�|d	d	d
�|�|d	dddddgddddgg�dS)Nr^�somechannelzsome random topic�topic�JOIN #somechannel
�rzfirstuser!firstuser@realmnamerzZJOINr��#somechannelZ353Z366��332��333r\�otheruser!otheruser@realmnamer�=zfirstuser otheruserzotheruser firstuser)rr%r4r<�metarPrVrxrSr~rYrprr�ryZassertIn)r$r^r�r5rs�other�eventr(r(r)�testJoinsD
�











�zIRCProtocolTests.testJoincCs�|�|j�d��}|�|j�d��t||j|j�}|�|d�|j��|�	d�|�
|�}dd�|D�}|�d|�|�d|�dS)	zo
        When a user joins a group without a topic, no topic information is
        sent to that user.
        r^r�r�cSsg|]}|d�qS)rzr()rE�rr(r(r)rGZsz7IRCProtocolTests.test_joinTopicless.<locals>.<listcomp>r�r�N)rr%r4r<rPrVrxrSr~rYrpZassertNotIn)r$r^r5rsZ
responseCodesr(r(r)�test_joinTopiclessJs


z#IRCProtocolTests.test_joinTopiclesscCs|�d�}|�|j�d��|�d�|j��|�d�}|�d�|j��|j��|�d�|�|�}|�|�}|�t	|�d�|�|ddd�|�|ddd	�|�|dd
ddg�|�||�|�d�|j��|j��|�d
�|�|�}|�|�}|�t	|�d�|�|ddd�|�|ddd	�|�|dd
ddg�|�||�|�d�|j��|j��|�d�|�|�}|�|�}|�t	|�d�|�|ddd�|�|ddd	�|�|dd
ddg�|�||�dS)Nr[r�r�r\zPART #somechannel
rzr�useruser!useruser@realmnameZPARTr�r�Zleavingz(PART #somechannel :goodbye stupidheads
zgoodbye stupidheadssJOIN #somechannel
s)PART #somechannel :goodbye stupidheads1
zgoodbye stupidheads1�
ryrr%r<rYrSr~rprr��r$r5r�rsr�r(r(r)�	testLeave_sL





















zIRCProtocolTests.testLeavecCsT|�d�}t�d�}d|jd<d|jd<d|jd<|�|j�|��|j��|�	d	�|�
|�}|�|d
dd�|�|d
d
d�|�|d
ddddg�|�|dd
d�|�|ddddddg�|j��|�	d�|�
|�}|�|dd
d�|�|dddddg�|�|d
d
d�|�|d
dddddg�dS)Nr[r�zThis is a test topic.r�Zsome_fellowZtopic_authoriqˢ�
topic_dater�r�rrrzr�r�r�r�r�Z77777777�TOPIC #somechannel
)ryrr/r�rr%r@rSr~rYrpr)r$r5r>rsr(r(r)�testGetTopic�s*










zIRCProtocolTests.testGetTopiccCst|�d�}|�|j�d��}|�d�|�d�}|�d�|j��|j��|�d�|�|�}|�|�}|�||�|�|ddd�|�|ddd	�|�|dd
ddg�|j��d
|j	d<|�d�|�|�}|�|ddd�|�|dd
dddg�|�|ddd�|�|dd
ddddg�|j��|�d�|�|�}|�|ddd�dS)Nr[r�r�r\z,TOPIC #somechannel :This is the new topic.
rr�rzZTOPICr�r�zThis is the new topic.i90r�r�r�r�Z12345zTOPIC #asdlkjasd
Z403)
ryrr%r<rYrSr~rprr�)r$r5r�r�rsr�r(r(r)�testSetTopic�s8

�














zIRCProtocolTests.testSetTopiccCs�|�d�}|�|j�d��|�d�|�d�}|�d�|j��|j��|�d�|�|�}|�|�}|�|�|�	t
|�d�|�	|ddd�|�	|ddd	d
�|�	|dddd
g�dS)Nr[r�r�r\z%PRIVMSG #somechannel :Hello, world.
rzrr�r����r�r�z
Hello, world.)ryrr%r<rYrSr~rprrrr�r�r(r(r)�testGroupMessage�s









z!IRCProtocolTests.testGroupMessagecCs
|�d�}|�d�}|j��|j��|�d�|�|�}|�|�}|�|�|�t|�d�|�|ddd�|�|ddd�|�|dddd	g�|�d
�|�|�}|�t|�d�|�|ddd�|�|ddd�|�|dddd
dg�dS)Nr[r\z#PRIVMSG otheruser :Hello, monkey.
rzrr�r�r�zHello, monkey.z)PRIVMSG nousernamedthis :Hello, monkey.
rZ401ZnousernamedthiszNo such nick/channel.)ryrSr~rYrprrrr�r�r(r(r)�testPrivateMessages$









z#IRCProtocolTests.testPrivateMessagecCsP|�d�}|j��|�d�|�|�}|�t|�d�|�|ddd�dS)Nr[zOPER user pass
rzrZ491�ryrSr~rYrprr��r$r5rsr(r(r)�testOper!s



zIRCProtocolTests.testOpercCs||�d�}|j��|�d�|�|�}|�t|�d�|�|ddd�|�|ddd�|�|ddddg�dS)	Nr[zMODE useruser
rzrrZ221r��+r�r�r(r(r)�testGetUserMode,s



z IRCProtocolTests.testGetUserModecCsP|�d�}|j��|�d�|�|�}|�t|�d�|�|ddd�dS)Nr[zMODE useruser +abcd
rzr�472r�r�r(r(r)�testSetUserMode9s



z IRCProtocolTests.testSetUserModecCsl|�d�}|�|j�d��|�d�|j��|�d�|�|�}|�t	|�d�|�|ddd�dS)Nr[r�r�zMODE #somechannel
rzrZ324r�r�r(r(r)�testGetGroupModeDs




z!IRCProtocolTests.testGetGroupModecCsl|�d�}|�|j�d��|�d�|j��|�d�|�|�}|�t	|�d�|�|ddd�dS)Nr[�	groupname�JOIN #groupname
zMODE #groupname +abcd
rzrr�r�r�r(r(r)�testSetGroupModeSs




z!IRCProtocolTests.testSetGroupModec	Cs�t�d�}|�|j�|��g}dD]&}|�|�}|�|�|d�d�q$|D]}|j�	�qP|d�d�|�
|d�}|�|�
|d��|�|�
|d��d	d
dg}|dd�D]�\}}	}
|�|d�|�|	d
�|
\}}}}
}}}}|�|d	�|�|d�|�
||k�|�|
d�|�|d�|�|�|�|d�|�|d|�q�|�|�|d\}}	}
|�|d�|�|	d�|
\}}}|�|d	�|�|d�|�|d�dS)Nr�)r_r`rar�r�rzWHO #groupname
rzr�r_r`rarZ352z
#groupname�Hz0 Z315zEnd of /WHO list.)rr/rr%r@ryrlrYrSr~rprrrZ
assertTruerq)r$r>Zusersrn�ur5r�Z	wantusersrt�coderXZmynameZ	theirnameZ	theirhostZtheirserverZ	theirnickr&ZextraZchannelr(r(r)�testWhobsD






zIRCProtocolTests.testWhocCs�|�d�}|j��|�|j�d��}dd�|_d|jd<|�d�|�	|�}|�
t|�d�|\}}|�
|d	d
�|�
|dd�|�
|dd	d�|�
|ddd�|�
|ddd
�|�
|ddd�|�
|d	d
�|�
|dd�|�
|dd	d�|�
|ddd�|j��|�d�|�	|�}|�
t|�d�|\}}|�
|dd�|�
|ddd�|�
|ddd
�|�
|ddd�|�
|dd�dS)Nrb�	somegroupcSstd�S)N�)rr(r(r(r)r��r�z+IRCProtocolTests.testList.<locals>.<lambda>zthis is the topic woor�zLIST #somegroup
r�rrrzZ322Z17r�Z323zEnd of /LISTzLIST
)ryrSr~rr%r<�sizer�rYrprr�)r$r5r�r�Zresp�endZfg1r(r(r)�testList�s:








zIRCProtocolTests.testListc	Cs�|�d�}t�d�}dd�|_d|_t��d|_|�|j�	|��|j
��|�d�|�
|�}|�t|�d�|\}}}}}|�|d	d
�|�|dd�|�|d
d	d�|�|d
dd�|�|d
d
d�|�|d
dd
�|�|d
dd�|�|d
dd�|�|d	d
�|�|dd�|�|d
d	d�|�|d
dd�|�|d
d
d
�|�|d
dd�|�|d	d
�|�|dd�|�|d
d	d�|�|d
dd�|�|d
d
d�|�|d
dd�|�|d
dd�|�|d	d
�|�|dd�|�|d
d	d�|�|d
dd�|�|d
d
d�|�|d	d
�|�|dd�|�|d
d	d�|�|d
dd�|�|d
d
d�dS)Nr]�otherguycSstt�d�t�d�g�S)NZgroupAZgroupB)�iterrr/r(r(r(r)r��s�z,IRCProtocolTests.testWhois.<locals>.<lambda>�
�zWHOIS otherguy
r�rrrzZ311r�r�r��*Z312zHi mom!Z317Z15Z10zseconds idle, signon timeZ319z#groupA #groupBZ318zEnd of WHOIS list.)ryrr+rHZsignOn�timeZlastMessagerr%r9rSr~rYrprr�)	r$r5r�r�ZwuserZwserverZidleZchannelsr�r(r(r)�	testWhois�sT





zIRCProtocolTests.testWhois)N)N)rMrNrOrhrorvrxryrpr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r(r(r(r)rZ�sH�


7<#,
+,rZc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�TestMindcOsg|_g|_g|_g|_dSrR)�joins�parts�messagesr�)r$�a�kwr(r(r)rW�szTestMind.__init__cCs|j�||f�dSrR)r�rl)r$r5r>r(r(r)�remote_userJoined�szTestMind.remote_userJoinedcCs|j�|||f�dSrR)r�rl)r$r5r>�reasonr(r(r)�remote_userLeft�szTestMind.remote_userLeftcCs|j�|||f�dSrR)r�rl)r$ZsenderZ	recipientr�r(r(r)�remote_receiveszTestMind.remote_receivecCs|j�||f�dSrR)r�rl)r$r>r�r(r(r)�remote_groupMetaUpdateszTestMind.remote_groupMetaUpdateN)rMrNrOrWr�r�r�r�r(r(r(r)r��s
r�c@s:eZdZdd�Zdd�Zdd�Zdd�Zejd	d
��Z	dS)�PBProtocolTestscCs�t�d�|_t��|_t�|j|jg�|_t�	|j�|_
|j|j
_d|j
_
t��|_d|j_
t�d|j
�|_t�d|j��j|j�|_dS)NrTrrQ)rrr%rrerfrrgr
ZPBServerFactoryZ
serverFactory�_protocolFactoryrTZunsafeTracebacksZPBClientFactory�
clientFactoryrZ	listenTCP�
serverPortZ
connectTCPZgetHostZport�
clientConnr-r(r(r)ro
s"
�


�zPBProtocolTests.setUpcOst�d�|_|jS)Nr)r
ZBroker�_serverProtocol)r$rur�r(r(r)r�sz PBProtocolTests._protocolFactorycs8t��|j��fdd��tt|jj�t|jj��g�S)Ncs
��d�SrR)�callbackr(�Zd3r(r)r�"r�z*PBProtocolTests.tearDown.<locals>.<lambda>)	rr�ZnotifyOnDisconnectr	r
r�Z
stopListeningr�Z
disconnectr-r(r�r)�tearDown s

�zPBProtocolTests.tearDowncsX|}t|t�r|�d�}t�||���j�||��j�|�}|�	���fdd��|S)N�asciics�j����SrR)r�Zlogin)Zign�ZcredsrUr$r(r)r�/r�z1PBProtocolTests._loggedInAvatar.<locals>.<lambda>)
rir�encoderZUsernamePasswordrfr9r%r2ZaddCallback)r$rrwrUZ	nameBytes�dr(r�r)�_loggedInAvatar(s

zPBProtocolTests._loggedInAvatarc	cs�t�}|�dd|�V}t�}|�dd|�V}t�}|�dd|�V}|j�d�V|j�d�V|�d�V}|�d�V}|�d�V|�d�V|�d�V|�d	d
i�V|��V|��VdS)N�onesp1�twosp2sthreesp3Zfoobarsbarfoostextshello, monkeys)r�r�r%r<�join�sendZleave)	r$Zmindoner�Zmindtwor�Z	mindThreeZthreerCrDr(r(r)�
testGroups3s 
zPBProtocolTests.testGroupsN)
rMrNrOror�r�r�rZinlineCallbacksr�r(r(r(r)r�	sr�)&�__doc__r�Ztwisted.credrrrZtwisted.internetrrrZtwisted.internet.deferrr	r
rZtwisted.python.compatrZtwisted.spreadr
Ztwisted.testrZ
twisted.trialrZ
twisted.wordsrrZtwisted.words.protocolsrZTestCaser�objectrPrZZPBMindr�ZsetUnjellyableForClassZPBMindReferencer�r(r(r(r)�<module>s(}V