WIP: validators #3
3 changed files with 114 additions and 0 deletions
|
@ -1,3 +1,4 @@
|
|||
tornado==6.0.4
|
||||
isodate==0.6.0
|
||||
pytest==5.4.1
|
||||
schwifty==2020.9.0
|
||||
|
|
59
validators/test_validators.py
Normal file
59
validators/test_validators.py
Normal file
|
@ -0,0 +1,59 @@
|
|||
from validators import mandatory, empty, iso_date, valid_iban, valid_bic, valid_money_amount
|
||||
|
||||
|
||||
def test_mandatory():
|
||||
assert mandatory("Foo") == True
|
||||
assert mandatory("Foo Bar") == True
|
||||
assert mandatory("1970-01-01") == True
|
||||
assert mandatory("") == False
|
||||
assert mandatory(None) == False
|
||||
|
||||
|
||||
def test_empty():
|
||||
assert empty(None) == True
|
||||
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
|
||||
assert iso_date("") == False
|
||||
assert iso_date(None) == False
|
||||
|
||||
|
||||
def test_valid_iban():
|
||||
assert valid_iban("DE89 3704 0044 0532 0130 00") == True
|
||||
assert valid_iban("DE89370400440532013000") == True
|
||||
assert valid_iban("DX89 3704 0044 0532 0130 00") == False
|
||||
assert valid_iban("DE99 3704 0044 0532 0130 00") == False
|
||||
assert valid_iban("") == False
|
||||
assert valid_iban(None) == False
|
||||
assert valid_iban("DE89 3704 0044 0532 0130 00".split()) == 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
|
||||
assert valid_bic("") == False
|
||||
assert valid_bic(None) == False
|
||||
assert valid_bic("PBNKDEFFXXX".split()) == False
|
||||
|
||||
|
||||
def test_valid_money_amount():
|
||||
assert valid_money_amount(None) == False
|
||||
assert valid_money_amount("") == False
|
||||
assert valid_money_amount("0,00") == False
|
||||
assert valid_money_amount("13,37") == False
|
||||
assert valid_money_amount("0") == True
|
||||
assert valid_money_amount("0.00") == True
|
||||
assert valid_money_amount("13") == True
|
||||
assert valid_money_amount("13.37") == True
|
54
validators/validators.py
Normal file
54
validators/validators.py
Normal file
|
@ -0,0 +1,54 @@
|
|||
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:
|
||||
if not field:
|
||||
return False
|
||||
try:
|
||||
datetime.datetime.strptime(field, "%Y-%m-%d")
|
||||
return True
|
||||
except ValueError:
|
||||
return False
|
||||
|
||||
|
||||
def valid_iban(field: str) -> bool:
|
||||
if not field:
|
||||
return False
|
||||
if not type(field) == str:
|
||||
return False
|
||||
try:
|
||||
IBAN(field)
|
||||
return True
|
||||
except ValueError:
|
||||
return False
|
||||
|
||||
|
||||
def valid_bic(field: str) -> bool:
|
||||
if not field:
|
||||
return False
|
||||
if not type(field) == str:
|
||||
return False
|
||||
try:
|
||||
BIC(field)
|
||||
return True
|
||||
except ValueError:
|
||||
return False
|
||||
|
||||
|
||||
def valid_money_amount(field: str) -> bool:
|
||||
if not field:
|
||||
return False
|
||||
try:
|
||||
float(field)
|
||||
return True
|
||||
except (ValueError, TypeError):
|
||||
return False
|
Loading…
Reference in a new issue