#14081: The sep and maxsplit parameter to str.split, bytes.split, and bytearray.split may now be passed as keyword arguments.

This commit is contained in:
Ezio Melotti 2012-02-26 09:39:55 +02:00
parent 408026c7e8
commit cda6b6d60d
7 changed files with 80 additions and 27 deletions

View file

@ -56,7 +56,7 @@ class BaseTest(unittest.TestCase):
result = self.fixtype(result)
obj = self.fixtype(obj)
args = self.fixtype(args)
kwargs = self.fixtype(kwargs)
kwargs = {k: self.fixtype(v) for k,v in kwargs.items()}
realresult = getattr(obj, methodname)(*args, **kwargs)
self.assertEqual(
result,
@ -389,6 +389,17 @@ class BaseTest(unittest.TestCase):
self.checkequal(['a']*18 + ['aBLAHa'], ('aBLAH'*20)[:-4],
'split', 'BLAH', 18)
# with keyword args
self.checkequal(['a', 'b', 'c', 'd'], 'a|b|c|d', 'split', sep='|')
self.checkequal(['a', 'b|c|d'],
'a|b|c|d', 'split', '|', maxsplit=1)
self.checkequal(['a', 'b|c|d'],
'a|b|c|d', 'split', sep='|', maxsplit=1)
self.checkequal(['a', 'b|c|d'],
'a|b|c|d', 'split', maxsplit=1, sep='|')
self.checkequal(['a', 'b c d'],
'a b c d', 'split', maxsplit=1)
# argument type
self.checkraises(TypeError, 'hello', 'split', 42, 42, 42)
@ -446,6 +457,17 @@ class BaseTest(unittest.TestCase):
self.checkequal(['aBLAHa'] + ['a']*18, ('aBLAH'*20)[:-4],
'rsplit', 'BLAH', 18)
# with keyword args
self.checkequal(['a', 'b', 'c', 'd'], 'a|b|c|d', 'rsplit', sep='|')
self.checkequal(['a|b|c', 'd'],
'a|b|c|d', 'rsplit', '|', maxsplit=1)
self.checkequal(['a|b|c', 'd'],
'a|b|c|d', 'rsplit', sep='|', maxsplit=1)
self.checkequal(['a|b|c', 'd'],
'a|b|c|d', 'rsplit', maxsplit=1, sep='|')
self.checkequal(['a b c', 'd'],
'a b c d', 'rsplit', maxsplit=1)
# argument type
self.checkraises(TypeError, 'hello', 'rsplit', 42, 42, 42)