Make Fleet-up datetimes timezone aware (#856)

Additionally fix logger depreciation warnings
This commit is contained in:
Basraah 2017-09-02 05:41:45 +10:00 committed by Adarnof
parent 8028660a8f
commit 049c1c66aa
2 changed files with 21 additions and 14 deletions

View File

@ -1,6 +1,7 @@
from __future__ import unicode_literals
from django.conf import settings
from django.core.cache import cache
from django.utils import timezone
from datetime import datetime
import logging
@ -17,6 +18,8 @@ class FleetUpManager:
GROUP_ID = settings.FLEETUP_GROUP_ID
BASE_URL = "http://api.fleet-up.com/Api.svc/{}/{}/{}".format(APP_KEY, USER_ID, API_ID)
TZ = timezone.utc
def __init__(self):
pass
@ -60,7 +63,7 @@ class FleetUpManager:
cache.set(cache_key, json, cls._cache_until_seconds(json['CachedUntilUTC']))
return json
except requests.exceptions.ConnectionError:
logger.warn("Can't connect to Fleet-Up API, is it offline?!")
logger.warning("Can't connect to Fleet-Up API, is it offline?!")
except requests.HTTPError:
logger.exception("Error accessing Fleetup API")
return None
@ -87,8 +90,10 @@ class FleetUpManager:
if foperations is None:
return None
return {row["StartString"]: {"subject": row["Subject"],
"start": datetime.strptime(row["StartString"], "%Y-%m-%d %H:%M:%S"),
"end": datetime.strptime(row["EndString"], "%Y-%m-%d %H:%M:%S"),
"start": timezone.make_aware(
datetime.strptime(row["StartString"], "%Y-%m-%d %H:%M:%S"), cls.TZ),
"end": timezone.make_aware(
datetime.strptime(row["EndString"], "%Y-%m-%d %H:%M:%S"), cls.TZ),
"operation_id": row["OperationId"],
"location": row["Location"],
"location_info": row["LocationInfo"],
@ -109,9 +114,9 @@ class FleetUpManager:
"owner": row["Owner"],
"type": row["Type"],
"timer_type": row["TimerType"],
"expires": (datetime.strptime(row["ExpiresString"], "%Y-%m-%d %H:%M:%S")),
"expires": timezone.make_aware(
datetime.strptime(row["ExpiresString"], "%Y-%m-%d %H:%M:%S"), cls.TZ),
"notes": row["Notes"]} for row in ftimers["Data"]}
return {}
@classmethod
def get_fleetup_doctrines(cls):
@ -143,9 +148,10 @@ class FleetUpManager:
"estimated": row["EstPrice"],
"faction": row["Faction"],
"categories": row["Categories"],
"last_update": (
datetime.strptime(row["LastUpdatedString"], "%Y-%m-%d %H:%M:%S"))} for row in
ffittings["Data"]}
"last_update":
timezone.make_aware(
datetime.strptime(row["LastUpdatedString"], "%Y-%m-%d %H:%M:%S"), cls.TZ)}
for row in ffittings["Data"]}
@classmethod
def get_fleetup_fitting(cls, fittingnumber):
@ -156,7 +162,7 @@ class FleetUpManager:
return None
return {"fitting_data": ffitting["Data"]}
except KeyError:
logger.warn("Failed to retrieve fleetup fitting number %s" % fittingnumber)
logger.warning("Failed to retrieve fleetup fitting number %s" % fittingnumber)
return {"fitting_data": {}}
@classmethod
@ -180,5 +186,5 @@ class FleetUpManager:
return None
return {"fitting_eft": ffittingeft["Data"]["FittingData"]}
except KeyError:
logger.warn("Fleetup fitting eft not found for fitting number %s" % fittingnumber)
logger.warning("Fleetup fitting eft not found for fitting number %s" % fittingnumber)
return {"fitting_eft": {}}

View File

@ -12,6 +12,7 @@ import json
import datetime
from django.test import TestCase
from django.utils.timezone import make_aware, utc
from fleetup.managers import FleetUpManager
@ -148,8 +149,8 @@ class FleetupManagerTestCase(TestCase):
expected_result = {
'2017-05-06 11:11:11': {
'subject': 'test_operation',
'start': datetime.datetime(2017, 5, 6, 11, 11, 11),
'end': datetime.datetime(2017, 5, 6, 12, 12, 12),
'start': make_aware(datetime.datetime(2017, 5, 6, 11, 11, 11), utc),
'end': make_aware(datetime.datetime(2017, 5, 6, 12, 12, 12), utc),
'operation_id': 1234,
'location': 'Jita',
'location_info': '4-4',
@ -208,7 +209,7 @@ class FleetupManagerTestCase(TestCase):
FleetUpManager.GROUP_ID)
expected_result = {
'2017-05-06 11:11:11': {
'expires': datetime.datetime(2017, 5, 6, 11, 11, 11),
'expires': make_aware(datetime.datetime(2017, 5, 6, 11, 11, 11), utc),
'solarsystem': 'Jita',
'planet': '4',
'moon': '4',
@ -361,7 +362,7 @@ class FleetupManagerTestCase(TestCase):
'estimated': 500000000,
'faction': 'Amarr',
'categories': ["Armor", "Laser"],
'last_update': datetime.datetime(2017, 5, 6, 11, 11, 11)
'last_update': make_aware(datetime.datetime(2017, 5, 6, 11, 11, 11), utc)
}
}
self.assertDictEqual(expected_result, result)