mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-02 17:48:50 -04:00
cleanup
This commit is contained in:
@@ -431,71 +431,6 @@ def test_existing_signed_out_user_accept_invite_redirects_to_sign_in(
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("_mock_no_users_for_service")
|
||||
def test_new_user_accept_invite_calls_api_and_redirects_to_registration(
|
||||
client_request,
|
||||
service_one,
|
||||
mock_check_invite_token,
|
||||
mock_dont_get_user_by_email,
|
||||
mock_add_user_to_service,
|
||||
mock_get_service,
|
||||
mocker,
|
||||
):
|
||||
client_request.logout()
|
||||
client_request.get(
|
||||
"main.accept_invite",
|
||||
token="thisisnotarealtoken",
|
||||
_expected_redirect="/register-from-invite",
|
||||
)
|
||||
|
||||
mock_check_invite_token.assert_called_with("thisisnotarealtoken")
|
||||
mock_dont_get_user_by_email.assert_called_with("invited_user@test.gsa.gov")
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("_mock_no_users_for_service")
|
||||
def test_new_user_accept_invite_calls_api_and_views_registration_page(
|
||||
client_request,
|
||||
service_one,
|
||||
sample_invite,
|
||||
mock_check_invite_token,
|
||||
mock_dont_get_user_by_email,
|
||||
mock_get_invited_user_by_id,
|
||||
mock_add_user_to_service,
|
||||
mock_get_service,
|
||||
mocker,
|
||||
):
|
||||
client_request.logout()
|
||||
page = client_request.get(
|
||||
"main.accept_invite",
|
||||
token="thisisnotarealtoken",
|
||||
_follow_redirects=True,
|
||||
)
|
||||
|
||||
mock_check_invite_token.assert_called_with("thisisnotarealtoken")
|
||||
mock_dont_get_user_by_email.assert_called_with("invited_user@test.gsa.gov")
|
||||
mock_get_invited_user_by_id.assert_called_once_with(sample_invite["id"])
|
||||
|
||||
assert page.h1.string.strip() == "Create an account"
|
||||
|
||||
assert normalize_spaces(page.select_one("main p").text) == (
|
||||
"Your account will be created with this email address: "
|
||||
"invited_user@test.gsa.gov"
|
||||
)
|
||||
|
||||
form = page.find("form")
|
||||
name = form.find("input", id="name")
|
||||
password = form.find("input", id="password")
|
||||
service = form.find("input", type="hidden", id="service")
|
||||
email = form.find("input", type="hidden", id="email_address")
|
||||
|
||||
assert email
|
||||
assert email.attrs["value"] == "invited_user@test.gsa.gov"
|
||||
assert name
|
||||
assert password
|
||||
assert service
|
||||
assert service.attrs["value"] == service_one["id"]
|
||||
|
||||
|
||||
def test_cancelled_invited_user_accepts_invited_redirect_to_cancelled_invitation(
|
||||
client_request,
|
||||
mock_get_user,
|
||||
@@ -562,65 +497,6 @@ def test_new_user_accept_invite_with_malformed_token(
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("_mock_no_users_for_service")
|
||||
def test_new_user_accept_invite_completes_new_registration_redirects_to_verify(
|
||||
client_request,
|
||||
service_one,
|
||||
sample_invite,
|
||||
api_user_active,
|
||||
mock_check_invite_token,
|
||||
mock_dont_get_user_by_email,
|
||||
mock_email_is_not_already_in_use,
|
||||
mock_register_user,
|
||||
mock_send_verify_code,
|
||||
mock_get_invited_user_by_id,
|
||||
mock_accept_invite,
|
||||
mock_add_user_to_service,
|
||||
mock_get_service,
|
||||
mocker,
|
||||
):
|
||||
client_request.logout()
|
||||
expected_redirect_location = "/register-from-invite"
|
||||
|
||||
client_request.get(
|
||||
"main.accept_invite",
|
||||
token="thisisnotarealtoken",
|
||||
_expected_redirect=expected_redirect_location,
|
||||
)
|
||||
with client_request.session_transaction() as session:
|
||||
assert session.get("invited_user_id") == sample_invite["id"]
|
||||
|
||||
data = {
|
||||
"service": sample_invite["service"],
|
||||
"email_address": sample_invite["email_address"],
|
||||
"from_user": sample_invite["from_user"],
|
||||
"password": "longpassword",
|
||||
"mobile_number": "+12027890123",
|
||||
"name": "Invited User",
|
||||
"auth_type": "email_auth",
|
||||
}
|
||||
|
||||
expected_redirect_location = "/verify"
|
||||
client_request.post(
|
||||
"main.register_from_invite",
|
||||
_data=data,
|
||||
_expected_redirect=expected_redirect_location,
|
||||
)
|
||||
|
||||
mock_send_verify_code.assert_called_once_with(ANY, "sms", data["mobile_number"])
|
||||
mock_get_invited_user_by_id.assert_called_once_with(sample_invite["id"])
|
||||
|
||||
mock_register_user.assert_called_with(
|
||||
data["name"],
|
||||
data["email_address"],
|
||||
data["mobile_number"],
|
||||
data["password"],
|
||||
data["auth_type"],
|
||||
)
|
||||
|
||||
assert mock_accept_invite.call_count == 1
|
||||
|
||||
|
||||
def test_signed_in_existing_user_cannot_use_anothers_invite(
|
||||
client_request,
|
||||
mocker,
|
||||
|
||||
@@ -219,144 +219,6 @@ def test_register_with_existing_email_sends_emails(
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
("email_address", "expected_value"),
|
||||
[
|
||||
("first.last@example.com", "First Last"),
|
||||
("first.middle.last@example.com", "First Middle Last"),
|
||||
("first.m.last@example.com", "First Last"),
|
||||
("first.last-last@example.com", "First Last-Last"),
|
||||
("first.o'last@example.com", "First O’Last"),
|
||||
("first.last+testing@example.com", "First Last"),
|
||||
("first.last+testing+testing@example.com", "First Last"),
|
||||
("first.last6@example.com", "First Last"),
|
||||
("first.last.212@example.com", "First Last"),
|
||||
("first.2.last@example.com", "First Last"),
|
||||
("first.2b.last@example.com", "First Last"),
|
||||
("first.1.2.3.last@example.com", "First Last"),
|
||||
("first.last.1.2.3@example.com", "First Last"),
|
||||
# Instances where we can’t make a good-enough guess:
|
||||
("example123@example.com", None),
|
||||
("f.last@example.com", None),
|
||||
("f.m.last@example.com", None),
|
||||
],
|
||||
)
|
||||
def test_shows_name_on_registration_page_from_invite(
|
||||
client_request,
|
||||
fake_uuid,
|
||||
email_address,
|
||||
expected_value,
|
||||
sample_invite,
|
||||
mock_get_invited_user_by_id,
|
||||
):
|
||||
sample_invite["email_address"] = email_address
|
||||
with client_request.session_transaction() as session:
|
||||
session["invited_user_id"] = sample_invite
|
||||
|
||||
page = client_request.get("main.register_from_invite")
|
||||
assert page.select_one("input[name=name]").get("value") == expected_value
|
||||
|
||||
|
||||
def test_shows_hidden_email_address_on_registration_page_from_invite(
|
||||
client_request,
|
||||
fake_uuid,
|
||||
sample_invite,
|
||||
mock_get_invited_user_by_id,
|
||||
):
|
||||
with client_request.session_transaction() as session:
|
||||
session["invited_user_id"] = sample_invite
|
||||
|
||||
page = client_request.get("main.register_from_invite")
|
||||
assert normalize_spaces(page.select_one("main p").text) == (
|
||||
"Your account will be created with this email address: invited_user@test.gsa.gov"
|
||||
)
|
||||
hidden_input = page.select_one("form .usa-sr-only input")
|
||||
for attr, value in (
|
||||
("type", "email"),
|
||||
("name", "username"),
|
||||
("id", "username"),
|
||||
("value", "invited_user@test.gsa.gov"),
|
||||
("disabled", "disabled"),
|
||||
("tabindex", "-1"),
|
||||
("aria-hidden", "true"),
|
||||
("autocomplete", "username"),
|
||||
):
|
||||
assert hidden_input[attr] == value
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"extra_data",
|
||||
[
|
||||
{},
|
||||
# The username field is present in the page but the POST request
|
||||
# should ignore it
|
||||
{"username": "invited@user.com"},
|
||||
{"username": "anythingelse@example.com"},
|
||||
],
|
||||
)
|
||||
def test_register_from_invite(
|
||||
client_request,
|
||||
fake_uuid,
|
||||
mock_email_is_not_already_in_use,
|
||||
mock_register_user,
|
||||
mock_send_verify_code,
|
||||
mock_accept_invite,
|
||||
mock_get_invited_user_by_id,
|
||||
sample_invite,
|
||||
extra_data,
|
||||
):
|
||||
client_request.logout()
|
||||
with client_request.session_transaction() as session:
|
||||
session["invited_user_id"] = sample_invite["id"]
|
||||
client_request.post(
|
||||
"main.register_from_invite",
|
||||
_data=dict(
|
||||
name="Registered in another Browser",
|
||||
email_address=sample_invite["email_address"],
|
||||
mobile_number="+12024900460",
|
||||
service=sample_invite["service"],
|
||||
password="somreallyhardthingtoguess",
|
||||
auth_type="sms_auth",
|
||||
**extra_data,
|
||||
),
|
||||
_expected_redirect=url_for("main.verify"),
|
||||
)
|
||||
mock_register_user.assert_called_once_with(
|
||||
"Registered in another Browser",
|
||||
sample_invite["email_address"],
|
||||
"+12024900460",
|
||||
"somreallyhardthingtoguess",
|
||||
"sms_auth",
|
||||
)
|
||||
mock_get_invited_user_by_id.assert_called_once_with(sample_invite["id"])
|
||||
|
||||
|
||||
def test_register_from_invite_when_user_registers_in_another_browser(
|
||||
client_request,
|
||||
api_user_active,
|
||||
mock_get_user_by_email,
|
||||
mock_accept_invite,
|
||||
mock_get_invited_user_by_id,
|
||||
sample_invite,
|
||||
):
|
||||
client_request.logout()
|
||||
sample_invite["email_address"] = api_user_active["email_address"]
|
||||
with client_request.session_transaction() as session:
|
||||
session["invited_user_id"] = sample_invite["id"]
|
||||
client_request.post(
|
||||
"main.register_from_invite",
|
||||
_data={
|
||||
"name": "Registered in another Browser",
|
||||
"email_address": api_user_active["email_address"],
|
||||
"mobile_number": api_user_active["mobile_number"],
|
||||
"service": sample_invite["service"],
|
||||
"password": "somreallyhardthingtoguess",
|
||||
"auth_type": "sms_auth",
|
||||
},
|
||||
_expected_redirect=url_for("main.verify"),
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"invite_email_address", ["gov-user@gsa.gov", "non-gov-user@example.com"]
|
||||
)
|
||||
@@ -520,24 +382,6 @@ def test_cannot_register_with_sms_auth_and_missing_mobile_number(
|
||||
assert err.attrs["data-error-label"] == "mobile_number"
|
||||
|
||||
|
||||
def test_register_from_invite_form_doesnt_show_mobile_number_field_if_email_auth(
|
||||
client_request,
|
||||
sample_invite,
|
||||
mock_get_invited_user_by_id,
|
||||
):
|
||||
client_request.logout()
|
||||
sample_invite["auth_type"] = "email_auth"
|
||||
with client_request.session_transaction() as session:
|
||||
session["invited_user_id"] = sample_invite["id"]
|
||||
|
||||
page = client_request.get("main.register_from_invite")
|
||||
|
||||
assert (
|
||||
page.find("input", attrs={"name": "auth_type"}).attrs["value"] == "email_auth"
|
||||
)
|
||||
assert page.find("input", attrs={"name": "mobile_number"}) is None
|
||||
|
||||
|
||||
def test_handle_login_dot_gov_invite_bad_email(client_request, mocker):
|
||||
|
||||
mocker.patch(
|
||||
|
||||
@@ -146,7 +146,6 @@ EXCLUDED_ENDPOINTS = tuple(
|
||||
"received_text_messages_callback",
|
||||
"redact_template",
|
||||
"register",
|
||||
"register_from_invite",
|
||||
"register_from_org_invite",
|
||||
"registration_continue",
|
||||
"remove_user_from_organization",
|
||||
|
||||
Reference in New Issue
Block a user