def test_http_test_pass(): assert is_enabled() msg = MsgPrintDep(text=b'abcd') register_uri(GET, BASE_STATION_URI, msg.to_binary(), content_type=b"application/vnd.swiftnav.broker.v1+sbp2") register_uri(PUT, BASE_STATION_URI, b'', content_type=b"application/vnd.swiftnav.broker.v1+sbp2") with HTTPDriver(device_uid=b"Swift22", url=BASE_STATION_URI) as driver: assert not driver.read_ok assert driver.connect_read() assert driver.read_ok assert driver.read(size=255) == msg.to_binary() with pytest.raises(IOError): assert driver.read(size=255) assert not driver.read_close() assert driver.read_response is None assert not driver.read_ok with pytest.raises(ValueError): driver.read(size=255) with HTTPDriver(device_uid=b"Swift22", url=BASE_STATION_URI) as http: with Handler(Framer(http.read, http.write, False)) as link: def tester(sbp_msg, **metadata): assert sbp_msg.payload == msg.payload link.add_callback(SBP_MSG_PRINT_DEP, tester) t0 = time.time() sleep = 0.1 while True: if time.time() - t0 < sleep: break
def test_http_test_pass_streaming(): assert is_enabled() msgs = [ MsgPrintDep(text=b'foo'), MsgPrintDep(text=b'bar'), MsgPrintDep(text=b'baz') ] register_uri(GET, BASE_STATION_URI, mock_streaming_msgs([m.to_binary() for m in msgs]), content_type=b"application/vnd.swiftnav.broker.v1+sbp2", streaming=True) register_uri(PUT, BASE_STATION_URI, body=b'', content_type=b"application/vnd.swiftnav.broker.v1+sbp2", streaming=True) with HTTPDriver(device_uid=b"Swift22", url=BASE_STATION_URI) as driver: assert driver.connect_read() assert driver.read_ok assert driver.read(size=255) == b''.join([m.to_binary() for m in msgs]) assert driver.read(size=255) == b'' assert not driver.read_close() assert driver.read_response is None assert not driver.read_ok with pytest.raises(ValueError): driver.read(size=255)
def test_http_test_pass(): assert is_enabled() msg = MsgPrintDep(text='abcd') register_uri(GET, BASE_STATION_URI, msg.to_binary(), content_type="application/vnd.swiftnav.broker.v1+sbp2") register_uri(PUT, BASE_STATION_URI, '', content_type="application/vnd.swiftnav.broker.v1+sbp2") with HTTPDriver(device_uid="Swift22", url=BASE_STATION_URI) as driver: assert not driver.read_ok assert driver.connect_read() assert driver.read_ok assert driver.read(size=255) == msg.to_binary() with pytest.raises(IOError): assert driver.read(size=255) assert not driver.read_close() assert driver.read_response is None assert not driver.read_ok with pytest.raises(ValueError): driver.read(size=255) with HTTPDriver(device_uid="Swift22", url=BASE_STATION_URI) as http: with Handler(Framer(http.read, http.write, False)) as link: def tester(sbp_msg, **metadata): assert sbp_msg.payload == msg.payload link.add_callback(SBP_MSG_PRINT_DEP, tester) t0 = time.time() sleep = 0.1 while True: if time.time() - t0 < sleep: break
def test_http_test_pass(): assert is_enabled() msg = MsgPrintDep(text='abcd') register_uri(GET, BASE_STATION_URI, msg.to_binary(), content_type="application/vnd.swiftnav.broker.v1+sbp") with HTTPDriver(device_uid="Swift22", url=BASE_STATION_URI) as driver: assert driver.read(size=255) == msg.to_binary()
def test_http_test_fail(): assert is_enabled() msg = MsgPrintDep(text='abcd') register_uri(GET, BASE_STATION_URI, msg.to_binary(), content_type="application/vnd.swiftnav.broker.v1+sbp", status=400) with HTTPDriver(device_uid="Swift22", url=BASE_STATION_URI) as driver: with pytest.raises(RuntimeError) as exc_info: driver.read(size=255) assert exc_info.value.message.startswith("Request failed! With code 400:")
def test_http_test_pass_streaming(): assert is_enabled() msgs = [ MsgPrintDep(text='foo'), MsgPrintDep(text='bar'), MsgPrintDep(text='baz') ] register_uri(GET, BASE_STATION_URI, mock_streaming_msgs([m.to_binary() for m in msgs]), content_type="application/vnd.swiftnav.broker.v1+sbp", streaming=True) with HTTPDriver(device_uid="Swift22", url=BASE_STATION_URI) as driver: assert driver.read(size=255) == ''.join([m.to_binary() for m in msgs])
def test_http_test_pass_retry(): assert is_enabled() msg = MsgPrintDep(text='abcd') get_responses = [ Response(body="first response", status=500, content_type="application/vnd.swiftnav.broker.v1+sbp2"), Response(body='second and last response', status=200, content_type="application/vnd.swiftnav.broker.v1+sbp2") ] post_responses = [ Response(body="", status=500, content_type="application/vnd.swiftnav.broker.v1+sbp2"), Response(body='', status=200, content_type="application/vnd.swiftnav.broker.v1+sbp2") ] register_uri(GET, BASE_STATION_URI, get_responses) register_uri(PUT, BASE_STATION_URI, post_responses) with HTTPDriver(device_uid="Swift22", url=BASE_STATION_URI) as driver: with pytest.raises(ValueError): driver.read(size=255) assert driver.connect_read() assert driver.read(size=255)
def test_tcp_logger(): handler = tcp_handler(MsgPrintDep(text=b'abc').to_binary()) ip, port = tcp_server(handler) t0 = time.time() sleep = 0.1 timeout = 5.0 cb_context = {'assert_logger_called': False} def assert_logger(s, **metadata): cb_context['assert_logger_called'] = True assert s.preamble == 0x55 assert s.msg_type == 0x10 assert s.sender == 66 assert s.length == 3 assert s.payload == b'abc' assert s.crc == 0xDAEE with TCPDriver(ip, port) as driver: with Handler(Framer(driver.read, None, verbose=False), autostart=False) as link: link.add_callback(assert_logger) link.start() while True: if time.time() - t0 > timeout or cb_context[ 'assert_logger_called']: break time.sleep(sleep) assert cb_context[ 'assert_logger_called'], "SBP msg callback function was not called"
def test_http_test_fail(): assert is_enabled() msg = MsgPrintDep(text='abcd') register_uri(GET, BASE_STATION_URI, msg.to_binary(), content_type="application/vnd.swiftnav.broker.v1+sbp2", status=400) register_uri(PUT, BASE_STATION_URI, '', content_type="application/vnd.swiftnav.broker.v1+sbp2", status=400) with HTTPDriver(device_uid="Swift22", url=BASE_STATION_URI) as driver: assert not driver.connect_read() assert not driver.read_ok with pytest.raises(IOError): driver.read(size=255)
def test_tcp_logger(): handler = tcp_handler(MsgPrintDep(text='abc').to_binary()) ip, port = tcp_server(handler) port = "socket://%s:%s" % (ip, port) baud = 115200 t0 = time.time() sleep = 0.1 def assert_logger(s): assert s.preamble == 0x55 assert s.msg_type == 0x10 assert s.sender == 66 assert s.length == 3 assert s.payload == 'abc' assert s.crc == 0xDAEE with PySerialDriver(port, baud) as driver: with Handler(Framer(driver.read, None, verbose=False)) as link: link.add_callback(assert_logger) while True: if time.time() - t0 < sleep: break