summaryrefslogtreecommitdiff
path: root/tests/utils_tests
diff options
context:
space:
mode:
authorMatthew Schinckel <matt@schinckel.net>2017-04-13 11:33:35 +0930
committerTim Graham <timograham@gmail.com>2017-07-03 19:53:19 -0400
commit493f7e9e1ed7d68df102de6c5926a55521b145c9 (patch)
tree94931916eb01113ac1398b3b083f5e431f052f8e /tests/utils_tests
parent684c0a35f620a3754639b4cbadad16b7560b7c41 (diff)
Fixed #28076 -- Added support for PostgreSQL's interval format to parse_duration().
Diffstat (limited to 'tests/utils_tests')
-rw-r--r--tests/utils_tests/test_dateparse.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/tests/utils_tests/test_dateparse.py b/tests/utils_tests/test_dateparse.py
index 7127e812ae..8d464278ce 100644
--- a/tests/utils_tests/test_dateparse.py
+++ b/tests/utils_tests/test_dateparse.py
@@ -65,6 +65,21 @@ class DurationParseTests(unittest.TestCase):
with self.subTest(delta=delta):
self.assertEqual(parse_duration(format(delta)), delta)
+ def test_parse_postgresql_format(self):
+ test_values = (
+ ('1 day', timedelta(1)),
+ ('1 day 0:00:01', timedelta(days=1, seconds=1)),
+ ('1 day -0:00:01', timedelta(days=1, seconds=-1)),
+ ('-1 day -0:00:01', timedelta(days=-1, seconds=-1)),
+ ('-1 day +0:00:01', timedelta(days=-1, seconds=1)),
+ ('4 days 0:15:30.1', timedelta(days=4, minutes=15, seconds=30, milliseconds=100)),
+ ('4 days 0:15:30.0001', timedelta(days=4, minutes=15, seconds=30, microseconds=100)),
+ ('-4 days -15:00:30', timedelta(days=-4, hours=-15, seconds=-30)),
+ )
+ for source, expected in test_values:
+ with self.subTest(source=source):
+ self.assertEqual(parse_duration(source), expected)
+
def test_seconds(self):
self.assertEqual(parse_duration('30'), timedelta(seconds=30))