1 | """Unit tests for buffer objects.
|
---|
2 |
|
---|
3 | For now, tests just new or changed functionality.
|
---|
4 |
|
---|
5 | """
|
---|
6 |
|
---|
7 | import unittest
|
---|
8 | from test import test_support
|
---|
9 |
|
---|
10 | class BufferTests(unittest.TestCase):
|
---|
11 |
|
---|
12 | def test_extended_getslice(self):
|
---|
13 | # Test extended slicing by comparing with list slicing.
|
---|
14 | s = "".join(chr(c) for c in list(range(255, -1, -1)))
|
---|
15 | b = buffer(s)
|
---|
16 | indices = (0, None, 1, 3, 19, 300, -1, -2, -31, -300)
|
---|
17 | for start in indices:
|
---|
18 | for stop in indices:
|
---|
19 | # Skip step 0 (invalid)
|
---|
20 | for step in indices[1:]:
|
---|
21 | self.assertEqual(b[start:stop:step],
|
---|
22 | s[start:stop:step])
|
---|
23 |
|
---|
24 | def test_newbuffer_interface(self):
|
---|
25 | # Test that the buffer object has the new buffer interface
|
---|
26 | # as used by the memoryview object
|
---|
27 | s = "".join(chr(c) for c in list(range(255, -1, -1)))
|
---|
28 | b = buffer(s)
|
---|
29 | m = memoryview(b) # Should not raise an exception
|
---|
30 | self.assertEqual(m.tobytes(), s)
|
---|
31 |
|
---|
32 |
|
---|
33 | def test_main():
|
---|
34 | with test_support.check_py3k_warnings(("buffer.. not supported",
|
---|
35 | DeprecationWarning)):
|
---|
36 | test_support.run_unittest(BufferTests)
|
---|
37 |
|
---|
38 | if __name__ == "__main__":
|
---|
39 | test_main()
|
---|