def test_aprs_listener(): """Test listener thread.""" with patch("aprslib.IS") as mock_ais: callsign = TEST_CALLSIGN password = TEST_PASSWORD host = TEST_HOST server_filter = TEST_FILTER port = DEFAULT_PORT see = Mock() listener = device_tracker.AprsListenerThread(callsign, password, host, server_filter, see) listener.run() assert listener.callsign == callsign assert listener.host == host assert listener.server_filter == server_filter assert listener.see == see assert listener.start_event.is_set() assert listener.start_success assert listener.start_message == "Connected to testhost with callsign testcall." mock_ais.assert_called_with(callsign, passwd=password, host=host, port=port)
def test_aprs_listener_rx_msg_ambiguity_invalid(): """Test rx_msg with invalid posambiguity.""" with patch("aprslib.IS"): callsign = TEST_CALLSIGN password = TEST_PASSWORD host = TEST_HOST server_filter = TEST_FILTER see = Mock() sample_msg = { device_tracker.ATTR_FORMAT: "uncompressed", device_tracker.ATTR_FROM: "ZZ0FOOBAR-1", device_tracker.ATTR_LATITUDE: 0.0, device_tracker.ATTR_LONGITUDE: 0.0, device_tracker.ATTR_POS_AMBIGUITY: 5, } listener = device_tracker.AprsListenerThread(callsign, password, host, server_filter, see) listener.run() listener.rx_msg(sample_msg) assert listener.callsign == callsign assert listener.host == host assert listener.server_filter == server_filter assert listener.see == see assert listener.start_event.is_set() assert listener.start_success assert listener.start_message == "Connected to testhost with callsign testcall." see.assert_called_with(dev_id=device_tracker.slugify("ZZ0FOOBAR-1"), gps=(0.0, 0.0), attributes={})
def test_aprs_listener_rx_msg_no_position(): """Test rx_msg with non-position report.""" with patch("aprslib.IS"): callsign = TEST_CALLSIGN password = TEST_PASSWORD host = TEST_HOST server_filter = TEST_FILTER see = Mock() sample_msg = {device_tracker.ATTR_FORMAT: "invalid"} listener = device_tracker.AprsListenerThread( callsign, password, host, server_filter, see ) listener.run() listener.rx_msg(sample_msg) assert listener.callsign == callsign assert listener.host == host assert listener.server_filter == server_filter assert listener.see == see assert listener.start_event.is_set() assert listener.start_success assert listener.start_message == "Connected to testhost with callsign testcall." see.assert_not_called()
def test_aprs_listener_start_fail(): """Test listener thread start failure.""" with patch("aprslib.IS.connect", side_effect=aprslib.ConnectionError("Unable to connect.")): callsign = TEST_CALLSIGN password = TEST_PASSWORD host = TEST_HOST server_filter = TEST_FILTER see = Mock() listener = device_tracker.AprsListenerThread(callsign, password, host, server_filter, see) listener.run() assert listener.callsign == callsign assert listener.host == host assert listener.server_filter == server_filter assert listener.see == see assert listener.start_event.is_set() assert not listener.start_success assert listener.start_message == "Unable to connect."
def test_aprs_listener_stop(): """Test listener thread stop.""" with patch("aprslib.IS"): callsign = TEST_CALLSIGN password = TEST_PASSWORD host = TEST_HOST server_filter = TEST_FILTER see = Mock() listener = device_tracker.AprsListenerThread(callsign, password, host, server_filter, see) listener.ais.close = Mock() listener.run() listener.stop() assert listener.callsign == callsign assert listener.host == host assert listener.server_filter == server_filter assert listener.see == see assert listener.start_event.is_set() assert listener.start_message == "Connected to testhost with callsign testcall." assert listener.start_success listener.ais.close.assert_called_with()