Minor refactors:

- Renames s_assemble to s_brief
-  Link s_local to s_brief
This commit is contained in:
Louis Holbrook
2021-03-04 16:47:13 +00:00
committed by Philip Wafula
parent 21c9d95c4b
commit 1e7fff0133
93 changed files with 2264 additions and 796 deletions

View File

@@ -0,0 +1,14 @@
# local imports
from cic_ussd.db.models.task_tracker import TaskTracker
def test_task_tracker(init_database):
task_uuid = '31e85315-feee-4b6d-995e-223569082cc4'
task_in_tracker = TaskTracker(task_uuid=task_uuid)
session = init_database
session.add(task_in_tracker)
session.commit()
queried_task = session.query(TaskTracker).get(1)
assert queried_task.task_uuid == task_uuid

View File

@@ -0,0 +1,40 @@
"""Tests the persistence of the user record and associated functions to the user object"""
# standard imports
import pytest
# platform imports
from cic_ussd.db.models.user import User
def test_user(init_database, set_fernet_key):
user = User(blockchain_address='0x417f5962fc52dc33ff0689659b25848680dec6dcedc6785b03d1df60fc6d5c51',
phone_number='+254700000000')
user.create_password('0000')
session = User.session
session.add(user)
session.commit()
queried_user = session.query(User).get(1)
assert queried_user.blockchain_address == '0x417f5962fc52dc33ff0689659b25848680dec6dcedc6785b03d1df60fc6d5c51'
assert queried_user.phone_number == '+254700000000'
assert queried_user.failed_pin_attempts == 0
assert queried_user.verify_password('0000') is True
def test_user_state_transition(create_pending_user):
user = create_pending_user
session = User.session
assert user.get_account_status() == 'PENDING'
user.activate_account()
assert user.get_account_status() == 'ACTIVE'
user.failed_pin_attempts = 3
assert user.get_account_status() == 'LOCKED'
user.reset_account_pin()
assert user.get_account_status() == 'RESET'
user.activate_account()
assert user.get_account_status() == 'ACTIVE'
session.add(user)
session.commit()

View File

@@ -0,0 +1,54 @@
# third party imports
import pytest
# local imports
from cic_ussd.db.models.ussd_session import UssdSession
from cic_ussd.error import VersionTooLowError
def test_ussd_session(init_database, create_in_redis_ussd_session, create_activated_user):
session = init_database
ussd_session = UssdSession(
external_session_id='AT65423',
service_code='*123#',
msisdn=create_activated_user.phone_number,
user_input='1',
state='start',
session_data={},
version=1,
)
session.add(ussd_session)
session.commit()
ussd_session.set_data(key='foo', session=init_database, value='bar')
assert ussd_session.get_data('foo') == 'bar'
ussd_session.update(
session=init_database,
user_input='3',
state='next',
version=2
)
assert ussd_session.version == 2
session.add(ussd_session)
session.commit()
assert UssdSession.have_session_for_phone(create_activated_user.phone_number) is True
def test_version_too_low_error(init_database, create_in_redis_ussd_session, create_activated_user):
with pytest.raises(VersionTooLowError) as e:
session = UssdSession(
external_session_id='AT38745',
service_code='*123#',
msisdn=create_activated_user.phone_number,
user_input='1',
state='start',
session_data={},
version=3,
)
assert session.check_version(1)
assert session.check_version(3)
assert str(e.value) == 'New session version number is not greater than last saved version!'