Skip to content

Commit a4ecccb

Browse files
authored
fix: pytz manipulation of dumptime
* fix: pytz manipulation of dumptime * fix: use pytz correctly. Add test for api/version dumpinfo time. * fix: actually use pytz correctly
1 parent 7ea3e18 commit a4ecccb

2 files changed

Lines changed: 14 additions & 1 deletion

File tree

ietf/api/tests.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
from ietf.person.models import PersonalApiKey
3131
from ietf.stats.models import MeetingRegistration
3232
from ietf.utils.mail import outbox, get_payload_text
33+
from ietf.utils.models import DumpInfo
3334
from ietf.utils.test_utils import TestCase, login_testing_unauthorized
3435

3536
OMITTED_APPS = (
@@ -418,10 +419,17 @@ def test_api_new_meeting_registration(self):
418419
self.assertEqual(set(missing_fields), set(drop_fields))
419420

420421
def test_api_version(self):
422+
DumpInfo.objects.create(date=timezone.datetime(2022,8,31,7,10,1,tzinfo=timezone.utc), host='testapi.example.com',tz='UTC')
421423
url = urlreverse('ietf.api.views.version')
422424
r = self.client.get(url)
423425
data = r.json()
424426
self.assertEqual(data['version'], ietf.__version__+ietf.__patch__)
427+
self.assertEqual(data['dumptime'], "2022-08-31 07:10:01 +0000")
428+
DumpInfo.objects.update(tz='PST8PDT')
429+
r = self.client.get(url)
430+
data = r.json()
431+
self.assertEqual(data['dumptime'], "2022-08-31 07:10:01 -0700")
432+
425433

426434
def test_api_appauth(self):
427435
url = urlreverse('ietf.api.views.app_auth')

ietf/api/views.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,8 +200,13 @@ def err(code, text):
200200

201201

202202
def version(request):
203+
dumpdate = None
203204
dumpinfo = DumpInfo.objects.order_by('-date').first()
204-
dumptime = pytz.timezone(dumpinfo.tz).localize(dumpinfo.date).strftime('%Y-%m-%d %H:%M:%S %z') if dumpinfo else None
205+
if dumpinfo:
206+
dumpdate = dumpinfo.date
207+
if dumpinfo.tz != "UTC":
208+
dumpdate = pytz.timezone(dumpinfo.tz).localize(dumpinfo.date.replace(tzinfo=None))
209+
dumptime = dumpdate.strftime('%Y-%m-%d %H:%M:%S %z') if dumpinfo else None
205210
return HttpResponse(
206211
json.dumps({
207212
'version': ietf.__version__+ietf.__patch__,

0 commit comments

Comments
 (0)