add validator functions and tests

This commit is contained in:
David Kilias 2020-11-06 22:23:47 +01:00
parent a72ff4b06c
commit 56b8d9def0
2 changed files with 71 additions and 0 deletions

View file

@ -0,0 +1,37 @@
from validators import mandatory, empty, iso_date, valid_iban, valid_bic
def test_mandatory():
assert mandatory("Foo") == True
assert mandatory("Foo Bar") == True
assert mandatory("1970-01-01") == True
assert mandatory("") == False
def test_empty():
assert empty("") == True
assert empty(" ") == False
assert empty("Foo") == False
assert empty("1970-01-01") == False
def test_iso_date():
assert iso_date("1970-01-01") == True
assert iso_date("1970-1-1") == True
assert iso_date("70-01-01") == False
assert iso_date("1970/01/01") == False
assert iso_date("1.1.1970") == False
assert iso_date("01.01.1970") == False
def test_valid_iban():
assert valid_iban("DE89 3704 0044 0532 0130 00") == True
assert valid_iban("DX89 3704 0044 0532 0130 00") == False
assert valid_iban("DE99 3704 0044 0532 0130 00") == False
def test_valid_bic():
assert valid_bic("PBNKDEFFXXX") == True
assert valid_bic("PBNKDXFFXXX") == False
assert valid_bic("PBNKDXFFXXXX") == False
assert valid_bic("PBN1DXFFXXX") == False

34
validators/validators.py Normal file
View file

@ -0,0 +1,34 @@
import datetime
from schwifty import IBAN, BIC
def mandatory(field: str) -> bool:
return bool(field)
def empty(field: str) -> bool:
return not bool(field)
def iso_date(field: str) -> bool:
try:
datetime.datetime.strptime(field, "%Y-%m-%d")
return True
except ValueError:
return False
def valid_iban(field: str) -> bool:
try:
IBAN(field)
return True
except ValueError:
return False
def valid_bic(field: str) -> bool:
try:
BIC(field)
return True
except ValueError:
return False