annotate Lib/test/test_userstring.py @ 39042:c02fa187e0f4 legacy-trunk

Part of SF patch #1484695. This removes dead code. The chksum was already verified in .frombuf() on the lines above. If there was a problem an exception is raised, so there was no way this condition could have been true.
author Neal Norwitz <nnorwitz@gmail.com>
date Mon, 10 Jul 2006 00:23:17 +0000
parents ac6dfc67c77f
children 9620134010a5 b7e549857321
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12214
a216fe79ae00 UserString class from Peter Funk <pf@artcom-gmbh.de>.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
1 #!/usr/bin/env python
a216fe79ae00 UserString class from Peter Funk <pf@artcom-gmbh.de>.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
2 # UserString is a wrapper around the native builtin string type.
a216fe79ae00 UserString class from Peter Funk <pf@artcom-gmbh.de>.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
3 # UserString instances should behave similar to builtin string objects.
28009
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
4
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
5 import unittest
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
6 from test import test_support, string_tests
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
7
34606
8b4dd2c1c2a0 Add a basic test for UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 32951
diff changeset
8 from UserString import UserString, MutableString
12214
a216fe79ae00 UserString class from Peter Funk <pf@artcom-gmbh.de>.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
9
28009
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
10 class UserStringTest(
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
11 string_tests.CommonTest,
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
12 string_tests.MixinStrUnicodeUserStringTest,
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
13 string_tests.MixinStrStringUserStringTest,
32951
024ff0ab4588 SF #989185: Drop unicode.iswide() and unicode.width() and add
Hye-Shik Chang <hyeshik@gmail.com>
parents: 32237
diff changeset
14 string_tests.MixinStrUserStringTest
28009
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
15 ):
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
16
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
17 type2test = UserString
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
18
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
19 # Overwrite the three testing methods, because UserString
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
20 # can't cope with arguments propagated to UserString
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
21 # (and we don't test with subclasses)
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
22 def checkequal(self, result, object, methodname, *args):
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
23 result = self.fixtype(result)
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
24 object = self.fixtype(object)
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
25 # we don't fix the arguments, because UserString can't cope with it
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
26 realresult = getattr(object, methodname)(*args)
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
27 self.assertEqual(
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
28 result,
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
29 realresult
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
30 )
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
31
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
32 def checkraises(self, exc, object, methodname, *args):
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
33 object = self.fixtype(object)
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
34 # we don't fix the arguments, because UserString can't cope with it
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
35 self.assertRaises(
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
36 exc,
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
37 getattr(object, methodname),
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
38 *args
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
39 )
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
40
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
41 def checkcall(self, object, methodname, *args):
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
42 object = self.fixtype(object)
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
43 # we don't fix the arguments, because UserString can't cope with it
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
44 getattr(object, methodname)(*args)
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
45
34606
8b4dd2c1c2a0 Add a basic test for UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 32951
diff changeset
46 class MutableStringTest(UserStringTest):
8b4dd2c1c2a0 Add a basic test for UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 32951
diff changeset
47 type2test = MutableString
8b4dd2c1c2a0 Add a basic test for UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 32951
diff changeset
48
8b4dd2c1c2a0 Add a basic test for UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 32951
diff changeset
49 # MutableStrings can be hashed => deactivate test
8b4dd2c1c2a0 Add a basic test for UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 32951
diff changeset
50 def test_hash(self):
8b4dd2c1c2a0 Add a basic test for UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 32951
diff changeset
51 pass
8b4dd2c1c2a0 Add a basic test for UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 32951
diff changeset
52
34609
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
53 def test_setitem(self):
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
54 s = self.type2test("foo")
34614
ac6dfc67c77f Add support for negative indices in UserString.MutableString.__setitem__
Walter Dörwald <walter@livinglogic.de>
parents: 34610
diff changeset
55 self.assertRaises(IndexError, s.__setitem__, -4, "bar")
34609
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
56 self.assertRaises(IndexError, s.__setitem__, 3, "bar")
34614
ac6dfc67c77f Add support for negative indices in UserString.MutableString.__setitem__
Walter Dörwald <walter@livinglogic.de>
parents: 34610
diff changeset
57 s[-1] = "bar"
ac6dfc67c77f Add support for negative indices in UserString.MutableString.__setitem__
Walter Dörwald <walter@livinglogic.de>
parents: 34610
diff changeset
58 self.assertEqual(s, "fobar")
34609
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
59 s[0] = "bar"
34614
ac6dfc67c77f Add support for negative indices in UserString.MutableString.__setitem__
Walter Dörwald <walter@livinglogic.de>
parents: 34610
diff changeset
60 self.assertEqual(s, "barobar")
34609
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
61
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
62 def test_delitem(self):
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
63 s = self.type2test("foo")
34614
ac6dfc67c77f Add support for negative indices in UserString.MutableString.__setitem__
Walter Dörwald <walter@livinglogic.de>
parents: 34610
diff changeset
64 self.assertRaises(IndexError, s.__delitem__, -4)
34610
7c5732652a23 Fix copy & paste error.
Walter Dörwald <walter@livinglogic.de>
parents: 34609
diff changeset
65 self.assertRaises(IndexError, s.__delitem__, 3)
34614
ac6dfc67c77f Add support for negative indices in UserString.MutableString.__setitem__
Walter Dörwald <walter@livinglogic.de>
parents: 34610
diff changeset
66 del s[-1]
ac6dfc67c77f Add support for negative indices in UserString.MutableString.__setitem__
Walter Dörwald <walter@livinglogic.de>
parents: 34610
diff changeset
67 self.assertEqual(s, "fo")
34609
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
68 del s[0]
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
69 self.assertEqual(s, "o")
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
70 del s[0]
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
71 self.assertEqual(s, "")
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
72
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
73 def test_setslice(self):
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
74 s = self.type2test("foo")
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
75 s[:] = "bar"
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
76 self.assertEqual(s, "bar")
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
77 s[1:2] = "foo"
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
78 self.assertEqual(s, "bfoor")
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
79 s[1:-1] = UserString("a")
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
80 self.assertEqual(s, "bar")
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
81 s[0:10] = 42
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
82 self.assertEqual(s, "42")
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
83
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
84 def test_delslice(self):
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
85 s = self.type2test("foobar")
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
86 del s[3:10]
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
87 self.assertEqual(s, "foo")
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
88 del s[-1:10]
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
89 self.assertEqual(s, "fo")
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
90
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
91 def test_immutable(self):
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
92 s = self.type2test("foobar")
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
93 s2 = s.immutable()
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
94 self.assertEqual(s, s2)
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
95 self.assert_(isinstance(s2, UserString))
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
96
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
97 def test_iadd(self):
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
98 s = self.type2test("foo")
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
99 s += "bar"
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
100 self.assertEqual(s, "foobar")
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
101 s += UserString("baz")
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
102 self.assertEqual(s, "foobarbaz")
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
103 s += 42
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
104 self.assertEqual(s, "foobarbaz42")
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
105
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
106 def test_imul(self):
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
107 s = self.type2test("foo")
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
108 s *= 1
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
109 self.assertEqual(s, "foo")
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
110 s *= 2
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
111 self.assertEqual(s, "foofoo")
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
112 s *= -1
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
113 self.assertEqual(s, "")
c60fde8b0106 Add tests for the methods added by UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 34606
diff changeset
114
28009
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
115 def test_main():
34606
8b4dd2c1c2a0 Add a basic test for UserString.MutableString.
Walter Dörwald <walter@livinglogic.de>
parents: 32951
diff changeset
116 test_support.run_unittest(UserStringTest, MutableStringTest)
28009
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
117
12214
a216fe79ae00 UserString class from Peter Funk <pf@artcom-gmbh.de>.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
118 if __name__ == "__main__":
28009
fe10ece8ba68 Port all string tests to PyUnit and share as much tests
Walter Dörwald <walter@livinglogic.de>
parents: 24684
diff changeset
119 test_main()