def parse(self, text, reference_time=None): result = prog.match(text) if result is None: raise Exception("String is not valid" % text) self.name = result.group(1) self.receiver_name = result.group(2) self.timestamp = createTimestamp(result.group(3), reference_time) self.latitude = dmsToDeg(float(result.group(4)) / 100) if result.group(5) == "S": self.latitude = -self.latitude self.symboltable = result.group(6) self.longitude = dmsToDeg(float(result.group(7)) / 100) if result.group(8) == "W": self.longitude = -self.longitude self.symbolcode = result.group(9) if result.group(10) is not None: self.track = int(result.group(11)) self.ground_speed = int(result.group(12))*kts2kmh else: self.track = 0 self.ground_speed = 0 self.altitude = int(result.group(13))*feet2m self.comment = result.group(14)
def test_createTimestamp_big_difference(self): with self.assertRaises(Exception): createTimestamp(datetime(2015, 10, 15, 23, 59, 59), '123456')
def test_createTimestamp_seconds_before(self): timestamp = createTimestamp('000001', datetime(2015, 10, 15, 23, 59, 59)) self.assertEqual(timestamp, datetime(2015, 10, 16, 0, 0, 1))
def test_createTimestamp_seconds_behind(self): timestamp = createTimestamp('235959', datetime(2015, 10, 16, 0, 0, 1)) self.assertEqual(timestamp, datetime(2015, 10, 15, 23, 59, 59))