Add tests for check functions

Relies on capturing stdout.

See: https://docs.pytest.org/en/5.0.1/capture.html
This commit is contained in:
Alan Orth 2019-07-27 02:10:13 +03:00
parent 2b41f9416b
commit a849615b41
Signed by: alanorth
GPG Key ID: 0FB860CC9C45B1B9
1 changed files with 64 additions and 0 deletions

64
tests/test_check.py Normal file
View File

@ -0,0 +1,64 @@
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