blob: 34c629cb764ec6fe55afa709a35dc56375095d1c [file] [log] [blame]
Fred Drakea22b5762000-04-03 03:51:50 +00001# UserString is a wrapper around the native builtin string type.
2# UserString instances should behave similar to builtin string objects.
Walter Dörwald0fd583c2003-02-21 12:53:50 +00003
Thomas Woutersed03b412007-08-28 21:37:11 +00004import string
Ezio Melotti0dceb562013-01-10 07:43:26 +02005import unittest
Benjamin Petersonee8712c2008-05-20 21:35:26 +00006from test import support, string_tests
Walter Dörwald0fd583c2003-02-21 12:53:50 +00007
Raymond Hettingerb3a65f82008-02-21 22:11:37 +00008from collections import UserString
Fred Drakea22b5762000-04-03 03:51:50 +00009
Walter Dörwald0fd583c2003-02-21 12:53:50 +000010class UserStringTest(
11 string_tests.CommonTest,
12 string_tests.MixinStrUnicodeUserStringTest,
Ezio Melotti0dceb562013-01-10 07:43:26 +020013 unittest.TestCase
Walter Dörwald0fd583c2003-02-21 12:53:50 +000014 ):
15
16 type2test = UserString
17
18 # Overwrite the three testing methods, because UserString
19 # can't cope with arguments propagated to UserString
20 # (and we don't test with subclasses)
Mark Dickinson0d5f6ad2011-09-24 09:14:39 +010021 def checkequal(self, result, object, methodname, *args, **kwargs):
Walter Dörwald0fd583c2003-02-21 12:53:50 +000022 result = self.fixtype(result)
23 object = self.fixtype(object)
24 # we don't fix the arguments, because UserString can't cope with it
Mark Dickinson0d5f6ad2011-09-24 09:14:39 +010025 realresult = getattr(object, methodname)(*args, **kwargs)
Walter Dörwald0fd583c2003-02-21 12:53:50 +000026 self.assertEqual(
27 result,
28 realresult
29 )
30
31 def checkraises(self, exc, object, methodname, *args):
32 object = self.fixtype(object)
33 # we don't fix the arguments, because UserString can't cope with it
34 self.assertRaises(
35 exc,
36 getattr(object, methodname),
37 *args
38 )
39
40 def checkcall(self, object, methodname, *args):
41 object = self.fixtype(object)
42 # we don't fix the arguments, because UserString can't cope with it
43 getattr(object, methodname)(*args)
44
Walter Dörwald7f791522005-02-17 22:03:31 +000045
Fred Drakea22b5762000-04-03 03:51:50 +000046if __name__ == "__main__":
Ezio Melotti0dceb562013-01-10 07:43:26 +020047 unittest.main()