Skip to content

Commit

Permalink
WIP on #669.
Browse files Browse the repository at this point in the history
  • Loading branch information
mjordan committed Aug 16, 2023
1 parent 6a31ff3 commit d66ad5f
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 4 deletions.
16 changes: 14 additions & 2 deletions tests/unit_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,7 @@ def test_validate_bad_date_string_values(self):
self.assertFalse(res)


class TestValideEdtfDate(unittest.TestCase):
class TestValidEdtfDate(unittest.TestCase):

def test_validate_good_edtf_values(self):
good_values = ['190X',
Expand All @@ -329,7 +329,19 @@ def test_validate_good_edtf_values(self):
'2001-23',
'2001-24',
'2001-31',
'193X/196X'
'193X/196X',
'198X?',
'19XX?',
'2XXX?',
'198X~',
'19XX~',
'2XXX~',
'198X%',
'19XX%',
'2XXX%',
'XXXX?',
'XXXX~',
'XXXX%'
]
for good_value in good_values:
res = workbench_utils.validate_edtf_date(good_value)
Expand Down
43 changes: 41 additions & 2 deletions workbench_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -4920,8 +4920,47 @@ def validate_edtf_fields(config, field_definitions, csv_data):


def validate_edtf_date(date):
valid = edtf_validate.valid_edtf.is_valid(date.strip())
return valid
date = date.strip()
# nnnX?
if re.match(r'^[1-2]\d\dX\?', date):
return True
# nnXX?
elif re.match(r'^[1-2]\dXX\?', date):
return True
# nXXX?
elif re.match(r'^[1-2]XXX\?', date):
return True
# nXXX~
elif re.match(r'^[1-2]XXX\~', date):
return True
# nnXX~
elif re.match(r'^[1-2]\dXX\~', date):
return True
# nnnX~
elif re.match(r'^[1-2]\d\dX\~', date):
return True
# nXXX%
elif re.match(r'^[1-2]XXX\%', date):
return True
# nnXX%
elif re.match(r'^[1-2]\dXX\%', date):
return True
# nnnX%
elif re.match(r'^[1-2]\d\dX\%', date):
return True
# XXXX?
elif re.match(r'^XXXX\?', date):
return True
# XXXX~
elif re.match(r'^XXXX\~', date):
return True
# XXXX%
elif re.match(r'^XXXX\%', date):
return True
elif edtf_validate.valid_edtf.is_valid(date):
return True
else:
return False


def validate_url_aliases(config, csv_data):
Expand Down

0 comments on commit d66ad5f

Please sign in to comment.