Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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()
Ejemplo n.º 5
0
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()
Ejemplo n.º 6
0
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:")
Ejemplo n.º 7
0
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:")
Ejemplo n.º 8
0
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])
Ejemplo n.º 9
0
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)
Ejemplo n.º 10
0
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"
Ejemplo n.º 11
0
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)
Ejemplo n.º 12
0
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)
Ejemplo n.º 13
0
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