Skip to content
Snippets Groups Projects
Commit b066e200 authored by Piotr Gawron's avatar Piotr Gawron
Browse files

properly handle invalid date strings

parent 91766b4c
No related branches found
No related tags found
1 merge request!231Resolve "auto-import of subject data"
......@@ -60,7 +60,12 @@ class CsvSubjectImportReader(SubjectImportReader):
def get_new_date_value(self, old_value, column_name, new_value):
# type: (datetime,unicode,unicode) -> datetime
if old_value is None or old_value == "":
return datetime.datetime.strptime(new_value, CSV_DATE_FORMAT)
try:
result = datetime.datetime.strptime(new_value, CSV_DATE_FORMAT)
except ValueError:
logger.warn("Invalid date: " + new_value)
result = old_value
return result
if new_value is None or new_value == "":
return old_value
logger.warn(
......
first_name,last_name,participant_id,date_born
Piotr,Gawron,Cov-000001,
Piotr,Gawron,Cov-000002,invalid
Piotr,Gawron,Cov-000003,2222-20-20
\ No newline at end of file
......@@ -27,3 +27,11 @@ class TestCsvReader(TestCase):
self.assertEqual(2020, study_subject.subject.date_born.year)
self.assertIsNotNone(study_subject.study)
def test_load_problematic_dates(self):
filename = get_resource_path('import_date_of_birth.csv')
study_subjects = CsvSubjectImportReader().load_data(filename)
self.assertEqual(3, len(study_subjects))
self.assertIsNone(study_subjects[0].subject.date_born)
self.assertIsNone(study_subjects[1].subject.date_born)
self.assertIsNone(study_subjects[2].subject.date_born)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment