forked from CGM_Public/pretix_original
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:
@@ -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"))
|
||||||
|
|||||||
57
src/tests/helpers/test_daterange.py
Normal file
57
src/tests/helpers/test_daterange.py
Normal 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"
|
||||||
Reference in New Issue
Block a user