Fixed bugs and added test for date range rendering (#488)

* fixed bug for same dates, added unit check for daterange

* fixed local language override in unit test
This commit is contained in:
scabux
2017-05-07 10:40:36 +02:00
committed by Raphael Michel
parent d6943bb1dd
commit 1b2895b0ca
2 changed files with 63 additions and 2 deletions

View File

@@ -6,12 +6,16 @@ def daterange(df, dt):
lng = get_language() lng = get_language()
if lng.startswith("de"): if lng.startswith("de"):
if df.year == dt.year and df.month == dt.month: if df.year == dt.year and df.month == dt.month and df.day == dt.day:
return "{}".format(_date(df, "j. F Y"))
elif df.year == dt.year and df.month == dt.month:
return "{}.{}".format(_date(df, "j"), _date(dt, "j. F Y")) return "{}.{}".format(_date(df, "j"), _date(dt, "j. F Y"))
elif df.year == dt.year: elif df.year == dt.year:
return "{} {}".format(_date(df, "j. F"), _date(dt, "j. F Y")) return "{} {}".format(_date(df, "j. F"), _date(dt, "j. F Y"))
elif lng.startswith("en"): elif lng.startswith("en"):
if df.year == dt.year and df.month == dt.month: if df.year == dt.year and df.month == dt.month and df.day == dt.day:
return "{}".format(_date(df, "N jS, Y"))
elif df.year == dt.year and df.month == dt.month:
return "{} {}".format(_date(df, "N jS"), _date(dt, "jS, Y")) return "{} {}".format(_date(df, "N jS"), _date(dt, "jS, Y"))
elif df.year == dt.year: elif df.year == dt.year:
return "{} {}".format(_date(df, "N jS"), _date(dt, "N jS, Y")) return "{} {}".format(_date(df, "N jS"), _date(dt, "N jS, Y"))

View File

@@ -0,0 +1,57 @@
from datetime import date
from django.utils import translation
from pretix.helpers.daterange import daterange
def test_same_day_german():
with translation.override('de'):
df = date(2003, 2, 1)
assert daterange(df, df) == "1. Februar 2003"
def test_same_day_english():
with translation.override('en'):
df = date(2003, 2, 1)
assert daterange(df, df) == "Feb. 1st, 2003"
def test_same_month_german():
with translation.override('de'):
df = date(2003, 2, 1)
dt = date(2003, 2, 3)
assert daterange(df, dt) == "1.3. Februar 2003"
def test_same_month_english():
with translation.override('en'):
df = date(2003, 2, 1)
dt = date(2003, 2, 3)
assert daterange(df, dt) == "Feb. 1st 3rd, 2003"
def test_same_year_german():
with translation.override('de'):
df = date(2003, 2, 1)
dt = date(2003, 4, 3)
assert daterange(df, dt) == "1. Februar 3. April 2003"
def test_same_year_english():
with translation.override('en'):
df = date(2003, 2, 1)
dt = date(2003, 4, 3)
assert daterange(df, dt) == "Feb. 1st April 3rd, 2003"
def test_different_dates_german():
with translation.override('de'):
df = date(2003, 2, 1)
dt = date(2005, 4, 3)
assert daterange(df, dt) == "1. Februar 2003 3. April 2005"
def test_different_dates_english():
with translation.override('en'):
df = date(2003, 2, 1)
dt = date(2005, 4, 3)
assert daterange(df, dt) == "Feb. 1, 2003 April 3, 2005"