Skip to content

Commit

Permalink
Add more tests for incomplete and ambiguous dates
Browse files Browse the repository at this point in the history
Cleans up unit tests for the `is_date_ambiguous` function, collecting
them into a single function with clearer documentation. Also, adds tests
for valid incomplete date strings and fixes a bug in the
`is_date_ambiguous` function that was revealed by these new tests.
  • Loading branch information
huddlej committed Nov 12, 2020
1 parent 3fd75d8 commit ca1b9c5
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 5 deletions.
2 changes: 1 addition & 1 deletion augur/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ def is_date_ambiguous(date, ambiguous_by="all"):
year, month = date_components
day = "XX"
else:
year = date_components
year = date_components[0]
month = "XX"
day = "XX"

Expand Down
15 changes: 11 additions & 4 deletions tests/test_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,18 +102,25 @@ def test_read_mask_file_drm_file(self, tmpdir):
assert utils.read_mask_file(drm_file) == expected_sites

def test_is_date_ambiguous(self):
""" is_date_ambiguous should return true for ambiguous dates"""
"""is_date_ambiguous should return true for ambiguous dates and false for valid dates."""
# Test complete date strings with ambiguous values.
assert utils.is_date_ambiguous("2019-0X-0X", "all")
assert utils.is_date_ambiguous("2019-XX-09", "month")
assert utils.is_date_ambiguous("2019-03-XX", "day")
assert utils.is_date_ambiguous("201X-03-09", "year")

# Test incomplete date strings with ambiguous values.
assert utils.is_date_ambiguous("2019", "all")
assert utils.is_date_ambiguous("201X", "year")
assert utils.is_date_ambiguous("2019-XX", "month")
assert utils.is_date_ambiguous("2019-10", "day")

def test_not_is_date_ambiguous(self):
""" is_date_ambiguous should return false for valid dates"""
# Test complete date strings without ambiguous dates for the requested field.
assert not utils.is_date_ambiguous("2019-09-03", "all")
assert not utils.is_date_ambiguous("2019-03-XX", "month")
assert not utils.is_date_ambiguous("2019-XX-01", "day")
assert not utils.is_date_ambiguous("2019-09-03", "day")
assert not utils.is_date_ambiguous("2019-XX-XX", "year")

# Test incomplete date strings without ambiguous dates for the requested fields.
assert not utils.is_date_ambiguous("2019", "year")
assert not utils.is_date_ambiguous("2019-10", "month")

0 comments on commit ca1b9c5

Please sign in to comment.