Ejemplo n.º 1
0
def test_user_with_no_mobile_number_cant_be_set_to_sms_auth(
    client_request,
    mock_get_users_by_service,
    mock_get_template_folders,
    sms_option_disabled,
    mobile_number,
    expected_label,
    service_one,
    mocker,
    active_user_with_permissions,
):
    active_user_with_permissions['mobile_number'] = mobile_number

    service_one['permissions'].append('email_auth')
    mocker.patch('app.user_api_client.get_user', return_value=active_user_with_permissions)

    page = client_request.get(
        'main.edit_user_permissions',
        service_id=service_one['id'],
        user_id=sample_uuid(),
    )

    sms_auth_radio_button = page.select_one('input[value="sms_auth"]')
    assert sms_auth_radio_button.has_attr("disabled") == sms_option_disabled
    assert normalize_spaces(
        page.select_one('label[for=login_authentication-0]').text
    ) == normalize_spaces(expected_label)
Ejemplo n.º 2
0
def test_cancel_invited_user_cancels_user_invitations(
    client_request,
    mock_get_invites_for_service,
    active_user_with_permissions,
    mocker,
):
    mock_cancel = mocker.patch('app.invite_api_client.cancel_invited_user')
    client_request.get(
        'main.cancel_invited_user',
        service_id=SERVICE_ONE_ID,
        invited_user_id=sample_uuid(),
        _expected_status=302,
        _expected_redirect=url_for('main.manage_users',
                                   service_id=SERVICE_ONE_ID,
                                   _external=True),
    )
    mock_cancel.assert_called_once_with(
        service_id=SERVICE_ONE_ID,
        invited_user_id=sample_uuid(),
    )
Ejemplo n.º 3
0
def test_cancel_invited_user_doesnt_work_if_user_not_invited_to_this_service(
    client_request,
    mock_get_invites_for_service,
    mocker,
):
    mock_cancel = mocker.patch('app.invite_api_client.cancel_invited_user')
    client_request.get(
        'main.cancel_invited_user',
        service_id=SERVICE_ONE_ID,
        invited_user_id=sample_uuid(),
        _expected_status=404,
    )
    assert mock_cancel.called is False
Ejemplo n.º 4
0
def test_edit_user_email_page(client_request, active_user_with_permissions,
                              service_one, mock_get_users_by_service, mocker):
    user = active_user_with_permissions
    mocker.patch('app.user_api_client.get_user', return_value=user)

    page = client_request.get('main.edit_user_email',
                              service_id=service_one['id'],
                              user_id=sample_uuid())

    assert page.find('h1').text == "Change team member’s email address"
    assert page.select('p[id=user_name]')[
        0].text == "This will change the email address for {}.".format(
            user.name)
    assert page.select(
        'input[type=email]')[0].attrs["value"] == user.email_address
    assert page.select('button[type=submit]')[0].text == "Save"
Ejemplo n.º 5
0
def test_service_event(
    key,
    value_from,
    value_to,
    expected,
):
    event = ServiceEvent(
        {
            'created_at': 'foo',
            'updated_at': 'bar',
            'created_by_id': sample_uuid(),
        },
        key,
        value_from,
        value_to,
    )
    assert event.relevant is True
    assert str(event) == expected
Ejemplo n.º 6
0
    logo_svg_fallback = page.select_one('.govuk-header__logotype-crown-fallback-image')

    assert logo_svg_fallback['src'].startswith('https://static.example.com/images/govuk-logotype-crown.png')


@pytest.mark.parametrize('extra_args, email_branding_retrieved', (
    (
        {},
        False,
    ),
    (
        {'branding_style': '__NONE__'},
        False,
    ),
    (
        {'branding_style': sample_uuid()},
        True,
    ),
))
def test_email_branding_preview(
    client_request,
    mock_get_email_branding,
    extra_args,
    email_branding_retrieved,
):
    client_request.get(
        'main.email_template',
        _test_page_title=False,
        **extra_args
    )
    assert mock_get_email_branding.called is email_branding_retrieved
Ejemplo n.º 7
0
    )
    # [1:5] are invited users
    assert normalize_spaces(page.select('.user-list-item')[6].text) == (
        'Test User [email protected] '
        'Cannot See dashboard '
        'Can Send messages '
        'Cannot Add and edit templates '
        'Cannot Manage settings, team and usage '
        'Cannot Manage API integration'
    )


@pytest.mark.parametrize('endpoint, extra_args, service_has_email_auth, auth_options_hidden', [
    (
        'main.edit_user_permissions',
        {'user_id': sample_uuid()},
        True,
        False
    ),
    (
        'main.edit_user_permissions',
        {'user_id': sample_uuid()},
        False,
        True
    ),
    (
        'main.invite_user',
        {},
        True,
        False
    ),
Ejemplo n.º 8
0
 ('active', False, True, (
     'Unsuspended this service'
 )),
 ('active', True, False, (
     'Deleted this service'
 )),
 ('contact_link', 'x', 'y', (
     'Set the contact details for this service to ‘y’'
 )),
 ('email_branding', 'foo', 'bar', (
     'Updated this service’s email branding'
 )),
 ('inbound_api', 'foo', 'bar', (
     'Updated the callback for received text messages'
 )),
 ('letter_branding', None, sample_uuid(), (
     'Updated the logo on this service’s letters'
 )),
 ('letter_branding', sample_uuid(), None, (
     'Removed the logo from this service’s letters'
 )),
 ('letter_contact_block', None, sample_uuid(), (
     'Updated the default letter contact block for this service'
 )),
 ('message_limit', 1, 2, (
     'Increased this service’s daily message limit from 1 to 2'
 )),
 ('message_limit', 2, 1, (
     'Reduced this service’s daily message limit from 2 to 1'
 )),
 ('name', 'Old', 'New', (
Ejemplo n.º 9
0
        'Can’t Manage settings, team and usage '
        'Can’t Manage API integration')
    # [1:5] are invited users
    assert normalize_spaces(page.select('.user-list-item')[6].text) == (
        'Test User [email protected] '
        'Can’t See dashboard '
        'Can Send messages '
        'Can’t Add and edit templates '
        'Can’t Manage settings, team and usage '
        'Can’t Manage API integration')


@pytest.mark.parametrize(
    'endpoint, extra_args, service_has_email_auth, auth_options_hidden',
    [('main.edit_user_permissions', {
        'user_id': sample_uuid()
    }, True, False),
     ('main.edit_user_permissions', {
         'user_id': sample_uuid()
     }, False, True), ('main.invite_user', {}, True, False),
     ('main.invite_user', {}, False, True)])
def test_service_with_no_email_auth_hides_auth_type_options(
        client_request, endpoint, extra_args, service_has_email_auth,
        auth_options_hidden, service_one, mock_get_users_by_service,
        mock_get_template_folders):
    if service_has_email_auth:
        service_one['permissions'].append('email_auth')
    page = client_request.get(endpoint,
                              service_id=service_one['id'],
                              **extra_args)
    assert (page.find('input', attrs={"name": "login_authentication"}) is
Ejemplo n.º 10
0
        ),
        (
            {
                "branding_style": "__FIP-EN__"
            },
            False,
        ),
        (
            {
                "branding_style": "__FIP-FR__"
            },
            False,
        ),
        (
            {
                "branding_style": sample_uuid()
            },
            True,
        ),
    ),
)
def test_email_branding_preview(
    client_request,
    mock_get_email_branding,
    extra_args,
    email_branding_retrieved,
):
    client_request.get("main.email_template",
                       _test_page_title=False,
                       **extra_args)
    assert mock_get_email_branding.called is email_branding_retrieved