summaryrefslogtreecommitdiffstats
path: root/python/tests/import_datacite.py
diff options
context:
space:
mode:
authorMartin Czygan <martin.czygan@gmail.com>2020-01-03 22:40:53 +0100
committerMartin Czygan <martin.czygan@gmail.com>2020-01-03 22:40:53 +0100
commit55dcece5a476b1492bf6c7f4597a469b48b41264 (patch)
treebd8320c7c85c07d48eaba2e321fa9a2756c40d4c /python/tests/import_datacite.py
parente4402d6d4b162d57507d5beb57de88017cea549d (diff)
downloadfatcat-55dcece5a476b1492bf6c7f4597a469b48b41264.tar.gz
fatcat-55dcece5a476b1492bf6c7f4597a469b48b41264.zip
datacite: parse_datacite_dates returns month
As [...] we will soon add support for release_month field in the release schema.
Diffstat (limited to 'python/tests/import_datacite.py')
-rw-r--r--python/tests/import_datacite.py23
1 files changed, 16 insertions, 7 deletions
diff --git a/python/tests/import_datacite.py b/python/tests/import_datacite.py
index 29c608ee..c2fcdec9 100644
--- a/python/tests/import_datacite.py
+++ b/python/tests/import_datacite.py
@@ -173,7 +173,7 @@ def test_parse_datacite_dates():
Case('None is None', None, (None, None, None)),
Case('empty list is None', [], (None, None, None)),
Case('empty item is None', [{}], (None, None, None)),
- Case('empty item is None', [{'date': '2019'}], (None, None, 2019)),
+ Case('year only yields year only', [{'date': '2019'}], (None, None, 2019)),
Case('first wins', [{'date': '2019'}, {'date': '2020'}], (None, None, 2019)),
Case('skip bogus year', [{'date': 'abc'}, {'date': '2020'}], (None, None, 2020)),
Case('first with type', [
@@ -181,27 +181,36 @@ def test_parse_datacite_dates():
], (None, None, 2019)),
Case('full date', [
{'date': '2019-12-01', 'dateType': 'Valid'},
- ], (datetime.date(2019, 12, 1), None, 2019)),
+ ], (datetime.date(2019, 12, 1), 12, 2019)),
Case('date type prio', [
{'date': '2000-12-01', 'dateType': 'Valid'},
{'date': '2010-01-01', 'dateType': 'Updated'},
- ], (datetime.date(2000, 12, 1), None, 2000)),
+ ], (datetime.date(2000, 12, 1), 12, 2000)),
Case('date type prio, Available > Updated', [
{'date': '2010-01-01', 'dateType': 'Updated'},
{'date': '2000-12-01', 'dateType': 'Available'},
- ], (datetime.date(2000, 12, 1), None, 2000)),
+ ], (datetime.date(2000, 12, 1), 12, 2000)),
Case('allow different date formats, Available > Updated', [
{'date': '2010-01-01T10:00:00', 'dateType': 'Updated'},
{'date': '2000-12-01T10:00:00', 'dateType': 'Available'},
- ], (datetime.date(2000, 12, 1), None, 2000)),
+ ], (datetime.date(2000, 12, 1), 12, 2000)),
Case('allow different date formats, Available > Updated', [
{'date': '2010-01-01T10:00:00Z', 'dateType': 'Updated'},
{'date': '2000-12-01T10:00:00Z', 'dateType': 'Available'},
- ], (datetime.date(2000, 12, 1), None, 2000)),
+ ], (datetime.date(2000, 12, 1), 12, 2000)),
Case('allow fuzzy date formats, Available > Updated', [
{'date': '2010', 'dateType': 'Updated'},
{'date': '2000 Dec 01', 'dateType': 'Available'},
- ], (datetime.date(2000, 12, 1), None, 2000)),
+ ], (datetime.date(2000, 12, 1), 12, 2000)),
+ Case('fuzzy year only', [
+ {'date': 'Year 2010', 'dateType': 'Issued'},
+ ], (None, None, 2010)),
+ Case('fuzzy year and month', [
+ {'date': 'Year 2010 Feb', 'dateType': 'Issued'},
+ ], (None, 2, 2010)),
+ Case('fuzzy year, month, day', [
+ {'date': 'Year 2010 Feb 24', 'dateType': 'Issued'},
+ ], (datetime.date(2010, 2, 24), 2, 2010)),
Case('ignore broken date', [
{'date': 'Febrrr 45', 'dateType': 'Updated'},
], (None, None, None)),