def test_position_comment_relevant_keys_only(self): # return only keys where we got informations message = FlarmParser().parse_position("id21A8CBA8") self.assertIsNotNone(message) self.assertEqual( sorted(message.keys()), sorted(['address_type', 'aircraft_type', 'stealth', 'address']))
def test_position_comment(self): message = FlarmParser.parse_position("id21A8CBA8 -039fpm +0.1rot 3.5dB 2e -8.7kHz gps1x2 s6.09 h43 rDF0267") self.assertEqual(message['address_type'], 1) self.assertEqual(message['aircraft_type'], 8) self.assertFalse(message['stealth']) self.assertEqual(message['address'], "A8CBA8") self.assertAlmostEqual(message['climb_rate'], -39 * FPM_TO_MS, 2) self.assertEqual(message['turn_rate'], 0.1 * HPM_TO_DEGS) self.assertEqual(message['signal_quality'], 3.5) self.assertEqual(message['error_count'], 2) self.assertEqual(message['frequency_offset'], -8.7) self.assertEqual(message['gps_quality'], {'horizontal': 1, 'vertical': 2}) self.assertEqual(message['software_version'], 6.09) self.assertEqual(message['hardware_version'], 67) self.assertEqual(message['real_address'], "DF0267")
def test_position_comment(self): message = FlarmParser().parse_position("id21A8CBA8 -039fpm +0.1rot 3.5dB 2e -8.7kHz gps1x2 s6.09 h43 rDF0267") self.assertEqual(message['address_type'], 1) self.assertEqual(message['aircraft_type'], 8) self.assertFalse(message['stealth']) self.assertEqual(message['address'], "A8CBA8") self.assertAlmostEqual(message['climb_rate'], -39 * FPM_TO_MS, 2) self.assertEqual(message['turn_rate'], 0.1 * HPM_TO_DEGS) self.assertEqual(message['signal_quality'], 3.5) self.assertEqual(message['error_count'], 2) self.assertEqual(message['frequency_offset'], -8.7) self.assertEqual(message['gps_quality'], {'horizontal': 1, 'vertical': 2}) self.assertEqual(message['software_version'], 6.09) self.assertEqual(message['hardware_version'], 67) self.assertEqual(message['real_address'], "DF0267")
'comment': match_status.group('comment') if match_status.group('comment') else "" }) else: raise NotImplementedError(message) else: raise AprsParseError(message) return result dstcall_parser_mapping = { 'APRS': OgnParser(), 'OGNFNT': FanetParser(), 'OGFLR': FlarmParser(), 'OGNTRK': TrackerParser(), 'OGNSDR': ReceiverParser(), 'OGCAPT': GenericParser(beacon_type='capturs'), 'OGFLYM': GenericParser(beacon_type='flymaster'), 'OGINRE': InreachParser(), 'OGLT24': LT24Parser(), 'OGNAVI': NaviterParser(), 'OGPAW': GenericParser(beacon_type='pilot_aware'), 'OGSKYL': SkylinesParser(), 'OGSPID': SpiderParser(), 'OGSPOT': SpotParser(), 'GENERIC': GenericParser(beacon_type='unknown'), }