本文整理汇总了Python中twisted.words.protocols.irc.IRCClient方法的典型用法代码示例。如果您正苦于以下问题:Python irc.IRCClient方法的具体用法?Python irc.IRCClient怎么用?Python irc.IRCClient使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类twisted.words.protocols.irc
的用法示例。
在下文中一共展示了irc.IRCClient方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_fullVERSION
# 需要导入模块: from twisted.words.protocols import irc [as 别名]
# 或者: from twisted.words.protocols.irc import IRCClient [as 别名]
def test_fullVERSION(self):
"""
The response to a CTCP VERSION query includes the version number and
environment information, as specified by L{IRCClient.versionNum} and
L{IRCClient.versionEnv}.
"""
self.client.versionName = "FrobozzIRC"
self.client.versionNum = "1.2g"
self.client.versionEnv = "ZorkOS"
self.client.ctcpQuery_VERSION("nick!guy@over.there", "#theChan", None)
versionReply = ("NOTICE nick :%(X)cVERSION %(vname)s:%(vnum)s:%(venv)s"
"%(X)c%(EOL)s"
% {'X': irc.X_DELIM,
'EOL': irc.CR + irc.LF,
'vname': self.client.versionName,
'vnum': self.client.versionNum,
'venv': self.client.versionEnv})
reply = self.file.getvalue()
self.assertEqualBufferValue(reply, versionReply)
示例2: test_receivedMOTD
# 需要导入模块: from twisted.words.protocols import irc [as 别名]
# 或者: from twisted.words.protocols.irc import IRCClient [as 别名]
def test_receivedMOTD(self):
"""
Lines received in I{RPL_MOTDSTART} and I{RPL_MOTD} are delivered to
L{IRCClient.receivedMOTD} when I{RPL_ENDOFMOTD} is received.
"""
lines = [
":host.name 375 nickname :- host.name Message of the Day -",
":host.name 372 nickname :- Welcome to host.name",
":host.name 376 nickname :End of /MOTD command."]
for L in lines:
self.assertEqual(self.client.calls, [])
self.client.dataReceived(L + '\r\n')
self.assertEqual(
self.client.calls,
[("receivedMOTD", {"motd": ["host.name Message of the Day -", "Welcome to host.name"]})])
# After the motd is delivered, the tracking variable should be
# reset.
self.assertIdentical(self.client.motd, None)
示例3: test_userMode
# 需要导入模块: from twisted.words.protocols import irc [as 别名]
# 或者: from twisted.words.protocols.irc import IRCClient [as 别名]
def test_userMode(self):
"""
A C{MODE} message whose target is our user (the nickname of our user,
to be precise), as opposed to a channel, will be parsed according to
the modes specified by L{IRCClient.getUserModeParams}.
"""
target = self.client.nickname
# Mode "o" on channels is supposed to take a parameter, but since this
# is not a channel this will not cause an exception.
self._sendModeChange('+o', target=target)
self._checkModeChange([(True, 'o', (None,))], target=target)
def getUserModeParams():
return ['Z', '']
# Introduce our own user mode that takes an argument.
self.patch(self.client, 'getUserModeParams', getUserModeParams)
self._sendModeChange('+Z', 'an_arg', target=target)
self._checkModeChange([(True, 'Z', ('an_arg',))], target=target)
示例4: test_register
# 需要导入模块: from twisted.words.protocols import irc [as 别名]
# 或者: from twisted.words.protocols.irc import IRCClient [as 别名]
def test_register(self):
"""
L{IRCClient.register} sends NICK and USER commands with the
username, name, hostname, server name, and real name specified.
"""
username = 'testuser'
hostname = 'testhost'
servername = 'testserver'
self.protocol.realname = 'testname'
self.protocol.password = None
self.protocol.register(username, hostname, servername)
expected = [
'NICK %s' % (username,),
'USER %s %s %s :%s' % (
username, hostname, servername, self.protocol.realname),
'']
self.assertEqualBufferValue(self.transport.value().split(b'\r\n'), expected)
示例5: test_registerWithTakenNick
# 需要导入模块: from twisted.words.protocols import irc [as 别名]
# 或者: from twisted.words.protocols.irc import IRCClient [as 别名]
def test_registerWithTakenNick(self):
"""
Verify that the client repeats the L{IRCClient.setNick} method with a
new value when presented with an C{ERR_NICKNAMEINUSE} while trying to
register.
"""
username = 'testuser'
hostname = 'testhost'
servername = 'testserver'
self.protocol.realname = 'testname'
self.protocol.password = 'testpass'
self.protocol.register(username, hostname, servername)
self.protocol.irc_ERR_NICKNAMEINUSE('prefix', ['param'])
lastLine = self.getLastLine(self.transport)
self.assertNotEqual(lastLine, 'NICK %s' % (username,))
# Keep chaining underscores for each collision
self.protocol.irc_ERR_NICKNAMEINUSE('prefix', ['param'])
lastLine = self.getLastLine(self.transport)
self.assertEqual(lastLine, 'NICK %s' % (username + '__',))
示例6: connectionMade
# 需要导入模块: from twisted.words.protocols import irc [as 别名]
# 或者: from twisted.words.protocols.irc import IRCClient [as 别名]
def connectionMade(self):
# XXX: Why do I duplicate code in IRCClient.register?
try:
self.performLogin = True
self.nickname = self.account.username
self.password = self.account.password
self.realname = "Twisted-IM user"
irc.IRCClient.connectionMade(self)
for channel in self.account.channels:
self.joinGroup(channel)
self.account._isOnline=1
if self._logonDeferred is not None:
self._logonDeferred.callback(self)
self.chat.getContactsList()
except:
import traceback
traceback.print_exc()
示例7: test_noNumbersVERSION
# 需要导入模块: from twisted.words.protocols import irc [as 别名]
# 或者: from twisted.words.protocols.irc import IRCClient [as 别名]
def test_noNumbersVERSION(self):
"""
If attributes for version information on L{IRCClient} are set to
L{None}, the parts of the CTCP VERSION response they correspond to
are omitted.
"""
self.client.versionName = "FrobozzIRC"
self.client.ctcpQuery_VERSION("nick!guy@over.there", "#theChan", None)
versionReply = ("NOTICE nick :%(X)cVERSION %(vname)s::"
"%(X)c%(EOL)s"
% {'X': irc.X_DELIM,
'EOL': irc.CR + irc.LF,
'vname': self.client.versionName})
reply = self.file.getvalue()
self.assertEqualBufferValue(reply, versionReply)
示例8: __init__
# 需要导入模块: from twisted.words.protocols import irc [as 别名]
# 或者: from twisted.words.protocols.irc import IRCClient [as 别名]
def __init__(self, *a, **kw):
# It is important that IRCClient.__init__ is not called since
# traditionally it did not exist, so it is important that nothing is
# initialised there that would prevent subclasses that did not (or
# could not) invoke the base implementation. Any protocol
# initialisation should happen in connectionMode.
self.calls = []
示例9: test_ISUPPORT
# 需要导入模块: from twisted.words.protocols import irc [as 别名]
# 或者: from twisted.words.protocols.irc import IRCClient [as 别名]
def test_ISUPPORT(self):
"""
The client parses ISUPPORT messages sent by the server and calls
L{IRCClient.isupport}.
"""
self._sendISUPPORT()
示例10: test_getChannelModeParams
# 需要导入模块: from twisted.words.protocols import irc [as 别名]
# 或者: from twisted.words.protocols.irc import IRCClient [as 别名]
def test_getChannelModeParams(self):
"""
L{IRCClient.getChannelModeParams} uses ISUPPORT information, either
given by the server or defaults, to determine which channel modes
require arguments when being added or removed.
"""
add, remove = map(sorted, self.client.getChannelModeParams())
self.assertEqual(add, ['b', 'h', 'k', 'l', 'o', 'v'])
self.assertEqual(remove, ['b', 'h', 'o', 'v'])
def removeFeature(name):
name = '-' + name
msg = "are available on this server"
self._serverTestImpl(
'005', msg, 'isupport', args=name, options=[name])
self.assertIdentical(
self.client.supported.getFeature(name), None)
self.client.calls = []
# Remove CHANMODES feature, causing getFeature('CHANMODES') to return
# None.
removeFeature('CHANMODES')
add, remove = map(sorted, self.client.getChannelModeParams())
self.assertEqual(add, ['h', 'o', 'v'])
self.assertEqual(remove, ['h', 'o', 'v'])
# Remove PREFIX feature, causing getFeature('PREFIX') to return None.
removeFeature('PREFIX')
add, remove = map(sorted, self.client.getChannelModeParams())
self.assertEqual(add, [])
self.assertEqual(remove, [])
# Restore ISUPPORT features.
self._sendISUPPORT()
self.assertNotIdentical(
self.client.supported.getFeature('PREFIX'), None)
示例11: test_getUserModeParams
# 需要导入模块: from twisted.words.protocols import irc [as 别名]
# 或者: from twisted.words.protocols.irc import IRCClient [as 别名]
def test_getUserModeParams(self):
"""
L{IRCClient.getUserModeParams} returns a list of user modes (modes that
the user sets on themself, outside of channel modes) that require
parameters when added and removed, respectively.
"""
add, remove = map(sorted, self.client.getUserModeParams())
self.assertEqual(add, [])
self.assertEqual(remove, [])
示例12: test_noModeParameters
# 需要导入模块: from twisted.words.protocols import irc [as 别名]
# 或者: from twisted.words.protocols.irc import IRCClient [as 别名]
def test_noModeParameters(self):
"""
No parameters are passed to L{IRCClient.modeChanged} for modes that
don't take any parameters.
"""
self._sendModeChange('-s')
self._checkModeChange([(False, 's', (None,))])
self._sendModeChange('+n')
self._checkModeChange([(True, 'n', (None,))])
示例13: test_oneModeParameter
# 需要导入模块: from twisted.words.protocols import irc [as 别名]
# 或者: from twisted.words.protocols.irc import IRCClient [as 别名]
def test_oneModeParameter(self):
"""
Parameters are passed to L{IRCClient.modeChanged} for modes that take
parameters.
"""
self._sendModeChange('+o', 'a_user')
self._checkModeChange([(True, 'o', ('a_user',))])
self._sendModeChange('-o', 'a_user')
self._checkModeChange([(False, 'o', ('a_user',))])
示例14: test_mixedModes
# 需要导入模块: from twisted.words.protocols import irc [as 别名]
# 或者: from twisted.words.protocols.irc import IRCClient [as 别名]
def test_mixedModes(self):
"""
Mixing adding and removing modes that do and don't take parameters
invokes L{IRCClient.modeChanged} with mode characters and parameters
that match up.
"""
self._sendModeChange('+osv', 'a_user another_user')
self._checkModeChange([(True, 'osv', ('a_user', None, 'another_user'))])
self._sendModeChange('+v-os', 'a_user another_user')
self._checkModeChange([(True, 'v', ('a_user',)),
(False, 'os', ('another_user', None))])
示例15: test_tooFewModeParameters
# 需要导入模块: from twisted.words.protocols import irc [as 别名]
# 或者: from twisted.words.protocols.irc import IRCClient [as 别名]
def test_tooFewModeParameters(self):
"""
Passing no arguments to modes that do take parameters results in
L{IRCClient.modeChange} not being called and an error being logged.
"""
self._sendModeChange('+o')
self._checkModeChange([])
errors = self.flushLoggedErrors(irc.IRCBadModes)
self.assertEqual(len(errors), 1)
self.assertSubstring(
'Not enough parameters', errors[0].getErrorMessage())