blob: 834c05b78bf3ae292d272bcfbad7f84c362b517c [file] [log] [blame]
Guido van Rossum47b9ff62006-08-24 00:41:19 +00001"""Unit tests for buffer objects.
2
3For now, we just test (the brand new) rich comparison.
4
5"""
6
7import unittest
8from test import test_support
9
10class BufferTests(unittest.TestCase):
11
12 def test_comparison(self):
13 a = buffer("a.b.c")
14 b = buffer("a.b" + ".c")
15 self.assert_(a == b)
16 self.assert_(a <= b)
17 self.assert_(a >= b)
18 self.assert_(a == "a.b.c")
19 self.assert_(a <= "a.b.c")
20 self.assert_(a >= "a.b.c")
21 b = buffer("a.b.c.d")
22 self.assert_(a != b)
23 self.assert_(a <= b)
24 self.assert_(a < b)
25 self.assert_(a != "a.b.c.d")
26 self.assert_(a < "a.b.c.d")
27 self.assert_(a <= "a.b.c.d")
28 b = buffer("a.b")
29 self.assert_(a != b)
30 self.assert_(a >= b)
31 self.assert_(a > b)
32 self.assert_(a != "a.b")
33 self.assert_(a > "a.b")
34 self.assert_(a >= "a.b")
35 b = object()
36 self.assert_(a != b)
37 self.failIf(a == b)
38 self.assertRaises(TypeError, lambda: a < b)
39
Thomas Woutersed03b412007-08-28 21:37:11 +000040 def test_extended_getslice(self):
41 # Test extended slicing by comparing with list slicing.
42 s = bytes(range(255, -1, -1))
43 b = buffer(s)
44 indices = (0, None, 1, 3, 19, 300, -1, -2, -31, -300)
45 for start in indices:
46 for stop in indices:
47 # Skip step 0 (invalid)
48 for step in indices[1:]:
49 self.assertEqual(b[start:stop:step],
50 s[start:stop:step])
51
Guido van Rossum47b9ff62006-08-24 00:41:19 +000052def test_main():
53 test_support.run_unittest(BufferTests)
54
55if __name__ == "__main__":
56 test_main()