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() 40