fields: ignore invalid date values (#40771)

This commit is contained in:
Frédéric Péters 2020-03-17 07:49:18 +01:00
parent e956f92a8a
commit 18ace95181
3 changed files with 5 additions and 10 deletions

View File

@ -5658,13 +5658,6 @@ def test_backoffice_cards_import_data_from_csv(pub, studio):
resp = resp.forms[0].submit()
assert 'CSV file contains less columns than card fields.' in resp.text
resp.forms[0]['file'] = Upload('test.csv',
b'Table,Map,Test,Boolean,List,Date,File,Email,Long,List2\n'
b'x,map,data1,Yes,item1,invalid,,test@localhost,plop,1',
'text/csv')
resp = resp.forms[0].submit()
assert 'time data \'invalid\' does not match format' in resp.text
data = [b'Table,Map,Test,Boolean,List,Date,File,Email,Long,List2']
for i in range(1, 150):
data.append(b'table,48.81;2.37,data%d,%s,item%d,2020-01-%02d,filename-%d,test@localhost,plop,1' % (

View File

@ -553,5 +553,4 @@ def test_date():
assert fields.DateField().convert_value_from_str('2015-01-04') is not None
assert fields.DateField().convert_value_from_str('04/01/2015') is not None
assert fields.DateField().convert_value_from_str('') is None
with pytest.raises(ValueError, match="does not match format"):
fields.DateField().convert_value_from_str('not a date')
assert fields.DateField().convert_value_from_str('not a date') is None

View File

@ -1243,7 +1243,10 @@ class DateField(WidgetField):
def convert_value_from_str(self, value):
if not value:
return None
return get_as_datetime(value).timetuple()
try:
return get_as_datetime(value).timetuple()
except ValueError:
return None
def convert_value_to_str(self, value):
if value is None: