Skip to content

Commit

Permalink
get_aware_datetime: adjust use of make_aware to include timezone
Browse files Browse the repository at this point in the history
  • Loading branch information
julen committed Sep 8, 2016
1 parent 9759425 commit 37c9d31
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 8 deletions.
9 changes: 6 additions & 3 deletions pootle/apps/pootle_app/management/commands/contributors.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,18 @@
from . import PootleCommand


def get_aware_datetime(dt_string):
def get_aware_datetime(dt_string, tz=None):
"""Return an aware datetime parsed from a datetime or date string.
Datetime or date string can be any format parsable by dateutil.parser.parse
:param dt_string: datetime or date string can be any format parsable by
dateutil.parser.parse.
:param tz: timezone in which `dt_string` should be
considered.
"""
if not dt_string:
return None
try:
return make_aware(parse_datetime(dt_string))
return make_aware(parse_datetime(dt_string), tz=tz)
except ValueError:
raise ArgumentTypeError('The provided datetime/date string is not '
'valid: "%s"' % dt_string)
Expand Down
15 changes: 10 additions & 5 deletions tests/commands/contributors.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
from email.utils import formataddr

import pytest
import pytz

from django.core.management import call_command
from django.core.management.base import CommandError
Expand All @@ -23,17 +24,21 @@

def test_contributors_get_aware_datetime():
"""Get an aware datetime from a valid string."""
iso_datetime = make_aware(parse_datetime("2016-01-24T23:15:22+0000"))
iso_datetime = make_aware(parse_datetime("2016-01-24T23:15:22+0000"),
tz=pytz.utc)

# Test ISO 8601 datetime.
assert iso_datetime == get_aware_datetime("2016-01-24T23:15:22+0000")
assert iso_datetime == get_aware_datetime("2016-01-24T23:15:22+0000",
tz=pytz.utc)

# Test git-like datetime.
assert iso_datetime == get_aware_datetime("2016-01-24 23:15:22 +0000")
assert iso_datetime == get_aware_datetime("2016-01-24 23:15:22 +0000",
tz=pytz.utc)

# Test just an ISO 8601 date.
iso_datetime = make_aware(parse_datetime("2016-01-24T00:00:00+0000"))
assert iso_datetime == get_aware_datetime("2016-01-24")
iso_datetime = make_aware(parse_datetime("2016-01-24T00:00:00+0000"),
tz=pytz.utc)
assert iso_datetime == get_aware_datetime("2016-01-24", tz=pytz.utc)

# Test None.
assert get_aware_datetime(None) is None
Expand Down

0 comments on commit 37c9d31

Please sign in to comment.