diff --git a/test/ircutils_test.py b/test/ircutils_test.py index 61d3b55fa..e188b37a9 100644 --- a/test/ircutils_test.py +++ b/test/ircutils_test.py @@ -32,6 +32,7 @@ from test import * +import ircmsgs import ircutils class FunctionsTestCase(unittest.TestCase): @@ -80,4 +81,31 @@ class FunctionsTestCase(unittest.TestCase): def banmask(self): self.failUnless(ircutils.hostmaskPatternEqual(\ ircutils.banmask(self.hostmask), self.hostmask)) - + + def testSeparateModes(self): + self.assertEqual(ircutils.separateModes(['+ooo', 'x', 'y', 'z']), + [('+o', 'x'), ('+o', 'y'), ('+o', 'z')]) + self.assertEqual(ircutils.separateModes(['+o-o', 'x', 'y']), + [('+o', 'x'), ('-o', 'y')]) + self.assertEqual(ircutils.separateModes(['+s-o', 'x']), + [('+s', None), ('-o', 'x')]) + self.assertEqual(ircutils.separateModes(['+sntl', '100']), + [('+s', None),('+n', None),('+t', None),('+l', '100')]) + + def testToLower(self): + self.assertEqual('jemfinch', ircutils.toLower('jemfinch')) + self.assertEqual('{}|^', ircutils.toLower('[]\\~')) + + def testNick(self): + nicks = ['jemfinch', 'jemfinch\\[]~'] + for nick in nicks: + self.assertEqual(str(ircutils.nick(nick)), str(nick)) + self.assertEqual(ircutils.nick(nick), nick) + self.assertEqual(ircutils.nick(nick), ircutils.toLower(nick)) + + def testReplyTo(self): + prefix = 'foo!bar@baz' + channel = ircmsgs.privmsg('#foo', 'bar baz', prefix=prefix) + private = ircmsgs.privmsg('jemfinch', 'bar baz', prefix=prefix) + self.assertEqual(ircutils.replyTo(channel), channel.args[0]) + self.assertEqual(ircutils.replyTo(private), private.nick) diff --git a/test/utils_test.py b/test/utils_test.py index 17a4a6ab7..c4fc74b2c 100644 --- a/test/utils_test.py +++ b/test/utils_test.py @@ -37,6 +37,17 @@ import utils class UtilsTest(unittest.TestCase): def testTimeElapsed(self): self.assertRaises(ValueError, utils.timeElapsed, 0, 0, seconds=False) + then = 0 + now = 0 + for now, expected in [(0, '0 seconds'), + (1, '1 second'), + (60, '1 minute and 0 seconds'), + (61, '1 minute and 1 second'), + (62, '1 minute and 2 seconds'), + (122, '2 minutes and 2 seconds'), + (3722, '1 hour, 2 minutes and 2 seconds'), + (7322, '2 hours, 2 minutes and 2 seconds')]: + self.assertEqual(utils.timeElapsed(now, then), expected) def testEachSubstring(self): s = 'foobar'