mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-05-05 16:38:59 -04:00
Merge with master.
This commit is contained in:
@@ -4,7 +4,12 @@ from tests import create_test_user
|
||||
from app.models import User
|
||||
|
||||
|
||||
def test_get_should_render_add_service_template(app_, db_, db_session, active_user, mock_get_service):
|
||||
def test_get_should_render_add_service_template(app_,
|
||||
db_,
|
||||
db_session,
|
||||
active_user,
|
||||
mock_get_service,
|
||||
mock_get_services):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
@@ -35,7 +40,8 @@ def test_should_return_form_errors_when_service_name_is_empty(app_,
|
||||
db_,
|
||||
db_session,
|
||||
active_user,
|
||||
mock_get_service):
|
||||
mock_get_service,
|
||||
mock_get_services):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
|
||||
13
tests/app/main/views/test_api_keys.py
Normal file
13
tests/app/main/views/test_api_keys.py
Normal file
@@ -0,0 +1,13 @@
|
||||
from flask import url_for
|
||||
|
||||
|
||||
def test_should_show_api_keys_and_documentation_page(app_,
|
||||
db_,
|
||||
db_session,
|
||||
active_user):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
response = client.get(url_for('main.api_keys', service_id=123))
|
||||
|
||||
assert response.status_code == 200
|
||||
@@ -1,21 +1,15 @@
|
||||
from io import BytesIO
|
||||
from unittest import mock
|
||||
from unittest.mock import mock_open
|
||||
from flask import url_for
|
||||
|
||||
from tests import create_test_user
|
||||
import moto
|
||||
|
||||
|
||||
def test_upload_empty_csvfile_returns_to_upload_page(
|
||||
app_, db_, db_session,
|
||||
mocker):
|
||||
|
||||
_setup_mocker_for_empty_file(mocker)
|
||||
def test_upload_empty_csvfile_returns_to_upload_page(app_, db_, db_session, active_user):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
user = create_test_user('active')
|
||||
client.login(user)
|
||||
client.login(active_user)
|
||||
upload_data = {'file': (BytesIO(''.encode('utf-8')), 'emtpy.csv')}
|
||||
response = client.post('/services/123/sms/send',
|
||||
response = client.post(url_for('main.send_sms', service_id=123),
|
||||
data=upload_data, follow_redirects=True)
|
||||
|
||||
assert response.status_code == 200
|
||||
@@ -23,53 +17,49 @@ def test_upload_empty_csvfile_returns_to_upload_page(
|
||||
assert 'The file emtpy.csv contained no data' in content
|
||||
|
||||
|
||||
def test_upload_csvfile_with_invalid_phone_shows_check_page_with_errors(
|
||||
app_, db_, db_session,
|
||||
mocker):
|
||||
@moto.mock_s3
|
||||
def test_upload_csvfile_with_invalid_phone_shows_check_page_with_errors(app_,
|
||||
db_,
|
||||
db_session,
|
||||
mocker,
|
||||
active_user):
|
||||
|
||||
contents = 'phone\n+44 123\n+44 456'
|
||||
file_data = (BytesIO(contents.encode('utf-8')), 'invalid.csv')
|
||||
m_open = mock_open(read_data=contents)
|
||||
_setup_mocker_for_nonemtpy_file(mocker)
|
||||
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
user = create_test_user('active')
|
||||
client.login(user)
|
||||
client.login(active_user)
|
||||
upload_data = {'file': file_data}
|
||||
with mock.patch('app.main.views.sms._open', m_open):
|
||||
response = client.post('/services/123/sms/send',
|
||||
data=upload_data,
|
||||
follow_redirects=True)
|
||||
response = client.post(url_for('main.send_sms', service_id=123),
|
||||
data=upload_data,
|
||||
follow_redirects=True)
|
||||
assert response.status_code == 200
|
||||
content = response.get_data(as_text=True)
|
||||
|
||||
assert 'There was a problem with some of the numbers' in content
|
||||
assert 'The following numbers are invalid' in content
|
||||
assert '+44 123' in content
|
||||
assert '+44 456' in content
|
||||
assert 'Go back and resolve errors' in content
|
||||
|
||||
|
||||
def test_upload_csvfile_with_valid_phone_shows_first3_and_last3_numbers(
|
||||
app_, db_, db_session,
|
||||
mocker):
|
||||
@moto.mock_s3
|
||||
def test_upload_csvfile_with_valid_phone_shows_first3_and_last3_numbers(app_,
|
||||
db_,
|
||||
db_session,
|
||||
mocker,
|
||||
active_user):
|
||||
|
||||
contents = 'phone\n+44 7700 900981\n+44 7700 900982\n+44 7700 900983\n+44 7700 900984\n+44 7700 900985\n+44 7700 900986\n+44 7700 900987\n+44 7700 900988\n+44 7700 900989' # noqa
|
||||
|
||||
file_data = (BytesIO(contents.encode('utf-8')), 'valid.csv')
|
||||
m_open = mock_open(read_data=contents)
|
||||
_setup_mocker_for_nonemtpy_file(mocker)
|
||||
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
user = create_test_user('active')
|
||||
client.login(user)
|
||||
client.login(active_user)
|
||||
upload_data = {'file': file_data}
|
||||
with mock.patch('app.main.views.sms._open', m_open):
|
||||
response = client.post('/services/123/sms/send',
|
||||
data=upload_data,
|
||||
follow_redirects=True)
|
||||
response = client.post(url_for('main.send_sms', service_id=123),
|
||||
data=upload_data,
|
||||
follow_redirects=True)
|
||||
|
||||
content = response.get_data(as_text=True)
|
||||
|
||||
@@ -88,25 +78,24 @@ def test_upload_csvfile_with_valid_phone_shows_first3_and_last3_numbers(
|
||||
assert '+44 7700 900989' in content
|
||||
|
||||
|
||||
def test_upload_csvfile_with_valid_phone_shows_all_if_6_or_less_numbers(
|
||||
app_, db_, db_session,
|
||||
mocker):
|
||||
@moto.mock_s3
|
||||
def test_upload_csvfile_with_valid_phone_shows_all_if_6_or_less_numbers(app_,
|
||||
db_,
|
||||
db_session,
|
||||
mocker,
|
||||
active_user):
|
||||
|
||||
contents = 'phone\n+44 7700 900981\n+44 7700 900982\n+44 7700 900983\n+44 7700 900984\n+44 7700 900985\n+44 7700 900986' # noqa
|
||||
|
||||
file_data = (BytesIO(contents.encode('utf-8')), 'valid.csv')
|
||||
m_open = mock_open(read_data=contents)
|
||||
_setup_mocker_for_nonemtpy_file(mocker)
|
||||
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
user = create_test_user('active')
|
||||
client.login(user)
|
||||
client.login(active_user)
|
||||
upload_data = {'file': file_data}
|
||||
with mock.patch('app.main.views.sms._open', m_open):
|
||||
response = client.post('/services/123/sms/send',
|
||||
data=upload_data,
|
||||
follow_redirects=True)
|
||||
response = client.post(url_for('main.send_sms', service_id=123),
|
||||
data=upload_data,
|
||||
follow_redirects=True)
|
||||
|
||||
content = response.get_data(as_text=True)
|
||||
|
||||
@@ -121,34 +110,12 @@ def test_upload_csvfile_with_valid_phone_shows_all_if_6_or_less_numbers(
|
||||
assert '+44 7700 900986' in content
|
||||
|
||||
|
||||
def test_should_redirect_to_job(app_, db_,
|
||||
db_session, mocker):
|
||||
_setup_mocker_for_check(mocker)
|
||||
@moto.mock_s3
|
||||
def test_should_redirect_to_job(app_, db_, db_session, mocker, active_user):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
user = create_test_user('active')
|
||||
client.login(user)
|
||||
with client.session_transaction() as s:
|
||||
s[456] = 'test.csv'
|
||||
|
||||
response = client.post('/services/123/sms/check',
|
||||
data={'recipients': 'test.csv'})
|
||||
|
||||
client.login(active_user)
|
||||
response = client.post(url_for('main.check_sms',
|
||||
service_id=123,
|
||||
upload_id='someid'))
|
||||
assert response.status_code == 302
|
||||
|
||||
|
||||
def _setup_mocker_for_empty_file(mocker):
|
||||
mocker.patch('werkzeug.datastructures.FileStorage.save')
|
||||
mocker.patch('os.remove')
|
||||
ret = ValueError('The file emtpy.csv contained no data')
|
||||
mocker.patch('app.main.views.sms._check_file', side_effect=ret)
|
||||
|
||||
|
||||
def _setup_mocker_for_nonemtpy_file(mocker):
|
||||
mocker.patch('werkzeug.datastructures.FileStorage.save')
|
||||
mocker.patch('os.remove')
|
||||
mocker.patch('app.main.views.sms._check_file')
|
||||
|
||||
|
||||
def _setup_mocker_for_check(mocker):
|
||||
mocker.patch('app.main.views.sms.s3upload').return_value = 456
|
||||
|
||||
@@ -1,32 +1,49 @@
|
||||
from tests import create_test_user
|
||||
from flask import url_for
|
||||
|
||||
|
||||
def test_should_return_list_of_all_templates(app_, db_, db_session):
|
||||
def test_should_return_list_of_all_templates(app_, db_, db_session, active_user):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
user = create_test_user('active')
|
||||
client.login(user)
|
||||
response = client.get('/services/123/templates')
|
||||
client.login(active_user)
|
||||
response = client.get(url_for('.manage_templates', service_id=123))
|
||||
|
||||
assert response.status_code == 200
|
||||
|
||||
|
||||
def test_should_show_page_for_one_templates(app_, db_, db_session):
|
||||
def test_should_show_page_for_one_templates(app_, db_, db_session, active_user):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
user = create_test_user('active')
|
||||
client.login(user)
|
||||
response = client.get('/services/123/templates/template')
|
||||
client.login(active_user)
|
||||
response = client.get(url_for('.edit_template', service_id=123, template_id=1))
|
||||
|
||||
assert response.status_code == 200
|
||||
|
||||
|
||||
def test_should_redirect_when_saving_a_template(app_, db_, db_session):
|
||||
def test_should_redirect_when_saving_a_template(app_, db_, db_session, active_user):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
user = create_test_user('active')
|
||||
client.login(user)
|
||||
response = client.post('/services/123/templates/template')
|
||||
client.login(active_user)
|
||||
response = client.post(url_for('.edit_template', service_id=123, template_id=1))
|
||||
|
||||
assert response.status_code == 302
|
||||
assert response.location == 'http://localhost/services/123/templates'
|
||||
assert response.status_code == 302
|
||||
assert response.location == url_for('.manage_templates', service_id=123, _external=True)
|
||||
|
||||
|
||||
def test_should_show_delete_template_page(app_, db_, db_session, active_user):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
response = client.get(url_for('.delete_template', service_id=123, template_id=1))
|
||||
|
||||
assert response.status_code == 200
|
||||
assert 'Are you sure' in response.get_data(as_text=True)
|
||||
|
||||
|
||||
def test_should_redirect_when_deleting_a_template(app_, db_, db_session, active_user):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user)
|
||||
response = client.post(url_for('.delete_template', service_id=123, template_id=1))
|
||||
|
||||
assert response.status_code == 302
|
||||
assert response.location == url_for('.manage_templates', service_id=123, _external=True)
|
||||
|
||||
@@ -32,7 +32,7 @@ def test_should_redirect_to_add_service_when_code_are_correct(app_,
|
||||
data={'sms_code': '12345',
|
||||
'email_code': '23456'})
|
||||
assert response.status_code == 302
|
||||
assert response.location == url_for('main.add_service', _external=True)
|
||||
assert response.location == url_for('main.add_service', first='first', _external=True)
|
||||
|
||||
|
||||
def test_should_activate_user_after_verify(app_, db_, db_session):
|
||||
|
||||
Reference in New Issue
Block a user