mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
Issue #18101: Tcl.split() now process strings nested in a tuple as it
do with byte strings. Added tests for Tcl.split() and Tcl.splitline().
This commit is contained in:
parent
5a33f81348
commit
275d5fdbe4
3 changed files with 78 additions and 0 deletions
|
@ -175,6 +175,66 @@ class TclTest(unittest.TestCase):
|
|||
self.assertEqual(passValue(f), f)
|
||||
self.assertEqual(passValue((1, '2', (3.4,))), (1, '2', (3.4,)))
|
||||
|
||||
def test_splitlist(self):
|
||||
splitlist = self.interp.tk.splitlist
|
||||
call = self.interp.tk.call
|
||||
self.assertRaises(TypeError, splitlist)
|
||||
self.assertRaises(TypeError, splitlist, 'a', 'b')
|
||||
self.assertRaises(TypeError, splitlist, 2)
|
||||
testcases = [
|
||||
('2', ('2',)),
|
||||
('', ()),
|
||||
('{}', ('',)),
|
||||
('""', ('',)),
|
||||
('a\n b\t\r c\n ', ('a', 'b', 'c')),
|
||||
(b'a\n b\t\r c\n ', ('a', 'b', 'c')),
|
||||
('a \u20ac', ('a', '\u20ac')),
|
||||
(b'a \xe2\x82\xac', ('a', '\u20ac')),
|
||||
('a {b c}', ('a', 'b c')),
|
||||
(r'a b\ c', ('a', 'b c')),
|
||||
(('a', 'b c'), ('a', 'b c')),
|
||||
('a 2', ('a', '2')),
|
||||
(('a', 2), ('a', 2)),
|
||||
('a 3.4', ('a', '3.4')),
|
||||
(('a', 3.4), ('a', 3.4)),
|
||||
((), ()),
|
||||
(call('list', 1, '2', (3.4,)), (1, '2', (3.4,))),
|
||||
]
|
||||
for arg, res in testcases:
|
||||
self.assertEqual(splitlist(arg), res, msg=arg)
|
||||
self.assertRaises(TclError, splitlist, '{')
|
||||
|
||||
def test_split(self):
|
||||
split = self.interp.tk.split
|
||||
call = self.interp.tk.call
|
||||
self.assertRaises(TypeError, split)
|
||||
self.assertRaises(TypeError, split, 'a', 'b')
|
||||
self.assertRaises(TypeError, split, 2)
|
||||
testcases = [
|
||||
('2', '2'),
|
||||
('', ''),
|
||||
('{}', ''),
|
||||
('""', ''),
|
||||
('{', '{'),
|
||||
('a\n b\t\r c\n ', ('a', 'b', 'c')),
|
||||
(b'a\n b\t\r c\n ', ('a', 'b', 'c')),
|
||||
('a \u20ac', ('a', '\u20ac')),
|
||||
(b'a \xe2\x82\xac', ('a', '\u20ac')),
|
||||
('a {b c}', ('a', ('b', 'c'))),
|
||||
(r'a b\ c', ('a', ('b', 'c'))),
|
||||
(('a', b'b c'), ('a', ('b', 'c'))),
|
||||
(('a', 'b c'), ('a', ('b', 'c'))),
|
||||
('a 2', ('a', '2')),
|
||||
(('a', 2), ('a', 2)),
|
||||
('a 3.4', ('a', '3.4')),
|
||||
(('a', 3.4), ('a', 3.4)),
|
||||
(('a', (2, 3.4)), ('a', (2, 3.4))),
|
||||
((), ()),
|
||||
(call('list', 1, '2', (3.4,)), (1, '2', (3.4,))),
|
||||
]
|
||||
for arg, res in testcases:
|
||||
self.assertEqual(split(arg), res, msg=arg)
|
||||
|
||||
|
||||
def test_main():
|
||||
support.run_unittest(TclTest, TkinterTest)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue