1
0
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:
Walter Boring 2026-01-12 23:25:06 -05:00
parent a3854033b3
commit 6cbd6452d5
5 changed files with 11 additions and 13 deletions

View File

@ -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

View File

@ -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:

View File

@ -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.

View File

@ -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):

View File

@ -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):