blob: 8bef7e8bc9c018bd2f014912611b9541861ec4c5 [file] [log] [blame]
Martin Panter275bd962016-02-02 10:37:15 +00001# Tests that work for bytearray objects. Could be merged into string_tests.
Gregory P. Smith60d241f2007-10-16 06:31:30 +00002# See PEP 3137.
3
Gregory P. Smith60d241f2007-10-16 06:31:30 +00004class MixinBytesBufferCommonTests(object):
Martin Panter275bd962016-02-02 10:37:15 +00005 """Tests that work for bytearray objects.
Gregory P. Smith60d241f2007-10-16 06:31:30 +00006 See PEP 3137.
7 """
8
9 def marshal(self, x):
10 """Convert x into the appropriate type for these tests."""
11 raise RuntimeError('test class must provide a marshal method')
12
13 def test_islower(self):
14 self.assertFalse(self.marshal(b'').islower())
Ezio Melottib3aedd42010-11-20 19:04:17 +000015 self.assertTrue(self.marshal(b'a').islower())
Gregory P. Smith60d241f2007-10-16 06:31:30 +000016 self.assertFalse(self.marshal(b'A').islower())
17 self.assertFalse(self.marshal(b'\n').islower())
Ezio Melottib3aedd42010-11-20 19:04:17 +000018 self.assertTrue(self.marshal(b'abc').islower())
Gregory P. Smith60d241f2007-10-16 06:31:30 +000019 self.assertFalse(self.marshal(b'aBc').islower())
Ezio Melottib3aedd42010-11-20 19:04:17 +000020 self.assertTrue(self.marshal(b'abc\n').islower())
Gregory P. Smith60d241f2007-10-16 06:31:30 +000021 self.assertRaises(TypeError, self.marshal(b'abc').islower, 42)
22
23 def test_isupper(self):
24 self.assertFalse(self.marshal(b'').isupper())
25 self.assertFalse(self.marshal(b'a').isupper())
Ezio Melottib3aedd42010-11-20 19:04:17 +000026 self.assertTrue(self.marshal(b'A').isupper())
Gregory P. Smith60d241f2007-10-16 06:31:30 +000027 self.assertFalse(self.marshal(b'\n').isupper())
Ezio Melottib3aedd42010-11-20 19:04:17 +000028 self.assertTrue(self.marshal(b'ABC').isupper())
Gregory P. Smith60d241f2007-10-16 06:31:30 +000029 self.assertFalse(self.marshal(b'AbC').isupper())
Ezio Melottib3aedd42010-11-20 19:04:17 +000030 self.assertTrue(self.marshal(b'ABC\n').isupper())
Gregory P. Smith60d241f2007-10-16 06:31:30 +000031 self.assertRaises(TypeError, self.marshal(b'abc').isupper, 42)
32
33 def test_istitle(self):
34 self.assertFalse(self.marshal(b'').istitle())
35 self.assertFalse(self.marshal(b'a').istitle())
Ezio Melottib3aedd42010-11-20 19:04:17 +000036 self.assertTrue(self.marshal(b'A').istitle())
Gregory P. Smith60d241f2007-10-16 06:31:30 +000037 self.assertFalse(self.marshal(b'\n').istitle())
Ezio Melottib3aedd42010-11-20 19:04:17 +000038 self.assertTrue(self.marshal(b'A Titlecased Line').istitle())
39 self.assertTrue(self.marshal(b'A\nTitlecased Line').istitle())
40 self.assertTrue(self.marshal(b'A Titlecased, Line').istitle())
Gregory P. Smith60d241f2007-10-16 06:31:30 +000041 self.assertFalse(self.marshal(b'Not a capitalized String').istitle())
42 self.assertFalse(self.marshal(b'Not\ta Titlecase String').istitle())
43 self.assertFalse(self.marshal(b'Not--a Titlecase String').istitle())
44 self.assertFalse(self.marshal(b'NOT').istitle())
45 self.assertRaises(TypeError, self.marshal(b'abc').istitle, 42)
46
47 def test_isspace(self):
48 self.assertFalse(self.marshal(b'').isspace())
49 self.assertFalse(self.marshal(b'a').isspace())
Ezio Melottib3aedd42010-11-20 19:04:17 +000050 self.assertTrue(self.marshal(b' ').isspace())
51 self.assertTrue(self.marshal(b'\t').isspace())
52 self.assertTrue(self.marshal(b'\r').isspace())
53 self.assertTrue(self.marshal(b'\n').isspace())
54 self.assertTrue(self.marshal(b' \t\r\n').isspace())
Gregory P. Smith60d241f2007-10-16 06:31:30 +000055 self.assertFalse(self.marshal(b' \t\r\na').isspace())
56 self.assertRaises(TypeError, self.marshal(b'abc').isspace, 42)
57
58 def test_isalpha(self):
59 self.assertFalse(self.marshal(b'').isalpha())
Ezio Melottib3aedd42010-11-20 19:04:17 +000060 self.assertTrue(self.marshal(b'a').isalpha())
61 self.assertTrue(self.marshal(b'A').isalpha())
Gregory P. Smith60d241f2007-10-16 06:31:30 +000062 self.assertFalse(self.marshal(b'\n').isalpha())
Ezio Melottib3aedd42010-11-20 19:04:17 +000063 self.assertTrue(self.marshal(b'abc').isalpha())
Gregory P. Smith60d241f2007-10-16 06:31:30 +000064 self.assertFalse(self.marshal(b'aBc123').isalpha())
65 self.assertFalse(self.marshal(b'abc\n').isalpha())
66 self.assertRaises(TypeError, self.marshal(b'abc').isalpha, 42)
67
68 def test_isalnum(self):
69 self.assertFalse(self.marshal(b'').isalnum())
Ezio Melottib3aedd42010-11-20 19:04:17 +000070 self.assertTrue(self.marshal(b'a').isalnum())
71 self.assertTrue(self.marshal(b'A').isalnum())
Gregory P. Smith60d241f2007-10-16 06:31:30 +000072 self.assertFalse(self.marshal(b'\n').isalnum())
Ezio Melottib3aedd42010-11-20 19:04:17 +000073 self.assertTrue(self.marshal(b'123abc456').isalnum())
74 self.assertTrue(self.marshal(b'a1b3c').isalnum())
Gregory P. Smith60d241f2007-10-16 06:31:30 +000075 self.assertFalse(self.marshal(b'aBc000 ').isalnum())
76 self.assertFalse(self.marshal(b'abc\n').isalnum())
77 self.assertRaises(TypeError, self.marshal(b'abc').isalnum, 42)
78
79 def test_isdigit(self):
80 self.assertFalse(self.marshal(b'').isdigit())
81 self.assertFalse(self.marshal(b'a').isdigit())
Ezio Melottib3aedd42010-11-20 19:04:17 +000082 self.assertTrue(self.marshal(b'0').isdigit())
83 self.assertTrue(self.marshal(b'0123456789').isdigit())
Gregory P. Smith60d241f2007-10-16 06:31:30 +000084 self.assertFalse(self.marshal(b'0123456789a').isdigit())
85
86 self.assertRaises(TypeError, self.marshal(b'abc').isdigit, 42)
87
Gregory P. Smith60d241f2007-10-16 06:31:30 +000088 def test_capitalize(self):
89 self.assertEqual(b' hello ', self.marshal(b' hello ').capitalize())
90 self.assertEqual(b'Hello ', self.marshal(b'Hello ').capitalize())
91 self.assertEqual(b'Hello ', self.marshal(b'hello ').capitalize())
92 self.assertEqual(b'Aaaa', self.marshal(b'aaaa').capitalize())
93 self.assertEqual(b'Aaaa', self.marshal(b'AaAa').capitalize())
94
95 self.assertRaises(TypeError, self.marshal(b'hello').capitalize, 42)
96
97 def test_ljust(self):
98 self.assertEqual(b'abc ', self.marshal(b'abc').ljust(10))
99 self.assertEqual(b'abc ', self.marshal(b'abc').ljust(6))
100 self.assertEqual(b'abc', self.marshal(b'abc').ljust(3))
101 self.assertEqual(b'abc', self.marshal(b'abc').ljust(2))
Benjamin Peterson7fe98532009-04-02 00:33:55 +0000102 self.assertEqual(b'abc*******', self.marshal(b'abc').ljust(10, b'*'))
Gregory P. Smith60d241f2007-10-16 06:31:30 +0000103 self.assertRaises(TypeError, self.marshal(b'abc').ljust)
104
105 def test_rjust(self):
106 self.assertEqual(b' abc', self.marshal(b'abc').rjust(10))
107 self.assertEqual(b' abc', self.marshal(b'abc').rjust(6))
108 self.assertEqual(b'abc', self.marshal(b'abc').rjust(3))
109 self.assertEqual(b'abc', self.marshal(b'abc').rjust(2))
Benjamin Peterson7fe98532009-04-02 00:33:55 +0000110 self.assertEqual(b'*******abc', self.marshal(b'abc').rjust(10, b'*'))
Gregory P. Smith60d241f2007-10-16 06:31:30 +0000111 self.assertRaises(TypeError, self.marshal(b'abc').rjust)
112
113 def test_center(self):
114 self.assertEqual(b' abc ', self.marshal(b'abc').center(10))
115 self.assertEqual(b' abc ', self.marshal(b'abc').center(6))
116 self.assertEqual(b'abc', self.marshal(b'abc').center(3))
117 self.assertEqual(b'abc', self.marshal(b'abc').center(2))
Benjamin Peterson7fe98532009-04-02 00:33:55 +0000118 self.assertEqual(b'***abc****', self.marshal(b'abc').center(10, b'*'))
Gregory P. Smith60d241f2007-10-16 06:31:30 +0000119 self.assertRaises(TypeError, self.marshal(b'abc').center)
120
121 def test_swapcase(self):
122 self.assertEqual(b'hEllO CoMPuTErS',
123 self.marshal(b'HeLLo cOmpUteRs').swapcase())
124
125 self.assertRaises(TypeError, self.marshal(b'hello').swapcase, 42)
126
127 def test_zfill(self):
128 self.assertEqual(b'123', self.marshal(b'123').zfill(2))
129 self.assertEqual(b'123', self.marshal(b'123').zfill(3))
130 self.assertEqual(b'0123', self.marshal(b'123').zfill(4))
131 self.assertEqual(b'+123', self.marshal(b'+123').zfill(3))
132 self.assertEqual(b'+123', self.marshal(b'+123').zfill(4))
133 self.assertEqual(b'+0123', self.marshal(b'+123').zfill(5))
134 self.assertEqual(b'-123', self.marshal(b'-123').zfill(3))
135 self.assertEqual(b'-123', self.marshal(b'-123').zfill(4))
136 self.assertEqual(b'-0123', self.marshal(b'-123').zfill(5))
137 self.assertEqual(b'000', self.marshal(b'').zfill(3))
138 self.assertEqual(b'34', self.marshal(b'34').zfill(1))
139 self.assertEqual(b'0034', self.marshal(b'34').zfill(4))
140
141 self.assertRaises(TypeError, self.marshal(b'123').zfill)
142
Gregory P. Smith60d241f2007-10-16 06:31:30 +0000143 def test_title(self):
144 self.assertEqual(b' Hello ', self.marshal(b' hello ').title())
145 self.assertEqual(b'Hello ', self.marshal(b'hello ').title())
146 self.assertEqual(b'Hello ', self.marshal(b'Hello ').title())
147 self.assertEqual(b'Format This As Title String',
148 self.marshal(b'fOrMaT thIs aS titLe String').title())
149 self.assertEqual(b'Format,This-As*Title;String',
150 self.marshal(b'fOrMaT,thIs-aS*titLe;String').title())
151 self.assertEqual(b'Getint', self.marshal(b'getInt').title())
152 self.assertRaises(TypeError, self.marshal(b'hello').title, 42)
153
154 def test_splitlines(self):
155 self.assertEqual([b'abc', b'def', b'', b'ghi'],
156 self.marshal(b'abc\ndef\n\rghi').splitlines())
157 self.assertEqual([b'abc', b'def', b'', b'ghi'],
158 self.marshal(b'abc\ndef\n\r\nghi').splitlines())
159 self.assertEqual([b'abc', b'def', b'ghi'],
160 self.marshal(b'abc\ndef\r\nghi').splitlines())
161 self.assertEqual([b'abc', b'def', b'ghi'],
162 self.marshal(b'abc\ndef\r\nghi\n').splitlines())
163 self.assertEqual([b'abc', b'def', b'ghi', b''],
164 self.marshal(b'abc\ndef\r\nghi\n\r').splitlines())
165 self.assertEqual([b'', b'abc', b'def', b'ghi', b''],
166 self.marshal(b'\nabc\ndef\r\nghi\n\r').splitlines())
Mark Dickinson0d5f6ad2011-09-24 09:14:39 +0100167 self.assertEqual([b'', b'abc', b'def', b'ghi', b''],
168 self.marshal(b'\nabc\ndef\r\nghi\n\r').splitlines(False))
Gregory P. Smith60d241f2007-10-16 06:31:30 +0000169 self.assertEqual([b'\n', b'abc\n', b'def\r\n', b'ghi\n', b'\r'],
Mark Dickinson0d5f6ad2011-09-24 09:14:39 +0100170 self.marshal(b'\nabc\ndef\r\nghi\n\r').splitlines(True))
171 self.assertEqual([b'', b'abc', b'def', b'ghi', b''],
172 self.marshal(b'\nabc\ndef\r\nghi\n\r').splitlines(keepends=False))
173 self.assertEqual([b'\n', b'abc\n', b'def\r\n', b'ghi\n', b'\r'],
174 self.marshal(b'\nabc\ndef\r\nghi\n\r').splitlines(keepends=True))
Gregory P. Smith60d241f2007-10-16 06:31:30 +0000175
176 self.assertRaises(TypeError, self.marshal(b'abc').splitlines, 42, 42)