diff --git a/src/utils.py b/src/utils.py index a09f4a62c..dec50c85b 100755 --- a/src/utils.py +++ b/src/utils.py @@ -241,7 +241,7 @@ def findBinaryInPath(s): break return cmdLine -def commaAndify(seq): +def commaAndify(seq, And='and'): """Given a a sequence, returns an english clause for that sequence. I.e., given [1, 2, 3], returns '1, 2, and 3' @@ -252,9 +252,9 @@ def commaAndify(seq): elif len(L) == 1: return L[0] elif len(L) == 2: - return '%s and %s' % (L[0], L[1]) + return '%s %s %s' % (L[0], And, L[1]) else: - L[-1] = 'and %s' % L[-1] + L[-1] = '%s %s' % (And, L[-1]) return ', '.join(L) _unCommaTheRe = re.compile(r'(.*),\s*(the)$', re.I) diff --git a/test/test_utils.py b/test/test_utils.py index cb2f7b178..6a33c79ac 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -144,14 +144,17 @@ class UtilsTest(unittest.TestCase): L = ['foo'] original = L[:] self.assertEqual(utils.commaAndify(L), 'foo') + self.assertEqual(utils.commaAndify(L, 'or'), 'foo') self.assertEqual(L, original) L.append('bar') original = L[:] self.assertEqual(utils.commaAndify(L), 'foo and bar') + self.assertEqual(utils.commaAndify(L, 'or'), 'foo or bar') self.assertEqual(L, original) L.append('baz') original = L[:] self.assertEqual(utils.commaAndify(L), 'foo, bar, and baz') + self.assertEqual(utils.commaAndify(L, 'or'), 'foo, bar, or baz') self.assertEqual(L, original) self.failUnless(utils.commaAndify(sets.Set(L)))