diff --git a/src/utils.py b/src/utils.py index b2ea2d77b..bf3e2afa9 100755 --- a/src/utils.py +++ b/src/utils.py @@ -267,7 +267,7 @@ def findBinaryInPath(s): break return cmdLine -def commaAndify(seq, And='and'): +def commaAndify(seq, comma=',', And='and'): """Given a a sequence, returns an english clause for that sequence. I.e., given [1, 2, 3], returns '1, 2, and 3' @@ -282,7 +282,8 @@ def commaAndify(seq, And='and'): return ' '.join(L) else: L[-1] = '%s %s' % (And, L[-1]) - return ', '.join(L) + sep = '%s ' % comma + return sep.join(L) _unCommaTheRe = re.compile(r'(.*),\s*(the)$', re.I) def unCommaThe(s): diff --git a/test/test_utils.py b/test/test_utils.py index a2e607189..2367d7cd4 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -192,17 +192,20 @@ class UtilsTest(SupyTestCase): L = ['foo'] original = L[:] self.assertEqual(utils.commaAndify(L), 'foo') - self.assertEqual(utils.commaAndify(L, 'or'), 'foo') + self.assertEqual(utils.commaAndify(L, And='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(utils.commaAndify(L, And='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(utils.commaAndify(L, And='or'), 'foo, bar, or baz') + self.assertEqual(utils.commaAndify(L, comma=';'), 'foo; bar; and baz') + self.assertEqual(utils.commaAndify(L, comma=';', And='or'), + 'foo; bar; or baz') self.assertEqual(L, original) self.failUnless(utils.commaAndify(sets.Set(L)))