From ce0002f45443a58c6eb5890f0b79587d8328924b Mon Sep 17 00:00:00 2001 From: Jeremy Fincher Date: Thu, 9 Oct 2003 05:34:44 +0000 Subject: [PATCH] Made IrcString more efficient/better, added a test for it. --- src/ircutils.py | 9 +-------- test/test_ircutils.py | 9 +++++++++ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/ircutils.py b/src/ircutils.py index 3ee555973..2ef1b6c9e 100644 --- a/src/ircutils.py +++ b/src/ircutils.py @@ -317,16 +317,9 @@ def shrinkList(L, sep='', limit=425): class IrcString(str): """This class does case-insensitive comparison and hashing of nicks.""" def __init__(self, s): - s = str(s) - self.original = s + str.__init__(self, s) self.lowered = toLower(s) - def __repr__(self): - return repr(self.original) - - def __str__(self): - return str(self.original) - def __eq__(self, s): try: return toLower(s) == self.lowered diff --git a/test/test_ircutils.py b/test/test_ircutils.py index bb3f18b00..ce13af0fa 100644 --- a/test/test_ircutils.py +++ b/test/test_ircutils.py @@ -211,6 +211,15 @@ class IrcSetTestCase(unittest.TestCase): self.failIf('foo' in s) self.failIf('FOo' in s) +class IrcStringTestCase(unittest.TestCase): + def test(self): + self.assertEqual('#foo', ircutils.IrcString('#foo')) + self.assertEqual('#foo', ircutils.IrcString('#FOO')) + self.assertEqual('#FOO', ircutils.IrcString('#foo')) + self.assertEqual('#FOO', ircutils.IrcString('#FOO')) + self.assertEqual(hash(ircutils.IrcString('#FOO')), + hash(ircutils.IrcString('#foo'))) + # vim:set shiftwidth=4 tabstop=8 expandtab textwidth=78: