2021-03-04 17:47:13 +01:00
|
|
|
# standard imports
|
|
|
|
|
2021-08-06 18:29:01 +02:00
|
|
|
# external imports
|
2021-03-04 17:47:13 +01:00
|
|
|
import pytest
|
|
|
|
|
|
|
|
# local imports
|
2021-08-06 18:29:01 +02:00
|
|
|
from cic_ussd.state_machine.logic.validator import (has_cached_person_metadata,
|
|
|
|
is_valid_name,
|
2021-03-04 17:47:13 +01:00
|
|
|
is_valid_gender_selection,
|
2021-08-06 18:29:01 +02:00
|
|
|
is_valid_date)
|
|
|
|
|
|
|
|
# test imports
|
|
|
|
|
|
|
|
|
|
|
|
def test_has_cached_person_metadata(activated_account,
|
|
|
|
cache_person_metadata,
|
|
|
|
generic_ussd_session,
|
|
|
|
init_database,
|
|
|
|
pending_account):
|
|
|
|
state_machine_data = ('', generic_ussd_session, activated_account, init_database)
|
|
|
|
assert has_cached_person_metadata(state_machine_data) is True
|
|
|
|
state_machine_data = ('', generic_ussd_session, pending_account, init_database)
|
|
|
|
assert has_cached_person_metadata(state_machine_data) is False
|
2021-03-04 17:47:13 +01:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize("user_input, expected_result", [
|
|
|
|
("Arya", True),
|
|
|
|
("1234", False)
|
|
|
|
])
|
2021-08-06 18:29:01 +02:00
|
|
|
def test_is_valid_name(expected_result, generic_ussd_session, init_database, pending_account, user_input):
|
|
|
|
|
|
|
|
state_machine_data = (user_input, generic_ussd_session, pending_account, init_database)
|
|
|
|
assert is_valid_name(state_machine_data) is expected_result
|
2021-03-04 17:47:13 +01:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize("user_input, expected_result", [
|
|
|
|
("1", True),
|
|
|
|
("2", True),
|
2021-08-06 18:29:01 +02:00
|
|
|
("3", True),
|
|
|
|
("4", False)
|
|
|
|
])
|
|
|
|
def test_is_valid_gender_selection(expected_result, generic_ussd_session, init_database, pending_account, user_input):
|
|
|
|
state_machine_data = (user_input, generic_ussd_session, pending_account, init_database)
|
|
|
|
assert is_valid_gender_selection(state_machine_data) is expected_result
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize("user_input, expected_result", [
|
|
|
|
("1935", True),
|
|
|
|
("1825", False),
|
2021-03-04 17:47:13 +01:00
|
|
|
("3", False)
|
|
|
|
])
|
2021-08-06 18:29:01 +02:00
|
|
|
def test_is_valid_date(expected_result, generic_ussd_session, init_database, pending_account, user_input):
|
|
|
|
state_machine_data = (user_input, generic_ussd_session, pending_account, init_database)
|
|
|
|
assert is_valid_date(state_machine_data) is expected_result
|