feat: Fix age display and test
This commit is contained in:
@@ -17,10 +17,10 @@ def pluralize(number, letter="e"):
|
|||||||
|
|
||||||
|
|
||||||
def age_as_hr_string(age: datetime.timedelta) -> str:
|
def age_as_hr_string(age: datetime.timedelta) -> str:
|
||||||
days = age.days
|
days = int(age.days)
|
||||||
weeks = age.days / 7
|
weeks = int(age.days / 7)
|
||||||
months = age.days / 30
|
months = int(age.days / 30)
|
||||||
years = age.days / 365
|
years = int(age.days / 365)
|
||||||
if years >= 1:
|
if years >= 1:
|
||||||
months = months - 12 * years
|
months = months - 12 * years
|
||||||
return f'{years:.0f} Jahr{pluralize(years)} und {months:.0f} Monat{pluralize(months)}'
|
return f'{years:.0f} Jahr{pluralize(years)} und {months:.0f} Monat{pluralize(months)}'
|
||||||
@@ -52,9 +52,9 @@ def time_since_as_hr_string(age: datetime.timedelta) -> str:
|
|||||||
elif weeks >= 3:
|
elif weeks >= 3:
|
||||||
text = _("vor %(weeks)d Wochen") % {"weeks": weeks}
|
text = _("vor %(weeks)d Wochen") % {"weeks": weeks}
|
||||||
elif days >= 1:
|
elif days >= 1:
|
||||||
text = ngettext("vor einem Tag","vor %(count)d Tagen", days,) % {"count": days,}
|
text = ngettext("vor einem Tag", "vor %(count)d Tagen", days, ) % {"count": days, }
|
||||||
elif hours >= 1:
|
elif hours >= 1:
|
||||||
text = ngettext("vor einer Stunde", "vor %(count)d Stunden", hours,) % {"count": hours,}
|
text = ngettext("vor einer Stunde", "vor %(count)d Stunden", hours, ) % {"count": hours, }
|
||||||
elif minutes >= 1:
|
elif minutes >= 1:
|
||||||
text = ngettext("vor einer Minute", "vor %(count)d Minuten", minutes, ) % {"count": minutes, }
|
text = ngettext("vor einer Minute", "vor %(count)d Minuten", minutes, ) % {"count": minutes, }
|
||||||
else:
|
else:
|
||||||
|
15
src/tests/test_misc.py
Normal file
15
src/tests/test_misc.py
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
import datetime
|
||||||
|
|
||||||
|
from fellchensammlung.tools.misc import age_as_hr_string
|
||||||
|
from django.test import TestCase
|
||||||
|
|
||||||
|
|
||||||
|
class AgeTest(TestCase):
|
||||||
|
|
||||||
|
def test_age_as_hr_string(self):
|
||||||
|
self.assertEqual("7 Wochen", age_as_hr_string(datetime.timedelta(days=50)))
|
||||||
|
self.assertEqual("3 Monate", age_as_hr_string(datetime.timedelta(days=100)))
|
||||||
|
self.assertEqual("10 Monate", age_as_hr_string(datetime.timedelta(days=300)))
|
||||||
|
self.assertEqual("1 Jahr und 4 Monate", age_as_hr_string(datetime.timedelta(days=500)))
|
||||||
|
self.assertEqual("1 Jahr und 11 Monate", age_as_hr_string(datetime.timedelta(days=700)))
|
||||||
|
self.assertEqual("2 Jahre und 6 Monate", age_as_hr_string(datetime.timedelta(days=900)))
|
Reference in New Issue
Block a user