Source code for phonevalidator.test.test_phonevalidator
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
test_phonevalidator
----------------------------------
Tests for `phonevalidator` module.
"""
import pytest
import os
from phonevalidator import Validator
from phonenumbers import PhoneNumberFormat
@pytest.fixture
[docs]def base_schema():
return {'phone': {'type': 'phonenumber', 'region': 'US'}}
'''
def test_Validator_init():
v = Validator(formatter='INTERNATIONAL', region='AS')
assert v.formatter == PhoneNumberFormat.INTERNATIONAL
assert v.region == 'AS'
v = Validator()
assert v.formatter is None
assert v.region is None
'''
[docs]def test_Validator_default_region():
v = Validator()
assert v._default_region() == 'US'
os.environ['DEFAULT_PHONE_REGION'] = 'AS'
assert v._default_region() == 'AS'
[docs]def test_Validator_is_valid_region():
v = Validator()
assert v._is_valid_region(None) is False
assert v._is_valid_region('us') is True
[docs]def test_phonenumber_fail(base_schema):
doc = {'phone': 'gibberish'}
v = Validator(base_schema)
assert v.validate(doc) is False
doc['phone'] = '+41513555'
assert v.validate(doc) is False
[docs]def test_phone_number_valid(base_schema):
base_schema['phone']['region'] = 'US'
doc = {'phone': '5135555555'}
v = Validator(base_schema)
assert v.validate(doc)
assert v.document['phone'] == '5135555555'
[docs]def test_region_fail(base_schema):
# non valid region
schema = {'phone': {'type': 'phonenumber', 'region': 'XYZ'}}
doc = {'phone': '5135555555'}
v = Validator(schema)
assert v.validate(doc) is False