summaryrefslogtreecommitdiff
path: root/tests/utils_tests
diff options
context:
space:
mode:
authorTim Park <timpark0807@gmail.com>2020-07-02 23:01:45 -0700
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2020-07-16 09:44:28 +0200
commit8fa9a6d29efe2622872b4788190ea7c1bcb92019 (patch)
tree56525b346db10e2d1297923e881a4ece91e7651e /tests/utils_tests
parentbde33bdd51b58a63d3e50fab687815968383b86d (diff)
Fixed #31623 -- Allowed specifying number of adjacent time units in timesince()/timeuntil().
Diffstat (limited to 'tests/utils_tests')
-rw-r--r--tests/utils_tests/test_timesince.py32
1 files changed, 30 insertions, 2 deletions
diff --git a/tests/utils_tests/test_timesince.py b/tests/utils_tests/test_timesince.py
index e373b83f43..d30bf00ae9 100644
--- a/tests/utils_tests/test_timesince.py
+++ b/tests/utils_tests/test_timesince.py
@@ -1,13 +1,13 @@
import datetime
-import unittest
+from django.test import TestCase
from django.test.utils import requires_tz_support
from django.utils import timezone, translation
from django.utils.timesince import timesince, timeuntil
from django.utils.translation import npgettext_lazy
-class TimesinceTests(unittest.TestCase):
+class TimesinceTests(TestCase):
def setUp(self):
self.t = datetime.datetime(2007, 8, 14, 13, 46, 0)
@@ -140,3 +140,31 @@ class TimesinceTests(unittest.TestCase):
t = datetime.datetime(1007, 8, 14, 13, 46, 0)
self.assertEqual(timesince(t, self.t), '1000\xa0years')
self.assertEqual(timeuntil(self.t, t), '1000\xa0years')
+
+ def test_depth(self):
+ t = self.t + self.oneyear + self.onemonth + self.oneweek + self.oneday + self.onehour
+ tests = [
+ (t, 1, '1\xa0year'),
+ (t, 2, '1\xa0year, 1\xa0month'),
+ (t, 3, '1\xa0year, 1\xa0month, 1\xa0week'),
+ (t, 4, '1\xa0year, 1\xa0month, 1\xa0week, 1\xa0day'),
+ (t, 5, '1\xa0year, 1\xa0month, 1\xa0week, 1\xa0day, 1\xa0hour'),
+ (t, 6, '1\xa0year, 1\xa0month, 1\xa0week, 1\xa0day, 1\xa0hour'),
+ (self.t + self.onehour, 5, '1\xa0hour'),
+ (self.t + (4 * self.oneminute), 3, '4\xa0minutes'),
+ (self.t + self.onehour + self.oneminute, 1, '1\xa0hour'),
+ (self.t + self.oneday + self.onehour, 1, '1\xa0day'),
+ (self.t + self.oneweek + self.oneday, 1, '1\xa0week'),
+ (self.t + self.onemonth + self.oneweek, 1, '1\xa0month'),
+ (self.t + self.oneyear + self.onemonth, 1, '1\xa0year'),
+ (self.t + self.oneyear + self.oneweek + self.oneday, 3, '1\xa0year'),
+ ]
+ for value, depth, expected in tests:
+ with self.subTest():
+ self.assertEqual(timesince(self.t, value, depth=depth), expected)
+ self.assertEqual(timeuntil(value, self.t, depth=depth), expected)
+
+ def test_depth_invalid(self):
+ msg = 'depth must be greater than 0.'
+ with self.assertRaisesMessage(ValueError, msg):
+ timesince(self.t, self.t, depth=0)