summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavanum Srinivas <davanum@gmail.com>2013-10-18 15:24:56 -0400
committerDavanum Srinivas <davanum@gmail.com>2013-10-18 15:24:56 -0400
commitc8b8ad4df84ac6f78557977cd6b6e5af7a21bfad (patch)
treedd9f504f9c6eca6b19d8002f5339fbf584a4fcb6
parent292b24a47d8e417a81bc105eec0dcd89dda1f716 (diff)
downloadpyiso8601-c8b8ad4df84ac6f78557977cd6b6e5af7a21bfad.tar.gz
Fix for regression when parsing microseconds
-rw-r--r--iso8601/iso8601.py2
-rw-r--r--iso8601/test_iso8601.py1
2 files changed, 2 insertions, 1 deletions
diff --git a/iso8601/iso8601.py b/iso8601/iso8601.py
index 31015bd..35dc31f 100644
--- a/iso8601/iso8601.py
+++ b/iso8601/iso8601.py
@@ -167,7 +167,7 @@ def parse_date(datestring, default_timezone=UTC):
tz = parse_timezone(groups, default_timezone=default_timezone)
- groups["second_fraction"] = int(Decimal("0.%s" % to_int(groups, "second_fraction", default_to_zero=True)) * Decimal("1000000.0"))
+ groups["second_fraction"] = int(Decimal("0.%s" % (groups["second_fraction"] or 0)) * Decimal("1000000.0"))
try:
return datetime(
diff --git a/iso8601/test_iso8601.py b/iso8601/test_iso8601.py
index 5ec4e69..56b4497 100644
--- a/iso8601/test_iso8601.py
+++ b/iso8601/test_iso8601.py
@@ -67,6 +67,7 @@ def test_parse_invalid_date(invalid_date):
("2010-07-20 15:25:52.520701+00:00", datetime.datetime(2010, 7, 20, 15, 25, 52, 520701, iso8601.FixedOffset(0, 0, "+00:00")), None), # https://code.google.com/p/pyiso8601/issues/detail?id=17
("2010-06-12", datetime.datetime(2010, 6, 12, tzinfo=iso8601.UTC), None), # https://code.google.com/p/pyiso8601/issues/detail?id=16
("1985-04-12T23:20:50.52-05:30", datetime.datetime(1985, 4, 12, 23, 20, 50, 520000, iso8601.FixedOffset(-5, -30, "-05:30")), "1985-04-12T23:20:50.520000-05:30"), # https://bitbucket.org/micktwomey/pyiso8601/issue/8/015-parses-negative-timezones-incorrectly
+ ("1997-08-29T06:14:00.000123Z", datetime.datetime(1997, 8, 29, 6, 14, 0, 123, iso8601.UTC), None), # https://bitbucket.org/micktwomey/pyiso8601/issue/9/regression-parsing-microseconds
])
def test_parse_valid_date(valid_date, expected_datetime, isoformat):
parsed = iso8601.parse_date(valid_date)