From 4d7d1ccab28e86f354227ac2b9cb6405ed5b9496 Mon Sep 17 00:00:00 2001 From: nemunaire Date: Mon, 16 Mar 2015 06:45:51 +0100 Subject: [PATCH] Add unittest for IRCMessage --- nemubot/server/IRC.py | 2 +- nemubot/server/test_IRC.py | 50 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 nemubot/server/test_IRC.py diff --git a/nemubot/server/IRC.py b/nemubot/server/IRC.py index 43d116d..d698fcd 100644 --- a/nemubot/server/IRC.py +++ b/nemubot/server/IRC.py @@ -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) diff --git a/nemubot/server/test_IRC.py b/nemubot/server/test_IRC.py new file mode 100644 index 0000000..e22d190 --- /dev/null +++ b/nemubot/server/test_IRC.py @@ -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()