diff --git a/src/callbacks.py b/src/callbacks.py index 6c3c69c30..b2f46d927 100644 --- a/src/callbacks.py +++ b/src/callbacks.py @@ -866,7 +866,7 @@ class IrcObjectProxy(RichReplyMethods): response = msgs.pop() if msgs: n = ircutils.bold('(%s)') - n %= utils.str.nItems('message', len(msgs), 'more') + n %= utils.str.nItems(len(msgs), 'message', 'more') response = '%s %s' % (response, n) prefix = msg.prefix if self.to and ircutils.isNick(self.to): diff --git a/src/utils/gen.py b/src/utils/gen.py index d483ab12f..4223145c9 100644 --- a/src/utils/gen.py +++ b/src/utils/gen.py @@ -81,7 +81,7 @@ def timeElapsed(elapsed, short=False, leadingZeroes=False, years=True, if short: ret.append('%s%s' % (i, s[0])) else: - ret.append(nItems(s, i)) + ret.append(nItems(i, s)) elapsed = int(elapsed) assert years or weeks or days or \ hours or minutes or seconds, 'One flag must be True' diff --git a/src/utils/str.py b/src/utils/str.py index 784d06195..79c2efc37 100644 --- a/src/utils/str.py +++ b/src/utils/str.py @@ -285,18 +285,20 @@ def depluralize(s): else: return s # Don't know what to do. -def nItems(item, n, between=None): +def nItems(n, item, between=None): """Works like this: - >>> nItems('clock', 1) + >>> nItems(1, 'clock') '1 clock' - >>> nItems('clock', 10) + >>> nItems(10, 'clock') '10 clocks' - >>> nItems('clock', 10, between='grandfather') + >>> nItems(10, 'clock', between='grandfather') '10 grandfather clocks' """ + assert isinstance(n, int), \ + 'The order of the arguments to nItems changed again, sorry.' if between is None: return '%s %s' % (n, pluralize(item, n)) else: diff --git a/test/test_utils.py b/test/test_utils.py index 65c26feb1..c38fed3d8 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -335,10 +335,10 @@ class StrTest(SupyTestCase): def testNItems(self): nItems = utils.str.nItems - self.assertEqual(nItems('tool', 1, 'crazy'), '1 crazy tool') - self.assertEqual(nItems('tool', 1), '1 tool') - self.assertEqual(nItems('tool', 2, 'crazy'), '2 crazy tools') - self.assertEqual(nItems('tool', 2), '2 tools') + self.assertEqual(nItems(1, 'tool', 'crazy'), '1 crazy tool') + self.assertEqual(nItems(1, 'tool'), '1 tool') + self.assertEqual(nItems(2, 'tool', 'crazy'), '2 crazy tools') + self.assertEqual(nItems(2, 'tool'), '2 tools') def testEllipsisify(self): f = utils.str.ellipsisify