mirror of
https://github.com/sissbruecker/linkding
synced 2025-02-16 12:28:23 +00:00
Fix relative date formatting (#107)
This commit is contained in:
parent
847f9644f4
commit
90f62d3482
2 changed files with 25 additions and 2 deletions
|
@ -1,3 +1,5 @@
|
|||
from unittest.mock import patch
|
||||
|
||||
from django.test import TestCase
|
||||
from django.utils import timezone
|
||||
|
||||
|
@ -23,6 +25,14 @@ class UtilsTestCase(TestCase):
|
|||
result = humanize_absolute_date(test_case[0], test_case[1])
|
||||
self.assertEqual(test_case[2], result)
|
||||
|
||||
def test_humanize_absolute_date_should_use_current_date_as_default(self):
|
||||
with patch.object(timezone, 'now', return_value=timezone.datetime(2021, 1, 1)):
|
||||
self.assertEqual(humanize_absolute_date(timezone.datetime(2021, 1, 1)), 'Today')
|
||||
|
||||
# Regression: Test that subsequent calls use current date instead of cached date (#107)
|
||||
with patch.object(timezone, 'now', return_value=timezone.datetime(2021, 1, 13)):
|
||||
self.assertEqual(humanize_absolute_date(timezone.datetime(2021, 1, 13)), 'Today')
|
||||
|
||||
def test_humanize_relative_date(self):
|
||||
test_cases = [
|
||||
(timezone.datetime(2021, 1, 1), timezone.datetime(2022, 1, 1), '1 year ago'),
|
||||
|
@ -45,3 +55,11 @@ class UtilsTestCase(TestCase):
|
|||
for test_case in test_cases:
|
||||
result = humanize_relative_date(test_case[0], test_case[1])
|
||||
self.assertEqual(test_case[2], result)
|
||||
|
||||
def test_humanize_relative_date_should_use_current_date_as_default(self):
|
||||
with patch.object(timezone, 'now', return_value=timezone.datetime(2021, 1, 1)):
|
||||
self.assertEqual(humanize_relative_date(timezone.datetime(2021, 1, 1)), 'Today')
|
||||
|
||||
# Regression: Test that subsequent calls use current date instead of cached date (#107)
|
||||
with patch.object(timezone, 'now', return_value=timezone.datetime(2021, 1, 13)):
|
||||
self.assertEqual(humanize_relative_date(timezone.datetime(2021, 1, 13)), 'Today')
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
from datetime import datetime
|
||||
from typing import Optional
|
||||
|
||||
from dateutil.relativedelta import relativedelta
|
||||
from django.template.defaultfilters import pluralize
|
||||
|
@ -20,7 +21,9 @@ weekday_names = {
|
|||
}
|
||||
|
||||
|
||||
def humanize_absolute_date(value: datetime, now=timezone.now()):
|
||||
def humanize_absolute_date(value: datetime, now: Optional[datetime] = None):
|
||||
if not now:
|
||||
now = timezone.now()
|
||||
delta = relativedelta(now, value)
|
||||
yesterday = now - relativedelta(days=1)
|
||||
|
||||
|
@ -36,7 +39,9 @@ def humanize_absolute_date(value: datetime, now=timezone.now()):
|
|||
return weekday_names[value.isoweekday()]
|
||||
|
||||
|
||||
def humanize_relative_date(value: datetime, now: datetime = timezone.now()):
|
||||
def humanize_relative_date(value: datetime, now: Optional[datetime] = None):
|
||||
if not now:
|
||||
now = timezone.now()
|
||||
delta = relativedelta(now, value)
|
||||
|
||||
if delta.years > 0:
|
||||
|
|
Loading…
Add table
Reference in a new issue