def test_create_email_branding_requires_a_name_when_submitting_logo_details(
    client_request,
    mocker,
    fake_uuid,
    mock_create_email_branding,
):
    mocker.patch('app.main.views.email_branding.persist_logo')
    mocker.patch(
        'app.main.views.email_branding.delete_email_temp_files_created_by')
    data = {
        'operation': 'email-branding-details',
        'logo': '',
        'colour': '#ff0000',
        'text': 'new text',
        'name': '',
        'brand_type': 'org',
    }
    client_request.login(platform_admin_user(fake_uuid))
    page = client_request.post(
        '.create_email_branding',
        content_type='multipart/form-data',
        _data=data,
        _expected_status=200,
    )

    assert page.select_one(
        '.error-message').text.strip() == 'This field is required'
    assert mock_create_email_branding.called is False
Esempio n. 2
0
def test_create_email_branding_requires_a_name_when_submitting_logo_details(
    client_request,
    mocker,
    fake_uuid,
    mock_create_email_branding,
):
    mocker.patch("app.main.views.email_branding.persist_logo")
    mocker.patch(
        "app.main.views.email_branding.delete_email_temp_files_created_by")
    data = {
        "operation": "email-branding-details",
        "logo": "",
        "colour": "#ff0000",
        "text": "new text",
        "name": "",
        "brand_type": "custom_logo",
    }
    client_request.login(platform_admin_user(fake_uuid))
    page = client_request.post(
        ".create_email_branding",
        content_type="multipart/form-data",
        _data=data,
        _expected_status=200,
    )

    assert page.select_one(
        ".error-message").text.strip() == "This field is required"
    assert mock_create_email_branding.called is False
def test_cant_edit_user_folder_permissions_for_platform_admin_users(
    client_request,
    mocker,
    service_one,
    mock_get_users_by_service,
    mock_get_invites_for_service,
    mock_set_user_permissions,
    mock_get_template_folders,
    fake_uuid,
):
    service_one['permissions'] = ['edit_folder_permissions']
    mocker.patch(
        'app.user_api_client.get_user', return_value=platform_admin_user(fake_uuid)
    )
    mock_get_template_folders.return_value = [
        {'id': 'folder-id-1', 'name': 'folder_one', 'parent_id': None, 'users_with_permission': []},
        {'id': 'folder-id-2', 'name': 'folder_one', 'parent_id': None, 'users_with_permission': []},
        {'id': 'folder-id-3', 'name': 'folder_one', 'parent_id': 'folder-id-1', 'users_with_permission': []},
    ]
    page = client_request.get(
        'main.edit_user_permissions',
        service_id=SERVICE_ONE_ID,
        user_id=fake_uuid,
    )
    assert normalize_spaces(page.select('main p')[0].text) == '[email protected] Change'
    assert normalize_spaces(page.select('main p')[2].text) == (
        'Platform admin users can access all template folders.'
    )
    assert page.select('input[name=folder_permissions]') == []
    client_request.post(
        'main.edit_user_permissions',
        service_id=SERVICE_ONE_ID,
        user_id=fake_uuid,
        _data={},
        _expected_status=302,
        _expected_redirect=url_for(
            'main.manage_users',
            service_id=SERVICE_ONE_ID,
            _external=True,
        ),
    )
    mock_set_user_permissions.assert_called_with(
        fake_uuid,
        SERVICE_ONE_ID,
        permissions={
            'manage_api_keys', 'manage_service', 'manage_templates', 'send_messages', 'view_activity',
        },
        folder_permissions=None,
    )
def test_create_email_branding_does_not_require_a_name_when_uploading_a_file(
    client_request,
    mocker,
    fake_uuid,
):
    mocker.patch('app.main.views.email_branding.upload_email_logo',
                 return_value='temp_filename')
    data = {
        'file': (BytesIO(''.encode('utf-8')), 'test.png'),
        'colour': '',
        'text': '',
        'name': '',
        'brand_type': 'org',
    }
    client_request.login(platform_admin_user(fake_uuid))
    page = client_request.post('.create_email_branding',
                               content_type='multipart/form-data',
                               _data=data,
                               _follow_redirects=True)

    assert not page.find('.error-message')
Esempio n. 5
0
def test_create_email_branding_does_not_require_a_name_when_uploading_a_file(
    client_request,
    mocker,
    fake_uuid,
):
    mocker.patch("app.main.views.email_branding.upload_email_logo",
                 return_value="temp_filename")
    data = {
        "file": (BytesIO("".encode("utf-8")), "test.png"),
        "colour": "",
        "text": "",
        "name": "",
        "brand_type": "custom_logo",
    }
    client_request.login(platform_admin_user(fake_uuid))
    page = client_request.post(
        ".create_email_branding",
        content_type="multipart/form-data",
        _data=data,
        _follow_redirects=True,
    )

    assert not page.find(".error-message")
import werkzeug

from tests import service_json
from tests.conftest import api_user_active, platform_admin_user
from app.notify_client import NotifyAdminAPIClient


@pytest.mark.parametrize('method', [
    'put',
    'post',
    'delete'
])
@pytest.mark.parametrize('user', [
    api_user_active(str(uuid.uuid4())),
    platform_admin_user(str(uuid.uuid4()))
], ids=['api_user', 'platform_admin'])
@pytest.mark.parametrize('service', [
    service_json(active=True),
    None
], ids=['active_service', 'no_service'])
def test_active_service_can_be_modified(app_, method, user, service):
    api_client = NotifyAdminAPIClient('api_key', 'base_url', 'service_id')

    with app_.test_request_context() as request_context, app_.test_client() as client:
        client.login(user)
        request_context.service = service

        with patch.object(api_client, 'request') as request:
            ret = getattr(api_client, method)('url', 'data')
Esempio n. 7
0
from unittest.mock import patch

import pytest
import werkzeug

from app.notify_client import NotifyAdminAPIClient
from tests import service_json
from tests.conftest import api_user_active, platform_admin_user, set_config

SAMPLE_API_KEY = '{}-{}'.format('a' * 36, 's' * 36)


@pytest.mark.parametrize('method', ['put', 'post', 'delete'])
@pytest.mark.parametrize('user', [
    api_user_active(str(uuid.uuid4())),
    platform_admin_user(str(uuid.uuid4()))
],
                         ids=['api_user', 'platform_admin'])
@pytest.mark.parametrize('service', [service_json(active=True), None],
                         ids=['active_service', 'no_service'])
def test_active_service_can_be_modified(app_, method, user, service):
    api_client = NotifyAdminAPIClient(SAMPLE_API_KEY, 'base_url')

    with app_.test_request_context() as request_context, app_.test_client(
    ) as client:
        client.login(user)
        request_context.service = service

        with patch.object(api_client, 'request') as request:
            ret = getattr(api_client, method)('url', 'data')