Files
notifications-admin/tests/app/main/views/test_organisations.py
2018-02-12 12:27:06 +00:00

125 lines
3.3 KiB
Python

from bs4 import BeautifulSoup
from flask import url_for
from tests.conftest import (
normalize_spaces
)
def test_organisation_page_shows_all_organisations(
logged_in_platform_admin_client,
mocker
):
orgs = [
{'id': '1', 'name': 'Test 1', 'active': True},
{'id': '2', 'name': 'Test 2', 'active': True},
{'id': '3', 'name': 'Test 3', 'active': False},
]
mocker.patch(
'app.organisations_client.get_organisations', return_value=orgs
)
response = logged_in_platform_admin_client.get(
url_for('.organisations')
)
assert response.status_code == 200
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
assert normalize_spaces(
page.select_one('h1').text
) == "Organisations"
for index, org in enumerate(orgs):
assert page.select('a.browse-list-link')[index].text == org['name']
if not org['active']:
assert page.select_one('.table-field-status-default,heading-medium').text == '- archived'
assert normalize_spaces((page.select('a.browse-list-link')[-1]).text) == 'Create an organisation'
def test_view_organisation_shows_the_correct_organisation(
logged_in_platform_admin_client,
fake_uuid,
mocker
):
org = {'id': fake_uuid, 'name': 'Test 1', 'active': True}
mocker.patch(
'app.organisations_client.get_organisation', return_value=org
)
response = logged_in_platform_admin_client.get(
url_for('.view_organisation', org_id=fake_uuid)
)
assert response.status_code == 200
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
assert page.select_one('.heading-large div').text == org['name']
def test_edit_organisation_shows_the_correct_organisation(
logged_in_platform_admin_client,
fake_uuid,
mocker
):
org = {'id': fake_uuid, 'name': 'Test 1', 'active': True}
mocker.patch(
'app.organisations_client.get_organisation', return_value=org
)
response = logged_in_platform_admin_client.get(
url_for('.update_organisation', org_id=fake_uuid)
)
assert response.status_code == 200
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
assert page.select_one('#name').attrs.get('value') == org['name']
def test_create_new_organisation(
logged_in_platform_admin_client,
mocker,
fake_uuid
):
mock_create_organisation = mocker.patch(
'app.organisations_client.create_organisation'
)
org = {'name': 'new name'}
logged_in_platform_admin_client.post(
url_for('.add_organisation'),
content_type='multipart/form-data',
data=org
)
mock_create_organisation.assert_called_once_with(name=org['name'])
def test_update_organisation(
logged_in_platform_admin_client,
mocker,
fake_uuid,
):
org = {'name': 'new name'}
mocker.patch(
'app.organisations_client.get_organisation', return_value=org
)
mock_update_organisation = mocker.patch(
'app.organisations_client.update_organisation'
)
logged_in_platform_admin_client.post(
url_for('.update_organisation', org_id=fake_uuid),
content_type='multipart/form-data',
data=org
)
assert mock_update_organisation.called
mock_update_organisation.assert_called_once_with(
org_id=fake_uuid,
name=org['name']
)