def test_get_hashrate(mock_connect, event_dicts, side_effect, outcome):
""" Mocks socket.recv function to test various payloads while getting hashrate """
if event_dicts is None:
event_bytes = b""
else:
event_str = "\n".join([json.dumps(event) for event in event_dicts]) + "\n"
event_bytes = event_str.encode()
with mock.patch.object(bitcoin_computer.socket.socket, "recv") as mock_recv:
# forces the return value on recv to the list of events given
mock_recv.return_value = event_bytes
mock_recv.side_effect = side_effect
if isinstance(outcome, (int, float)):
# ensures the proper output value
assert bitcoin_computer.get_hashrate("15min") == outcome
else:
# When the statistics event is not given a TimeoutError will occur
with pytest.raises(outcome):
bitcoin_computer.get_hashrate("15min")
评论列表
文章目录