Fixed #30918 -- Made timesince()/timeuntil() respect custom time strings for future and the same datetimes.

This commit is contained in:
Hasan Ramezani 2019-10-28 11:17:29 +01:00 committed by Mariusz Felisiak
parent 711a7d4d50
commit 52cb419072
2 changed files with 15 additions and 2 deletions

View File

@ -69,7 +69,7 @@ def timesince(d, now=None, reversed=False, time_strings=None):
since = delta.days * 24 * 60 * 60 + delta.seconds
if since <= 0:
# d is in the future compared to now, stop processing.
return avoid_wrapping(gettext('0 minutes'))
return avoid_wrapping(time_strings['minute'] % 0)
for i, (seconds, name) in enumerate(TIMESINCE_CHUNKS):
count = since // seconds
if count != 0:

View File

@ -2,8 +2,9 @@ import datetime
import unittest
from django.test.utils import requires_tz_support
from django.utils import timezone
from django.utils import timezone, translation
from django.utils.timesince import timesince, timeuntil
from django.utils.translation import npgettext_lazy
class TimesinceTests(unittest.TestCase):
@ -74,6 +75,18 @@ class TimesinceTests(unittest.TestCase):
)
self.assertEqual(timesince(self.t, self.t - 4 * self.oneday - 5 * self.oneminute), '0\xa0minutes')
def test_second_before_equal_first_humanize_time_strings(self):
time_strings = {
'minute': npgettext_lazy('naturaltime-future', '%d minute', '%d minutes'),
}
with translation.override('cs'):
for now in [self.t, self.t - self.onemicrosecond, self.t - self.oneday]:
with self.subTest(now):
self.assertEqual(
timesince(self.t, now, time_strings=time_strings),
'0\xa0minut',
)
@requires_tz_support
def test_different_timezones(self):
""" When using two different timezones. """