123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- # tests for win32gui
- import unittest
- import win32gui
- import pywin32_testutil
- import operator
- import array
- import sys
- class TestPyGetString(unittest.TestCase):
- def test_get_string(self):
- # test invalid addresses cause a ValueError rather than crash!
- self.assertRaises(ValueError, win32gui.PyGetString, 0)
- self.assertRaises(ValueError, win32gui.PyGetString, 1)
- self.assertRaises(ValueError, win32gui.PyGetString, 1,1)
- class TestPyGetMemory(unittest.TestCase):
- def test_ob(self):
- # Check the PyGetMemory result and a bytes string can be compared
- test_data = b"\0\1\2\3\4\5\6"
- c = array.array("b", test_data)
- addr, buflen = c.buffer_info()
- got = win32gui.PyGetMemory(addr, buflen)
- self.assertEqual(len(got), len(test_data))
- self.assertEqual(bytes(got), test_data)
- def test_memory_index(self):
- # Check we can index into the buffer object returned by PyGetMemory
- test_data = b"\0\1\2\3\4\5\6"
- c = array.array("b", test_data)
- addr, buflen = c.buffer_info()
- got = win32gui.PyGetMemory(addr, buflen)
- self.assertEqual(got[0], 0)
- def test_memory_slice(self):
- # Check we can slice the buffer object returned by PyGetMemory
- test_data = b"\0\1\2\3\4\5\6"
- c = array.array("b", test_data)
- addr, buflen = c.buffer_info()
- got = win32gui.PyGetMemory(addr, buflen)
- self.assertEqual(list(got[0:3]), [0, 1, 2])
- def test_real_view(self):
- # Do the PyGetMemory, then change the original memory, then ensure
- # the initial object we fetched sees the new value.
- test_data = b"\0\1\2\3\4\5\6"
- c = array.array("b", test_data)
- addr, buflen = c.buffer_info()
- got = win32gui.PyGetMemory(addr, buflen)
- self.assertEqual(got[0], 0)
- c[0] = 1
- self.assertEqual(got[0], 1)
- def test_memory_not_writable(self):
- # Check the buffer object fetched by PyGetMemory isn't writable.
- test_data = b"\0\1\2\3\4\5\6"
- c = array.array("b", test_data)
- addr, buflen = c.buffer_info()
- got = win32gui.PyGetMemory(addr, buflen)
- self.assertRaises(TypeError, operator.setitem, got, 0, 1)
- if __name__=='__main__':
- unittest.main()
|