mirror of
https://github.com/craigerl/aprsd.git
synced 2026-05-23 08:36:54 -04:00
kiss consumer update
this patch updates the kiss consumer to call the callback with the frame as arg[0] just like aprslib does.
This commit is contained in:
parent
a3854033b3
commit
6cbd6452d5
@ -12,7 +12,6 @@ repos:
|
||||
- id: check-builtin-literals
|
||||
- id: check-illegal-windows-names
|
||||
- id: double-quote-string-fixer
|
||||
- id: name-tests-test
|
||||
|
||||
- repo: https://github.com/asottile/setup-cfg-fmt
|
||||
rev: v2.7.0
|
||||
|
||||
@ -133,6 +133,7 @@ class APRSISDriver:
|
||||
continue
|
||||
|
||||
def set_filter(self, filter):
|
||||
LOG.info(f'Setting filter to {filter}')
|
||||
self._client.set_filter(filter)
|
||||
|
||||
def login_success(self) -> bool:
|
||||
|
||||
@ -101,11 +101,12 @@ class KISSDriver(metaclass=trace.TraceWrapperMetaclass):
|
||||
Args:
|
||||
frame: Received AX.25 frame
|
||||
"""
|
||||
frame = kwargs.get('frame')
|
||||
if not frame:
|
||||
if not args:
|
||||
LOG.warning('No frame received to decode?!?!')
|
||||
return None
|
||||
|
||||
frame = args[0]
|
||||
|
||||
try:
|
||||
aprslib_frame = aprslib.parse(str(frame))
|
||||
packet = core.factory(aprslib_frame)
|
||||
@ -134,10 +135,7 @@ class KISSDriver(metaclass=trace.TraceWrapperMetaclass):
|
||||
frame = self.read_frame()
|
||||
if frame:
|
||||
LOG.info(f'GOT FRAME: {frame} calling {callback}')
|
||||
kwargs = {
|
||||
'frame': frame,
|
||||
}
|
||||
callback(**kwargs)
|
||||
callback(frame)
|
||||
|
||||
def read_frame(self):
|
||||
"""Read a frame from the KISS interface.
|
||||
|
||||
@ -112,7 +112,7 @@ class TestKISSDriver(unittest.TestCase):
|
||||
mock_parse.return_value = mock_aprs_data
|
||||
mock_factory.return_value = mock_packet
|
||||
|
||||
result = self.driver.decode_packet(frame=frame)
|
||||
result = self.driver.decode_packet(frame)
|
||||
self.assertEqual(result, mock_packet)
|
||||
mock_parse.assert_called_with(str(frame))
|
||||
|
||||
@ -131,7 +131,7 @@ class TestKISSDriver(unittest.TestCase):
|
||||
mock_parse.side_effect = Exception('Parse error')
|
||||
|
||||
with mock.patch('aprsd.client.drivers.kiss_common.LOG') as mock_log:
|
||||
result = self.driver.decode_packet(frame=frame)
|
||||
result = self.driver.decode_packet(frame)
|
||||
self.assertIsNone(result)
|
||||
mock_log.error.assert_called()
|
||||
|
||||
@ -154,7 +154,7 @@ class TestKISSDriver(unittest.TestCase):
|
||||
mock_parse.return_value = mock_aprs_data
|
||||
mock_factory.return_value = third_party
|
||||
|
||||
result = self.driver.decode_packet(frame=frame)
|
||||
result = self.driver.decode_packet(frame)
|
||||
self.assertEqual(result, third_party.subpacket)
|
||||
|
||||
def test_consumer_not_connected(self):
|
||||
|
||||
@ -339,7 +339,7 @@ class TestTCPKISSDriver(unittest.TestCase):
|
||||
with mock.patch(
|
||||
'aprsd.client.drivers.tcpkiss.core.factory', return_value=mock_packet
|
||||
) as mock_factory:
|
||||
result = self.driver.decode_packet(frame=mock_frame)
|
||||
result = self.driver.decode_packet(mock_frame)
|
||||
|
||||
mock_parse.assert_called_once_with(str(mock_frame))
|
||||
mock_factory.assert_called_once_with(mock_aprs_data)
|
||||
@ -362,7 +362,7 @@ class TestTCPKISSDriver(unittest.TestCase):
|
||||
'aprsd.client.drivers.kiss_common.aprslib.parse',
|
||||
side_effect=Exception('Test error'),
|
||||
) as mock_parse:
|
||||
result = self.driver.decode_packet(frame=mock_frame)
|
||||
result = self.driver.decode_packet(mock_frame)
|
||||
|
||||
mock_parse.assert_called_once()
|
||||
self.assertIsNone(result)
|
||||
@ -389,7 +389,7 @@ class TestTCPKISSDriver(unittest.TestCase):
|
||||
self.driver.consumer(mock_callback)
|
||||
|
||||
mock_read_frame.assert_called_once()
|
||||
mock_callback.assert_called_once_with(frame=mock_frame)
|
||||
mock_callback.assert_called_once_with(mock_frame)
|
||||
|
||||
@mock.patch('aprsd.client.drivers.tcpkiss.LOG')
|
||||
def test_read_frame_success(self, mock_log):
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user