Files
notifications-admin/tests/app/main/test_two_factor_form.py
T

75 lines
1.7 KiB
Python
Raw Normal View History

import pytest
2016-03-30 09:58:10 +01:00
from app import user_api_client
2018-02-20 11:22:17 +00:00
from app.main.forms import TwoFactorForm
from tests.conftest import (
mock_check_verify_code,
mock_check_verify_code_code_expired,
mock_check_verify_code_code_not_found,
)
2015-12-14 10:52:00 +00:00
def _check_code(code):
return user_api_client.check_verify_code('1', code, "sms")
@pytest.mark.parametrize('post_data', [
{'sms_code': '12345'},
{'sms_code': ' 12345 '},
])
2017-02-03 10:42:01 +00:00
def test_form_is_valid_returns_no_errors(
app_,
mock_check_verify_code,
post_data,
2017-02-03 10:42:01 +00:00
):
with app_.test_request_context(method='POST', data=post_data):
form = TwoFactorForm(_check_code)
2015-12-14 10:52:00 +00:00
assert form.validate() is True
assert form.errors == {}
2015-12-14 10:52:00 +00:00
@pytest.mark.parametrize('mock, post_data, expected_error', (
(
mock_check_verify_code,
{'sms_code': '1234'},
'Not enough numbers',
),
(
mock_check_verify_code,
{'sms_code': '123456'},
'Too many numbers',
),
(
mock_check_verify_code,
{},
2019-09-13 09:39:46 +01:00
'Cannot be empty',
),
(
mock_check_verify_code,
{'sms_code': '12E45'},
'Numbers only',
),
(
mock_check_verify_code_code_expired,
{'sms_code': '99999'},
'Code has expired',
),
(
mock_check_verify_code_code_not_found,
{'sms_code': '99999'},
'Code not found',
),
))
2017-02-03 10:42:01 +00:00
def test_returns_errors_when_code_is_too_short(
app_,
mocker,
mock,
post_data,
expected_error,
2017-02-03 10:42:01 +00:00
):
mock(mocker)
with app_.test_request_context(method='POST', data=post_data):
form = TwoFactorForm(_check_code)
2015-12-14 10:52:00 +00:00
assert form.validate() is False
assert form.errors == {'sms_code': [expected_error]}