1
0
mirror of https://github.com/ilri/csv-metadata-quality.git synced 2024-11-25 15:18:19 +01:00
csv-metadata-quality/tests/test_check.py

226 lines
4.5 KiB
Python
Raw Normal View History

import csv_metadata_quality.check as check
2019-07-28 16:47:28 +02:00
def test_check_invalid_issn(capsys):
'''Test checking invalid ISSN.'''
value = '2321-2302'
check.issn(value)
2019-07-28 16:47:28 +02:00
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
2019-08-21 14:34:52 +02:00
field_name = 'dc.date.issued'
check.date(value, field_name)
captured = capsys.readouterr()
2019-08-21 14:34:52 +02:00
assert captured.out == f'Missing date ({field_name}).\n'
def test_check_multiple_dates(capsys):
'''Test checking multiple dates.'''
value = '1990||1991'
2019-08-21 14:34:52 +02:00
field_name = 'dc.date.issued'
check.date(value, field_name)
captured = capsys.readouterr()
2019-08-21 14:34:52 +02:00
assert captured.out == f'Multiple dates not allowed ({field_name}): {value}\n'
def test_check_invalid_date(capsys):
'''Test checking invalid ISO8601 date.'''
value = '1990-0'
2019-08-21 14:34:52 +02:00
field_name = 'dc.date.issued'
check.date(value, field_name)
captured = capsys.readouterr()
2019-08-21 14:34:52 +02:00
assert captured.out == f'Invalid date ({field_name}): {value}\n'
def test_check_valid_date():
'''Test checking valid ISO8601 date.'''
value = '1990'
2019-08-21 14:34:52 +02:00
field_name = 'dc.date.issued'
result = check.date(value, field_name)
assert result == value
def test_check_suspicious_characters(capsys):
'''Test checking for suspicious characters.'''
value = 'foreˆt'
field_name = 'dc.contributor.author'
check.suspicious_characters(value, field_name)
captured = capsys.readouterr()
assert captured.out == f'Suspicious character ({field_name}): ˆt\n'
def test_check_valid_iso639_2_language():
'''Test valid ISO 639-2 language.'''
value = 'ja'
result = check.language(value)
assert result == value
def test_check_valid_iso639_3_language():
'''Test invalid ISO 639-3 language.'''
value = 'eng'
result = check.language(value)
assert result == value
def test_check_invalid_iso639_2_language(capsys):
'''Test invalid ISO 639-2 language.'''
value = 'jp'
check.language(value)
captured = capsys.readouterr()
assert captured.out == f'Invalid ISO 639-2 language: {value}\n'
def test_check_invalid_iso639_3_language(capsys):
'''Test invalid ISO 639-3 language.'''
value = 'chi'
check.language(value)
captured = capsys.readouterr()
assert captured.out == f'Invalid ISO 639-3 language: {value}\n'
def test_check_invalid_language(capsys):
'''Test invalid language.'''
value = 'Span'
check.language(value)
captured = capsys.readouterr()
assert captured.out == f'Invalid language: {value}\n'
def test_check_invalid_agrovoc(capsys):
'''Test invalid AGROVOC subject.'''
value = 'FOREST'
2019-08-01 22:59:11 +02:00
field_name = 'dc.subject'
2019-08-01 22:59:11 +02:00
check.agrovoc(value, field_name)
captured = capsys.readouterr()
2019-08-01 22:59:11 +02:00
assert captured.out == f'Invalid AGROVOC ({field_name}): {value}\n'
def test_check_valid_agrovoc():
'''Test valid AGROVOC subject.'''
value = 'FORESTS'
2019-08-01 22:59:11 +02:00
field_name = 'dc.subject'
2019-08-01 22:59:11 +02:00
result = check.agrovoc(value, field_name)
assert result == value
def test_check_uncommon_filename_extension(capsys):
'''Test uncommon filename extension.'''
value = 'file.pdf.lck'
check.filename_extension(value)
captured = capsys.readouterr()
assert captured.out == f'Filename with uncommon extension: {value}\n'
def test_check_common_filename_extension():
'''Test common filename extension.'''
value = 'file.pdf'
result = check.filename_extension(value)
assert result == value