add an away test

This commit is contained in:
Shivaram Lingamneni 2019-02-17 18:34:19 -05:00
parent 7b2efeb2d4
commit b184892a1c

View File

@ -4,9 +4,7 @@ User commands as specified in Section 3.6 of RFC 2812:
""" """
from irctest import cases from irctest import cases
from irctest.numerics import RPL_WHOISUSER, RPL_WHOISCHANNELS, RPL_AWAY, RPL_NOWAWAY, RPL_UNAWAY
RPL_WHOISUSER = '311'
RPL_WHOISCHANNELS = '319'
class WhoisTestCase(cases.BaseServerTestCase): class WhoisTestCase(cases.BaseServerTestCase):
@ -110,3 +108,27 @@ class InvisibleTestCase(cases.BaseServerTestCase):
messages = self.getMessages(2) messages = self.getMessages(2)
whoisaccount = [message for message in messages if message.command == '330'] whoisaccount = [message for message in messages if message.command == '330']
self.assertEqual(len(whoisaccount), 0) self.assertEqual(len(whoisaccount), 0)
class AwayTestCase(cases.BaseServerTestCase):
@cases.SpecificationSelector.requiredBySpecification('RFC2812')
def testAway(self):
self.connectClient('bar')
self.sendLine(1, "AWAY :I'm not here right now")
replies = self.getMessages(1)
self.assertIn(RPL_NOWAWAY, [msg.command for msg in replies])
self.connectClient('qux')
self.sendLine(2, "PRIVMSG bar :what's up")
replies = self.getMessages(2)
self.assertEqual(len(replies), 1)
self.assertEqual(replies[0].command, RPL_AWAY)
self.assertEqual(replies[0].params, ['qux', 'bar', "I'm not here right now"])
self.sendLine(1, "AWAY")
replies = self.getMessages(1)
self.assertIn(RPL_UNAWAY, [msg.command for msg in replies])
self.sendLine(2, "PRIVMSG bar :what's up")
replies = self.getMessages(2)
self.assertEqual(len(replies), 0)