1 import unittest
, string
2 from test
import test_support
, string_tests
3 from UserList
import UserList
6 string_tests
.CommonTest
,
7 string_tests
.MixinStrStringUserStringTest
12 def checkequal(self
, result
, object, methodname
, *args
):
13 realresult
= getattr(string
, methodname
)(object, *args
)
19 def checkraises(self
, exc
, object, methodname
, *args
):
22 getattr(string
, methodname
),
27 def checkcall(self
, object, methodname
, *args
):
28 getattr(string
, methodname
)(object, *args
)
31 # These are the same checks as in string_test.ObjectTest.test_join
32 # but the argument order ist different
33 self
.checkequal('a b c d', ['a', 'b', 'c', 'd'], 'join', ' ')
34 self
.checkequal('abcd', ('a', 'b', 'c', 'd'), 'join', '')
35 self
.checkequal('w x y z', string_tests
.Sequence(), 'join', ' ')
36 self
.checkequal('abc', ('abc',), 'join', 'a')
37 self
.checkequal('z', UserList(['z']), 'join', 'a')
38 if test_support
.have_unicode
:
39 self
.checkequal(unicode('a.b.c'), ['a', 'b', 'c'], 'join', unicode('.'))
40 self
.checkequal(unicode('a.b.c'), [unicode('a'), 'b', 'c'], 'join', '.')
41 self
.checkequal(unicode('a.b.c'), ['a', unicode('b'), 'c'], 'join', '.')
42 self
.checkequal(unicode('a.b.c'), ['a', 'b', unicode('c')], 'join', '.')
43 self
.checkraises(TypeError, ['a', unicode('b'), 3], 'join', '.')
44 for i
in [5, 25, 125]:
46 ((('a' * i
) + '-') * i
)[:-1],
47 ['a' * i
] * i
, 'join', '-')
49 ((('a' * i
) + '-') * i
)[:-1],
50 ('a' * i
,) * i
, 'join', '-')
52 self
.checkraises(TypeError, string_tests
.BadSeq1(), 'join', ' ')
53 self
.checkequal('a b c', string_tests
.BadSeq2(), 'join', ' ')
55 class ModuleTest(unittest
.TestCase
):
69 self
.assertEqual(string
.atoi(" 1 "), 1)
70 self
.assertRaises(ValueError, string
.atoi
, " 1x")
71 self
.assertRaises(ValueError, string
.atoi
, " x1 ")
74 self
.assertEqual(string
.atol(" 1 "), 1L)
75 self
.assertRaises(ValueError, string
.atol
, " 1x ")
76 self
.assertRaises(ValueError, string
.atol
, " x1 ")
79 self
.assertAlmostEqual(string
.atof(" 1 "), 1.0)
80 self
.assertRaises(ValueError, string
.atof
, " 1x ")
81 self
.assertRaises(ValueError, string
.atof
, " x1 ")
83 def test_maketrans(self
):
84 transtable
= '\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037 !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`xyzdefghijklmnopqrstuvwxyz{|}~\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377'
86 self
.assertEqual(string
.maketrans('abc', 'xyz'), transtable
)
87 self
.assertRaises(ValueError, string
.maketrans
, 'abc', 'xyzq')
89 def test_capwords(self
):
90 self
.assertEqual(string
.capwords('abc def ghi'), 'Abc Def Ghi')
91 self
.assertEqual(string
.capwords('abc\tdef\nghi'), 'Abc Def Ghi')
92 self
.assertEqual(string
.capwords('abc\t def \nghi'), 'Abc Def Ghi')
93 self
.assertEqual(string
.capwords('ABC DEF GHI'), 'Abc Def Ghi')
94 self
.assertEqual(string
.capwords('ABC-DEF-GHI', '-'), 'Abc-Def-Ghi')
95 self
.assertEqual(string
.capwords('ABC-def DEF-ghi GHI'), 'Abc-def Def-ghi Ghi')
98 suite
= unittest
.TestSuite()
99 suite
.addTest(unittest
.makeSuite(StringTest
))
100 suite
.addTest(unittest
.makeSuite(ModuleTest
))
101 test_support
.run_suite(suite
)
103 if __name__
== "__main__":