mirror of
https://github.com/ilri/csv-metadata-quality.git
synced 2024-11-22 22:05:03 +01:00
Alan Orth
196bb434fa
I'm only concerned with validating issue dates here. In DSpace they are generally always YYYY, YYY-MM, or YYYY-MM-DD (though in theory they could be any valid ISO8601 format). This also checks for cases where the date is missing and where the metadata has specified multiple dates like "1990||1991", as this is valid, but there is no practical value for it in our system.
108 lines
2.0 KiB
Python
108 lines
2.0 KiB
Python
import csv_metadata_quality.check as check
|
|
import pytest
|
|
|
|
def test_check_invalid_issn(capsys):
|
|
'''Test checking invalid ISSN.'''
|
|
|
|
value = '2321-2302'
|
|
|
|
check.issn(value)
|
|
|
|
captured = capsys.readouterr()
|
|
assert captured.out == f'Invalid ISSN: {value}\n'
|
|
|
|
|
|
def test_check_valid_issn():
|
|
'''Test checking valid ISSN.'''
|
|
|
|
value = '0024-9319'
|
|
|
|
result = check.issn(value)
|
|
|
|
assert result == value
|
|
|
|
|
|
def test_check_invalid_isbn(capsys):
|
|
'''Test checking invalid ISBN.'''
|
|
|
|
value = '99921-58-10-6'
|
|
|
|
check.isbn(value)
|
|
|
|
captured = capsys.readouterr()
|
|
assert captured.out == f'Invalid ISBN: {value}\n'
|
|
|
|
|
|
def test_check_valid_isbn():
|
|
'''Test checking valid ISBN.'''
|
|
|
|
value = '99921-58-10-7'
|
|
|
|
result = check.isbn(value)
|
|
|
|
assert result == value
|
|
|
|
|
|
def test_check_invalid_separators(capsys):
|
|
'''Test checking invalid multi-value separators.'''
|
|
|
|
value = 'Alan|Orth'
|
|
|
|
check.separators(value)
|
|
|
|
captured = capsys.readouterr()
|
|
assert captured.out == f'Invalid multi-value separator: {value}\n'
|
|
|
|
|
|
def test_check_valid_separators():
|
|
'''Test checking valid multi-value separators.'''
|
|
|
|
value = 'Alan||Orth'
|
|
|
|
result = check.separators(value)
|
|
|
|
assert result == value
|
|
|
|
|
|
def test_check_missing_date(capsys):
|
|
'''Test checking missing date.'''
|
|
|
|
value = None
|
|
|
|
check.date(value)
|
|
|
|
captured = capsys.readouterr()
|
|
assert captured.out == f'Missing date.\n'
|
|
|
|
|
|
def test_check_multiple_dates(capsys):
|
|
'''Test checking multiple dates.'''
|
|
|
|
value = '1990||1991'
|
|
|
|
check.date(value)
|
|
|
|
captured = capsys.readouterr()
|
|
assert captured.out == f'Multiple dates not allowed: {value}\n'
|
|
|
|
|
|
def test_check_invalid_date(capsys):
|
|
'''Test checking invalid ISO8601 date.'''
|
|
|
|
value = '1990-0'
|
|
|
|
check.date(value)
|
|
|
|
captured = capsys.readouterr()
|
|
assert captured.out == f'Invalid date: {value}\n'
|
|
|
|
|
|
def test_check_valid_date():
|
|
'''Test checking valid ISO8601 date.'''
|
|
|
|
value = '1990'
|
|
|
|
result = check.date(value)
|
|
|
|
assert result == value
|