From c2842721090761e71070733e59695686f9d743a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20Gru=CC=88ndger?= Date: Wed, 16 Dec 2015 18:28:03 +0100 Subject: [PATCH 1/2] Test default reference_date --- tests/test_aprs_parser.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tests/test_aprs_parser.py b/tests/test_aprs_parser.py index 4d29fc1..1056576 100644 --- a/tests/test_aprs_parser.py +++ b/tests/test_aprs_parser.py @@ -1,5 +1,8 @@ import unittest +import unittest.mock as mock + from datetime import datetime +from time import sleep from ogn.aprs_parser import parse_aprs from ogn.exceptions import AprsParseError, OgnParseError @@ -33,6 +36,19 @@ class TestStringMethods(unittest.TestCase): parse_aprs("Lachens>APRS,TCPIP*,qAC,GLIDERN2:/165334h4344.70NI00639.19E&/A=005435 v0.2.1 CPU:0.3 RAM:1764.4/21", datetime(2015, 4, 10, 16, 54)) + @mock.patch('ogn.aprs_parser.Beacon') + def test_default_reference_date(self, beacon_mock): + instance = beacon_mock.return_value + valid_aprs_string = "Lachens>APRS,TCPIP*,qAC,GLIDERN2:/165334h4344.70NI00639.19E&/A=005435 v0.2.1 CPU:0.3 RAM:1764.4/21" + + parse_aprs(valid_aprs_string) + call_args = instance.parse.call_args + sleep(1) + parse_aprs(valid_aprs_string) + call_args_one_second_later = instance.parse.call_args + + self.assertNotEqual(call_args, call_args_one_second_later) + if __name__ == '__main__': unittest.main() From 15d12d0d820bf9e95519ec91bff65a171964b452 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20Gru=CC=88ndger?= Date: Wed, 16 Dec 2015 18:29:08 +0100 Subject: [PATCH 2/2] Fix test --- ogn/aprs_parser.py | 5 ++++- ogn/model/beacon.py | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ogn/aprs_parser.py b/ogn/aprs_parser.py index 2e353c6..8789c87 100644 --- a/ogn/aprs_parser.py +++ b/ogn/aprs_parser.py @@ -4,7 +4,10 @@ from .model import Beacon, AircraftBeacon, ReceiverBeacon from ogn.exceptions import AprsParseError -def parse_aprs(packet, reference_date=datetime.utcnow()): +def parse_aprs(packet, reference_date=None): + if reference_date is None: + reference_date = datetime.utcnow() + print(reference_date) if not isinstance(packet, str): raise TypeError("Expected packet to be str, got %s" % type(packet)) elif packet == "": diff --git a/ogn/model/beacon.py b/ogn/model/beacon.py index 4614bfe..fd00df5 100644 --- a/ogn/model/beacon.py +++ b/ogn/model/beacon.py @@ -30,7 +30,9 @@ class Beacon(AbstractConcreteBase, Base): altitude = Column(Integer) comment = None - def parse(self, text, reference_date=datetime.utcnow()): + def parse(self, text, reference_date=None): + if reference_date is None: + reference_date = datetime.utcnow() result = re_pattern_aprs.match(text) if result is None: raise AprsParseError(text)