Test a failed JBD read
collect_data returns False if requestMessage returns False or None, for the first request and for the second one. Before the earlier fix, these values raised TypeError and ended the server.
This commit is contained in:
@@ -528,6 +528,18 @@ class TestCollectData:
|
|||||||
result = collect_data(MagicMock())
|
result = collect_data(MagicMock())
|
||||||
assert result is False
|
assert result is False
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("failed", [False, None])
|
||||||
|
@pytest.mark.parametrize("first_ok", [False, True], ids=["0x03", "0x04"])
|
||||||
|
def test_failed_read_returns_false(self, valid_03_response, failed, first_ok):
|
||||||
|
"""requestMessage returns False or None for a port that it cannot read.
|
||||||
|
|
||||||
|
len() of these values raised TypeError, which ended the server.
|
||||||
|
"""
|
||||||
|
responses = [bytes(valid_03_response), failed] if first_ok else [failed]
|
||||||
|
with patch("bmspy.jbd_bms.requestMessage", side_effect=responses) as request:
|
||||||
|
assert collect_data(MagicMock()) is False
|
||||||
|
assert request.call_count == len(responses)
|
||||||
|
|
||||||
def test_empty_04_response_returns_false(self, valid_03_response):
|
def test_empty_04_response_returns_false(self, valid_03_response):
|
||||||
responses = [bytes(valid_03_response), b""]
|
responses = [bytes(valid_03_response), b""]
|
||||||
idx = 0
|
idx = 0
|
||||||
|
|||||||
Reference in New Issue
Block a user