def test_read_data_stop_set(self): class MockPort: def read(self, count): return b"0000" buf = bytearray() event = threading.Event() event.set() with self.assertRaises(stentura._StopException): stentura._read_data(MockPort(), event, buf, 0, 4)
def test_read_data_stop_set(self): class MockPort(object): def read(self, count): return b"0000" buf = bytearray() event = threading.Event() event.set() with self.assertRaises(stentura._StopException): stentura._read_data(MockPort(), event, buf, 0, 4)
def test_read_data_timeout(self): class MockPort(object): def inWaiting(self): return 0 port = MockPort() buf = array.array('B') with self.assertRaises(stentura._TimeoutException): stentura._read_data(port, threading.Event(), buf, 0, 0.001)
def test_read_data_stop_immediately(self): class MockPort(object): def inWaiting(self): return 0 buf = array.array('B') event = threading.Event() event.set() with self.assertRaises(stentura._StopException): stentura._read_data(MockPort(), event, buf, 0, 1)
def test_read_data_timeout(self): class MockPort(object): def read(self, count): # When serial time out occurs read() returns # less characters as requested return "123" port = MockPort() buf = bytearray() with self.assertRaises(stentura._TimeoutException): stentura._read_data(port, threading.Event(), buf, 0, 4)
def test_read_data_simple(self): class MockPort(object): def read(self, count): if count != 5: raise Exception("Incorrect number read.") return b"12345" port = MockPort() buf = bytearray([0] * 20) count = stentura._read_data(port, threading.Event(), buf, 0, 5) self.assertEqual(count, 5) self.assertEqual(buf, b'12345' + (b'\x00' * 15)) # Test the offset parameter. count = stentura._read_data(port, threading.Event(), buf, 4, 5) self.assertEqual(buf, b'123412345' + (b'\x00' * 11))
def test_read_data_simple(self): class MockPort(object): def read(self, count): if count != 5: raise Exception("Incorrect number read.") return "12345" port = MockPort() buf = array.array('B') count = stentura._read_data(port, threading.Event(), buf, 0, 5) self.assertEqual(count, 5) self.assertSequenceEqual([chr(b) for b in buf], "12345") # Test the offset parameter. count = stentura._read_data(port, threading.Event(), buf, 4, 5) self.assertSequenceEqual([chr(b) for b in buf], "123412345")
def test_read_data_stop_waiting(self): class MockPort(object): def __init__(self): self.event = threading.Event() self._times = 0 def inWaiting(self): self._times += 1 if self._times < 5: return 0 if self._times == 5: self.event.set() return 0 port = MockPort() buf = array.array('B') with self.assertRaises(stentura._StopException): stentura._read_data(port, port.event, buf, 0, 1)
def test_read_data_waiting(self): class MockPort(object): def __init__(self): self._times = 0 def inWaiting(self): self._times += 1 if self._times == 5: return 4 def read(self, count): if self._times != 5: raise Exception("Called read too early.") if count != 4: raise Exception("Wrong count.") return "1234" buf = array.array('B') count = stentura._read_data(MockPort(), threading.Event(), buf, 0, 1) self.assertEqual(count, 4) self.assertSequenceEqual([chr(b) for b in buf], "1234")