Add unittest for IRCMessage

This commit is contained in:
nemunaire 2015-03-16 06:45:51 +01:00
parent 3d1a8ff2ba
commit 4d7d1ccab2
2 changed files with 51 additions and 1 deletions

View File

@ -330,7 +330,7 @@ class IRCMessage:
"""
# Treat special tags
if key == "time":
if key == "time" and value is not None:
import calendar, time
value = datetime.fromtimestamp(calendar.timegm(time.strptime(value, "%Y-%m-%dT%H:%M:%S.%fZ")), timezone.utc)

View File

@ -0,0 +1,50 @@
import unittest
import nemubot.server.IRC as IRC
class TestIRCMessage(unittest.TestCase):
def setUp(self):
self.msg = IRC.IRCMessage(b":toto!titi@RZ-3je16g.re PRIVMSG #the-channel :Can you parse this message?")
def test_parsing(self):
self.assertEqual(self.msg.prefix, "toto!titi@RZ-3je16g.re")
self.assertEqual(self.msg.nick, "toto")
self.assertEqual(self.msg.user, "titi")
self.assertEqual(self.msg.host, "RZ-3je16g.re")
self.assertEqual(len(self.msg.params), 2)
self.assertEqual(self.msg.params[0], b"#the-channel")
self.assertEqual(self.msg.params[1], b"Can you parse this message?")
def test_prettyprint(self):
bst1 = self.msg.to_irc_string(False)
msg2 = IRC.IRCMessage(bst1.encode())
bst2 = msg2.to_irc_string(False)
msg3 = IRC.IRCMessage(bst2.encode())
bst3 = msg3.to_irc_string(False)
self.assertEqual(bst2, bst3)
def test_tags(self):
self.assertEqual(len(self.msg.tags), 1)
self.assertIn("time", self.msg.tags)
self.msg.add_tag("time")
self.assertEqual(len(self.msg.tags), 1)
self.msg.add_tag("toto")
self.assertEqual(len(self.msg.tags), 2)
self.assertIn("toto", self.msg.tags)
if __name__ == '__main__':
unittest.main()