def test_fail_silently(self): # this tests combines testing for an UnknownMessageException and the silent param at once msg = b"!AIVDM,1,1,,A,U31<0OOP000CshrMdl600?wP00SL,0*43" nmea = NMEAMessage(msg) with self.assertRaises(UnknownMessageException): nmea.decode(silent=False) # by default errors are ignored and an empty AIS message is returned assert nmea.decode() is not None assert isinstance(nmea.decode(), AISMessage) text = """{ "nmea": { "ais_id": 37, "raw": "!AIVDM,1,1,,A,U31<0OOP000CshrMdl600?wP00SL,0*43", "talker": "AI", "type": "VDM", "message_fragments": 1, "fragment_number": 1, "message_id": null, "channel": "A", "payload": "U31<0OOP000CshrMdl600?wP00SL", "fill_bits": 0, "checksum": 67, "bit_array": "100101000011000001001100000000011111011111100000000000000000000000010011111011110000111010011101101100110100000110000000000000001111111111100000000000000000100011011100" }, "decoded": {} }""" self.assertEqual(nmea.decode().to_json(), text)
def test_fail_silently(self): # this tests combines testing for an UnknownMessageException and the silent param at once msg = b"!AIVDM,1,1,,A,U31<0OOP000CshrMdl600?wP00SL,0*43" nmea = NMEAMessage(msg) with self.assertRaises(UnknownMessageException): nmea.decode(silent=False) # by default errors are ignored and None is returned assert nmea.decode() is None
def test_msg_type(self): """ Test if msg type is correct """ nmea = NMEAMessage(b"!AIVDM,1,1,,B,15M67FC000G?ufbE`FepT@3n00Sa,0*5C") assert nmea.decode().msg_type == AISType.POS_CLASS_A1 nmea = NMEAMessage(b"!AIVDM,1,1,,B,15NG6V0P01G?cFhE`R2IU?wn28R>,0*05") assert nmea.decode().msg_type == AISType.POS_CLASS_A1 nmea = NMEAMessage.assemble_from_iterable(messages=[ NMEAMessage(b"!AIVDM,2,1,4,A,55O0W7`00001L@gCWGA2uItLth@DqtL5@F22220j1h742t0Ht0000000,0*08"), NMEAMessage(b"!AIVDM,2,2,4,A,000000000000000,2*20") ]) assert nmea.decode().msg_type == AISType.STATIC_AND_VOYAGE
def test_nmea(self): """ Test if ais message still contains the original nmea message """ nmea = NMEAMessage(b"!AIVDM,1,1,,B,91b55wi;hbOS@OdQAC062Ch2089h,0*30") assert nmea.decode().nmea == nmea
from pyais.messages import NMEAMessage message = NMEAMessage(b"!AIVDM,1,1,,B,15M67FC000G?ufbE`FepT@3n00Sa,0*5C") print(message.decode()) # or message = NMEAMessage.from_string( "!AIVDM,1,1,,B,15M67FC000G?ufbE`FepT@3n00Sa,0*5C") print(message.decode())