From 59b1899d7957b1f0c7a7425a3d34934524f9898b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20P=C3=B6hn?= Date: Fri, 30 Sep 2022 14:18:31 +0200 Subject: [PATCH] scanner: switch form iso8601 to unix timestamp for python3.5 support --- fdroidserver/scanner.py | 12 ++++++------ tests/scanner.TestCase | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/fdroidserver/scanner.py b/fdroidserver/scanner.py index 797d694e..8eb94a8c 100644 --- a/fdroidserver/scanner.py +++ b/fdroidserver/scanner.py @@ -170,7 +170,7 @@ class SignatureDataController: last_updated = self.data.get("last_updated", None) if last_updated: try: - last_updated = datetime.fromisoformat(last_updated) + last_updated = datetime.fromtimestamp(last_updated) except ValueError as e: raise SignatureDataMalformedException() from e except TypeError as e: @@ -247,7 +247,7 @@ class SignatureDataController: logging.debug(_("downloading '{}'").format(self.url)) with urllib.request.urlopen(self.url) as f: self.set_data(json.load(f)) - self.data['last_updated'] = scanner._datetime_now().isoformat() + self.data['last_updated'] = scanner._datetime_now().timestamp() class ExodusSignatureDataController(SignatureDataController): @@ -260,8 +260,8 @@ class ExodusSignatureDataController(SignatureDataController): data = { "signatures": {}, - "timestamp": scanner._datetime_now().isoformat(), - "last_updated": scanner._datetime_now().isoformat(), + "timestamp": scanner._datetime_now().timestamp(), + "last_updated": scanner._datetime_now().timestamp(), "version": SCANNER_CACHE_VERSION, } @@ -1104,7 +1104,7 @@ SUSS_DEFAULT = '''{ "license": "NonFree" } }, - "timestamp": "2022-09-29T19:35:04.875586+00:00", + "timestamp": 1664480104.875586, "version": 1, - "last_updated": "2022-09-30T05:13:18.411707+02:00" + "last_updated": 1664480104.875586 }''' diff --git a/tests/scanner.TestCase b/tests/scanner.TestCase index a5ad3779..e674197f 100755 --- a/tests/scanner.TestCase +++ b/tests/scanner.TestCase @@ -508,19 +508,19 @@ class Test_SignatureDataController(unittest.TestCase): # check_last_updated def test_check_last_updated_ok(self): sdc = fdroidserver.scanner.SignatureDataController('nnn', 'fff.yml', 'https://example.com/test.json') - sdc.data['last_updated'] = datetime.utcnow().isoformat() + sdc.data['last_updated'] = datetime.utcnow().timestamp() sdc.check_last_updated() def test_check_last_updated_exception_cache_outdated(self): sdc = fdroidserver.scanner.SignatureDataController('nnn', 'fff.yml', 'https://example.com/test.json') sdc.cache_duration = timedelta(days=7) - sdc.data['last_updated'] = (datetime.utcnow() - timedelta(days=30)).isoformat() + sdc.data['last_updated'] = (datetime.utcnow() - timedelta(days=30)).timestamp() with self.assertRaises(fdroidserver.scanner.SignatureDataOutdatedException): sdc.check_last_updated() def test_check_last_updated_exception_not_string(self): sdc = fdroidserver.scanner.SignatureDataController('nnn', 'fff.yml', 'https://example.com/test.json') - sdc.data['last_updated'] = 12345 + sdc.data['last_updated'] = 'sepp' with self.assertRaises(fdroidserver.scanner.SignatureDataMalformedException): sdc.check_last_updated()