mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-07-29 20:48:30 -04:00
Merge branch 'master' into download_link-activity-page
This commit is contained in:
@@ -315,6 +315,29 @@ def test_signed_in_existing_user_cannot_use_anothers_invite(
|
||||
assert mock_accept_invite.call_count == 0
|
||||
|
||||
|
||||
def test_accept_invite_does_not_treat_email_addresses_as_case_sensitive(
|
||||
logged_in_client,
|
||||
mocker,
|
||||
api_user_active,
|
||||
sample_invite,
|
||||
service_one,
|
||||
mock_accept_invite,
|
||||
mock_get_user_by_email
|
||||
):
|
||||
mocker.patch('app.main.views.invites.check_token')
|
||||
|
||||
# the email address of api_user_active is 'test@user.gov.uk'
|
||||
sample_invite['email_address'] = 'TEST@user.gov.uk'
|
||||
invite = InvitedUser(**sample_invite)
|
||||
mocker.patch('app.invite_api_client.check_token', return_value=invite)
|
||||
mocker.patch('app.user_api_client.get_users_for_service', return_value=[api_user_active])
|
||||
|
||||
response = logged_in_client.get(url_for('main.accept_invite', token='thisisnotarealtoken'))
|
||||
|
||||
assert response.status_code == 302
|
||||
assert response.location == url_for('main.service_dashboard', service_id=service_one['id'], _external=True)
|
||||
|
||||
|
||||
def test_new_invited_user_verifies_and_added_to_service(
|
||||
client,
|
||||
service_one,
|
||||
|
||||
@@ -97,7 +97,7 @@ def test_should_show_page_for_one_job(
|
||||
job_id=fake_uuid,
|
||||
status=status_argument,
|
||||
)
|
||||
csv_link = page.find('a', {'download': 'download'})
|
||||
csv_link = page.select_one('a[download]')
|
||||
assert csv_link['href'] == url_for(
|
||||
'main.view_job_csv',
|
||||
service_id=service_one['id'],
|
||||
|
||||
@@ -170,3 +170,30 @@ def test_should_attempt_redirect_when_user_is_pending(
|
||||
'password': 'val1dPassw0rd!'})
|
||||
assert response.location == url_for('main.resend_email_verification', _external=True)
|
||||
assert response.status_code == 302
|
||||
|
||||
|
||||
def test_email_address_is_treated_case_insensitively_when_signing_in_as_invited_user(
|
||||
client,
|
||||
mocker,
|
||||
mock_verify_password,
|
||||
api_user_active,
|
||||
sample_invite,
|
||||
mock_accept_invite,
|
||||
mock_send_verify_code
|
||||
):
|
||||
sample_invite['email_address'] = 'TEST@user.gov.uk'
|
||||
|
||||
mocker.patch('app.user_api_client.get_user_by_email_or_none', return_value=api_user_active)
|
||||
mocker.patch('app.main.views.sign_in._get_and_verify_user', return_value=api_user_active)
|
||||
|
||||
with client.session_transaction() as session:
|
||||
session['invited_user'] = sample_invite
|
||||
|
||||
response = client.post(
|
||||
url_for('main.sign_in'), data={
|
||||
'email_address': 'test@user.gov.uk',
|
||||
'password': 'val1dPassw0rd!'})
|
||||
|
||||
assert mock_accept_invite.called
|
||||
assert response.status_code == 302
|
||||
assert mock_send_verify_code.called
|
||||
|
||||
@@ -1,4 +1,40 @@
|
||||
from app.notify_client.invite_api_client import InviteApiClient
|
||||
from unittest.mock import ANY
|
||||
from app import invite_api_client
|
||||
|
||||
|
||||
def test_client_creates_invite(
|
||||
app_,
|
||||
mocker,
|
||||
fake_uuid,
|
||||
sample_invite,
|
||||
):
|
||||
|
||||
mocker.patch('app.notify_client.current_user')
|
||||
|
||||
mock_post = mocker.patch(
|
||||
'app.invite_api_client.post',
|
||||
return_value={'data': dict.fromkeys({
|
||||
'id', 'service', 'from_user', 'email_address',
|
||||
'permissions', 'status', 'created_at', 'auth_type'
|
||||
})}
|
||||
)
|
||||
|
||||
invite_api_client.create_invite(
|
||||
'12345', '67890', 'test@example.com', 'send_messages', 'sms_auth'
|
||||
)
|
||||
|
||||
mock_post.assert_called_once_with(
|
||||
url='/service/{}/invite'.format('67890'),
|
||||
data={
|
||||
'auth_type': 'sms_auth',
|
||||
'email_address': 'test@example.com',
|
||||
'from_user': '12345',
|
||||
'service': '67890',
|
||||
'created_by': ANY,
|
||||
'permissions': 'send_messages',
|
||||
'invite_link_host': 'http://localhost:6012',
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
def test_client_returns_invite(mocker, sample_invite):
|
||||
@@ -10,10 +46,9 @@ def test_client_returns_invite(mocker, sample_invite):
|
||||
|
||||
expected_url = '/service/{}/invite'.format(service_id)
|
||||
|
||||
client = InviteApiClient()
|
||||
mock_get = mocker.patch('app.notify_client.invite_api_client.InviteApiClient.get', return_value=expected_data)
|
||||
|
||||
invites = client.get_invites_for_service(service_id)
|
||||
invites = invite_api_client.get_invites_for_service(service_id)
|
||||
|
||||
mock_get.assert_called_once_with(expected_url)
|
||||
assert len(invites) == 1
|
||||
|
||||
Reference in New Issue
Block a user