templatetags: make parse_datetime/date/time stronger (#22067)
This commit is contained in:
parent
c591e71555
commit
0bbe282874
|
@ -165,21 +165,21 @@ def strptime(date_string, date_format):
|
|||
def parse_date(date_string):
|
||||
try:
|
||||
return dateparse.parse_date(date_string)
|
||||
except ValueError:
|
||||
except (ValueError, TypeError):
|
||||
return None
|
||||
|
||||
@register.filter
|
||||
def parse_datetime(date_string):
|
||||
try:
|
||||
return dateparse.parse_datetime(date_string)
|
||||
except ValueError:
|
||||
except (ValueError, TypeError):
|
||||
return None
|
||||
|
||||
@register.filter
|
||||
def parse_time(time_string):
|
||||
try:
|
||||
return dateparse.parse_time(time_string)
|
||||
except ValueError:
|
||||
except (ValueError, TypeError):
|
||||
return None
|
||||
|
||||
@register.filter
|
||||
|
|
|
@ -12,6 +12,8 @@ def test_strptime():
|
|||
assert t.render(Context({'someday': '2015-04-15'})) == '2015'
|
||||
assert t.render(Context({'someday': 'foobar'})) == ''
|
||||
assert t.render(Context({'someday': None})) == ''
|
||||
assert t.render(Context({'someday': {'foo': 'bar'}})) == ''
|
||||
assert t.render(Context({'someday': ['foo', 'bar']})) == ''
|
||||
|
||||
def test_parse_datetime():
|
||||
t = Template('{% load combo %}{{ someday|parse_datetime|date:"Y m d H i s T" }}')
|
||||
|
@ -27,6 +29,9 @@ def test_parse_datetime():
|
|||
assert t.render(Context({'someday': '2015-04-15T13'})) == ''
|
||||
assert t.render(Context({'someday': 'foobar'})) == ''
|
||||
assert t.render(Context({'someday': ''})) == ''
|
||||
assert t.render(Context({'someday': None})) == ''
|
||||
assert t.render(Context({'someday': {'foo': 'bar'}})) == ''
|
||||
assert t.render(Context({'someday': ['foo', 'bar']})) == ''
|
||||
|
||||
t = Template('{% load combo %}{{ someday|parse_date|date:"Y m d" }}')
|
||||
expected = '2015 04 15'
|
||||
|
@ -34,6 +39,9 @@ def test_parse_datetime():
|
|||
assert t.render(Context({'someday': '2015-04-15T13:11:12Z'})) == ''
|
||||
assert t.render(Context({'someday': 'foobar'})) == ''
|
||||
assert t.render(Context({'someday': ''})) == ''
|
||||
assert t.render(Context({'someday': None})) == ''
|
||||
assert t.render(Context({'someday': {'foo': 'bar'}})) == ''
|
||||
assert t.render(Context({'someday': ['foo', 'bar']})) == ''
|
||||
|
||||
t = Template('{% load combo %}{{ someday|parse_time|date:"H i s" }}')
|
||||
expected = '13 11 12'
|
||||
|
@ -48,6 +56,9 @@ def test_parse_datetime():
|
|||
assert t.render(Context({'someday': '13'})) == ''
|
||||
assert t.render(Context({'someday': 'foobar'})) == ''
|
||||
assert t.render(Context({'someday': ''})) == ''
|
||||
assert t.render(Context({'someday': None})) == ''
|
||||
assert t.render(Context({'someday': {'foo': 'bar'}})) == ''
|
||||
assert t.render(Context({'someday': ['foo', 'bar']})) == ''
|
||||
|
||||
def test_has_role():
|
||||
t = Template('{% load combo %}{{ request.user|has_role:"Role1" }}')
|
||||
|
|
Loading…
Reference in New Issue