From b39e1237fcb7f078ddbc1ac7830093c7e340480d Mon Sep 17 00:00:00 2001 From: Jeremy Fincher Date: Mon, 1 Dec 2003 23:24:25 +0000 Subject: [PATCH] Added __iter__ to UsersDB for a cleaner interface. --- src/User.py | 3 +-- src/ircdb.py | 7 ++++++- test/test_ircdb.py | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/User.py b/src/User.py index 60e500085..7143dc74d 100755 --- a/src/User.py +++ b/src/User.py @@ -73,8 +73,7 @@ class User(callbacks.Privmsg): else: def p(s): return True - users = [u.name for u in ircdb.users.users[1:] if u is not None] - users = filter(p, users) + users = [u.name for u in ircdb.users if p(u.name)] if users: utils.sortBy(str.lower, users) irc.reply(msg, utils.commaAndify(users)) diff --git a/src/ircdb.py b/src/ircdb.py index 5301b5320..170c0cf5a 100644 --- a/src/ircdb.py +++ b/src/ircdb.py @@ -458,8 +458,13 @@ class UsersDB(object): except KeyError: return False + def __iter__(self): + x = ifilter(None, self.users) + x.next() # Skip the bot user. + return x + def numUsers(self): - return ilen(ifilter(None, self.users))-1 # -1 is for the bot user. + return ilen(self) def setUser(self, id, user): """Sets a user (given its id) to the IrcUser given it.""" diff --git a/test/test_ircdb.py b/test/test_ircdb.py index 1634785fa..410a97833 100644 --- a/test/test_ircdb.py +++ b/test/test_ircdb.py @@ -311,7 +311,7 @@ class UsersDBTestCase(unittest.TestCase): pass self.users = ircdb.UsersDB(self.filename) - def testNumUsers(self): + def testIterAndNumUsers(self): self.assertEqual(self.users.numUsers(), 0) (id, u) = self.users.newUser() hostmask = 'foo!bar@baz'