def test_read(self, serial, tty):
serial.return_value.read.side_effect = [
HEX('0000ff00ff00'),
]
assert tty.read(0) == b'\x00\x00\xff\x00\xff\x00'
assert serial.return_value.read.mock_calls == [call(6)]
assert tty.tty.timeout == 0.05
serial.return_value.read.reset_mock()
serial.return_value.read.side_effect = [
HEX('0000ff03fbd5'), HEX('01020000'),
]
assert tty.read(51) == b'\x00\x00\xff\x03\xfb\xd5\x01\x02\x00\x00'
assert serial.return_value.read.mock_calls == [call(6), call(4)]
assert tty.tty.timeout == 0.051
serial.return_value.read.reset_mock()
serial.return_value.read.side_effect = [
HEX('0000ffffff01'), HEX('01fed5'), bytearray(256) + HEX('2b00'),
]
tty.read(100)
assert serial.return_value.read.mock_calls == [
call(6), call(3), call(258),
]
assert tty.tty.timeout == 0.1
serial.return_value.read.reset_mock()
serial.return_value.read.side_effect = [HEX('')]
with pytest.raises(IOError) as excinfo:
tty.read(1100)
assert excinfo.value.errno == errno.ETIMEDOUT
assert serial.return_value.read.mock_calls == [call(6)]
assert tty.tty.timeout == 1.1
tty.tty = None
assert tty.read(1000) is None
评论列表
文章目录