Commit | Line | Data |
---|---|---|
920dae64 AT |
1 | #!/usr/bin/env python |
2 | # UserString is a wrapper around the native builtin string type. | |
3 | # UserString instances should behave similar to builtin string objects. | |
4 | ||
5 | import unittest | |
6 | from test import test_support, string_tests | |
7 | ||
8 | from UserString import UserString | |
9 | ||
10 | class UserStringTest( | |
11 | string_tests.CommonTest, | |
12 | string_tests.MixinStrUnicodeUserStringTest, | |
13 | string_tests.MixinStrStringUserStringTest, | |
14 | string_tests.MixinStrUserStringTest | |
15 | ): | |
16 | ||
17 | type2test = UserString | |
18 | ||
19 | # Overwrite the three testing methods, because UserString | |
20 | # can't cope with arguments propagated to UserString | |
21 | # (and we don't test with subclasses) | |
22 | def checkequal(self, result, object, methodname, *args): | |
23 | result = self.fixtype(result) | |
24 | object = self.fixtype(object) | |
25 | # we don't fix the arguments, because UserString can't cope with it | |
26 | realresult = getattr(object, methodname)(*args) | |
27 | self.assertEqual( | |
28 | result, | |
29 | realresult | |
30 | ) | |
31 | ||
32 | def checkraises(self, exc, object, methodname, *args): | |
33 | object = self.fixtype(object) | |
34 | # we don't fix the arguments, because UserString can't cope with it | |
35 | self.assertRaises( | |
36 | exc, | |
37 | getattr(object, methodname), | |
38 | *args | |
39 | ) | |
40 | ||
41 | def checkcall(self, object, methodname, *args): | |
42 | object = self.fixtype(object) | |
43 | # we don't fix the arguments, because UserString can't cope with it | |
44 | getattr(object, methodname)(*args) | |
45 | ||
46 | def test_main(): | |
47 | test_support.run_unittest(UserStringTest) | |
48 | ||
49 | if __name__ == "__main__": | |
50 | test_main() |