46 lines
1.8 KiB
Python
46 lines
1.8 KiB
Python
# standard imports
|
|
import json
|
|
|
|
# external imports
|
|
import pytest
|
|
|
|
# local imports
|
|
from cic_ussd.db.models.account import Account
|
|
from cic_ussd.http.routes import locked_accounts, pin_reset
|
|
|
|
# test imports
|
|
|
|
|
|
@pytest.mark.parametrize('method, expected_response, expected_message', [
|
|
('GET', '{"status": "LOCKED"}', '200 OK'),
|
|
('PUT', 'Pin reset successful.', '200 OK'),
|
|
])
|
|
def test_pin_reset(method, expected_response, expected_message, init_database, pin_blocked_account, uwsgi_env):
|
|
uwsgi_env['REQUEST_METHOD'] = method
|
|
response, message = pin_reset(uwsgi_env, pin_blocked_account.phone_number, init_database)
|
|
assert response == expected_response
|
|
assert message == expected_message
|
|
|
|
response, message = pin_reset(uwsgi_env, '070000000', init_database)
|
|
assert response == ''
|
|
assert message == '404 Not found'
|
|
|
|
|
|
def test_locked_accounts(init_database, locked_accounts_env, locked_accounts_traffic):
|
|
response, message = locked_accounts(locked_accounts_env, init_database)
|
|
assert message == '200 OK'
|
|
locked_account_addresses = json.loads(response)
|
|
assert len(locked_account_addresses) == 10
|
|
account_1 = init_database.query(Account).filter_by(blockchain_address=locked_account_addresses[2]).first()
|
|
account_2 = init_database.query(Account).filter_by(blockchain_address=locked_account_addresses[7]).first()
|
|
assert account_1.updated > account_2.updated
|
|
locked_accounts_env['PATH_INFO'] = '/accounts/locked/10'
|
|
response, message = locked_accounts(locked_accounts_env, init_database)
|
|
assert message == '200 OK'
|
|
locked_account_addresses = json.loads(response)
|
|
assert len(locked_account_addresses) == 10
|
|
locked_accounts_env['REQUEST_METHOD'] = 'POST'
|
|
response, message = locked_accounts(locked_accounts_env, init_database)
|
|
assert message == '405 Play by the rules'
|
|
assert response == ''
|