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)
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(), )
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
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"
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
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
) # [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 ),
('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', (
'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
), ( { "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