mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-11 10:28:41 -04:00
ugh
This commit is contained in:
+4
-4
@@ -527,7 +527,7 @@
|
|||||||
"filename": "tests/app/main/views/test_register.py",
|
"filename": "tests/app/main/views/test_register.py",
|
||||||
"hashed_secret": "bdbb156d25d02fd7792865824201dda1c60f4473",
|
"hashed_secret": "bdbb156d25d02fd7792865824201dda1c60f4473",
|
||||||
"is_verified": false,
|
"is_verified": false,
|
||||||
"line_number": 118,
|
"line_number": 111,
|
||||||
"is_secret": false
|
"is_secret": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -535,7 +535,7 @@
|
|||||||
"filename": "tests/app/main/views/test_register.py",
|
"filename": "tests/app/main/views/test_register.py",
|
||||||
"hashed_secret": "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8",
|
"hashed_secret": "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8",
|
||||||
"is_verified": false,
|
"is_verified": false,
|
||||||
"line_number": 188,
|
"line_number": 172,
|
||||||
"is_secret": false
|
"is_secret": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -543,7 +543,7 @@
|
|||||||
"filename": "tests/app/main/views/test_register.py",
|
"filename": "tests/app/main/views/test_register.py",
|
||||||
"hashed_secret": "bb5b7caa27d005d38039e3797c3ddb9bcd22c3c8",
|
"hashed_secret": "bb5b7caa27d005d38039e3797c3ddb9bcd22c3c8",
|
||||||
"is_verified": false,
|
"is_verified": false,
|
||||||
"line_number": 259,
|
"line_number": 243,
|
||||||
"is_secret": false
|
"is_secret": false
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -634,5 +634,5 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"generated_at": "2025-09-09T19:57:05Z"
|
"generated_at": "2025-09-17T19:16:00Z"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ import uuid
|
|||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
from flask import url_for
|
from flask import url_for
|
||||||
|
from hypothesis import HealthCheck, given, settings
|
||||||
|
from hypothesis import strategies as st
|
||||||
|
|
||||||
import app
|
import app
|
||||||
from app.enums import ServicePermission
|
from app.enums import ServicePermission
|
||||||
@@ -1219,16 +1221,37 @@ def test_cancel_invited_user_cancels_user_invitations(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
# @pytest.mark.usefixtures(
|
||||||
|
# "client_request",
|
||||||
|
# "mocker",
|
||||||
|
# )
|
||||||
|
# def test_cancel_invited_user_doesnt_work_if_user_not_invited_to_this_service(
|
||||||
|
# client_request,
|
||||||
|
# mocker,
|
||||||
|
# ):
|
||||||
|
# @given(fuzzed_uuid=st.uuids())
|
||||||
|
# def inner(fuzzed_uuid):
|
||||||
|
# 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=fuzzed_uuid,
|
||||||
|
# _expected_status=404,
|
||||||
|
# )
|
||||||
|
# assert mock_cancel.called is False
|
||||||
|
|
||||||
|
# inner()
|
||||||
|
|
||||||
|
|
||||||
def test_cancel_invited_user_doesnt_work_if_user_not_invited_to_this_service(
|
def test_cancel_invited_user_doesnt_work_if_user_not_invited_to_this_service(
|
||||||
client_request,
|
client_request,
|
||||||
mock_get_invites_for_service,
|
|
||||||
mocker,
|
mocker,
|
||||||
):
|
):
|
||||||
mock_cancel = mocker.patch("app.invite_api_client.cancel_invited_user")
|
mock_cancel = mocker.patch("app.invite_api_client.cancel_invited_user")
|
||||||
client_request.get(
|
client_request.get(
|
||||||
"main.cancel_invited_user",
|
"main.cancel_invited_user",
|
||||||
service_id=SERVICE_ONE_ID,
|
service_id=SERVICE_ONE_ID,
|
||||||
invited_user_id=sample_uuid(),
|
invited_user_id="6ce466d0-fd6a-11e5-82f5-e0accb9d11a6",
|
||||||
_expected_status=404,
|
_expected_status=404,
|
||||||
)
|
)
|
||||||
assert mock_cancel.called is False
|
assert mock_cancel.called is False
|
||||||
|
|||||||
@@ -3,7 +3,9 @@ import json
|
|||||||
from unittest.mock import ANY
|
from unittest.mock import ANY
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
from flask import url_for
|
from flask import current_app, url_for
|
||||||
|
from hypothesis import HealthCheck, given, settings
|
||||||
|
from hypothesis import strategies as st
|
||||||
|
|
||||||
from app.enums import ServicePermission
|
from app.enums import ServicePermission
|
||||||
from app.main.views.register import (
|
from app.main.views.register import (
|
||||||
@@ -78,15 +80,6 @@ def test_register_creates_new_user_and_redirects_to_continue_page(
|
|||||||
== "An email has been sent to notfound@example.gsa.gov."
|
== "An email has been sent to notfound@example.gsa.gov."
|
||||||
)
|
)
|
||||||
|
|
||||||
# mock_send_verify_email.assert_called_with(ANY, user_data["email_address"])
|
|
||||||
# mock_register_user.assert_called_with(
|
|
||||||
# user_data["name"],
|
|
||||||
# user_data["email_address"],
|
|
||||||
# user_data["mobile_number"],
|
|
||||||
# user_data["password"],
|
|
||||||
# user_data["auth_type"],
|
|
||||||
# )
|
|
||||||
|
|
||||||
|
|
||||||
def test_register_continue_handles_missing_session_sensibly(client_request, mocker):
|
def test_register_continue_handles_missing_session_sensibly(client_request, mocker):
|
||||||
|
|
||||||
@@ -139,33 +132,24 @@ def test_should_return_200_when_email_is_not_gov_uk(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@settings(suppress_health_check=[HealthCheck.function_scoped_fixture])
|
||||||
"email_address",
|
@given(
|
||||||
[
|
fuzzed_email_address=st.from_regex(
|
||||||
"notfound@example.gsa.gov",
|
r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}", fullmatch=True
|
||||||
"example@lsquo.si.edu",
|
)
|
||||||
],
|
|
||||||
)
|
)
|
||||||
def test_should_add_user_details_to_session(
|
def test_should_add_user_details_to_session(
|
||||||
client_request,
|
client_request,
|
||||||
mocker,
|
mocker,
|
||||||
mock_send_verify_code,
|
fuzzed_email_address,
|
||||||
mock_register_user,
|
|
||||||
mock_get_user_by_email_not_found,
|
|
||||||
mock_get_organizations_with_unusual_domains,
|
|
||||||
mock_email_is_not_already_in_use,
|
|
||||||
mock_send_verify_email,
|
|
||||||
mock_login,
|
|
||||||
email_address,
|
|
||||||
):
|
):
|
||||||
|
|
||||||
mocker.patch("app.notify_client.user_api_client.UserApiClient.deactivate_user")
|
mocker.patch("app.notify_client.user_api_client.UserApiClient.deactivate_user")
|
||||||
client_request.logout()
|
client_request.logout()
|
||||||
client_request.post(
|
client_request.post(
|
||||||
"main.register",
|
"main.register",
|
||||||
_data={
|
_data={
|
||||||
"name": "Test Codes",
|
"name": "Test Codes",
|
||||||
"email_address": email_address,
|
"email_address": fuzzed_email_address,
|
||||||
"mobile_number": "+12023123123",
|
"mobile_number": "+12023123123",
|
||||||
"password": "validPassword!",
|
"password": "validPassword!",
|
||||||
},
|
},
|
||||||
@@ -451,12 +435,6 @@ def test_decode_state(encoded_invite_data):
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# @pytest.mark.parametrize(
|
|
||||||
# ("user_services", "user_organizations", "expected_status", "organization_checked"),
|
|
||||||
# [
|
|
||||||
# ([SERVICE_ONE_ID], [], 200, False),
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
("invite_data", "expected_is_org_invite", "expected_user_id"),
|
("invite_data", "expected_is_org_invite", "expected_user_id"),
|
||||||
[
|
[
|
||||||
|
|||||||
@@ -14,8 +14,6 @@ from zipfile import BadZipFile
|
|||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
from flask import url_for
|
from flask import url_for
|
||||||
from hypothesis import HealthCheck, given, settings
|
|
||||||
from hypothesis import strategies as st
|
|
||||||
from xlrd.biffh import XLRDError
|
from xlrd.biffh import XLRDError
|
||||||
from xlrd.xldate import XLDateAmbiguous, XLDateError, XLDateNegative, XLDateTooLarge
|
from xlrd.xldate import XLDateAmbiguous, XLDateError, XLDateNegative, XLDateTooLarge
|
||||||
|
|
||||||
@@ -106,78 +104,6 @@ test_spreadsheet_files = glob(path.join("tests", "spreadsheet_files", "*"))
|
|||||||
test_non_spreadsheet_files = glob(path.join("tests", "non_spreadsheet_files", "*"))
|
test_non_spreadsheet_files = glob(path.join("tests", "non_spreadsheet_files", "*"))
|
||||||
|
|
||||||
|
|
||||||
@settings(max_examples=10, suppress_health_check=[HealthCheck.function_scoped_fixture])
|
|
||||||
@given(
|
|
||||||
rows=st.integers(min_value=1, max_value=10),
|
|
||||||
rows_data=st.lists(
|
|
||||||
st.tuples(
|
|
||||||
st.text(
|
|
||||||
min_size=10,
|
|
||||||
max_size=15,
|
|
||||||
alphabet=st.characters(min_codepoint=ord("0"), max_codepoint=ord("9")),
|
|
||||||
),
|
|
||||||
st.text(
|
|
||||||
min_size=1,
|
|
||||||
max_size=20,
|
|
||||||
alphabet=st.characters(whitelist_categories=["L", "N", "Zs"]),
|
|
||||||
),
|
|
||||||
st.text(
|
|
||||||
min_size=1,
|
|
||||||
max_size=20,
|
|
||||||
alphabet=st.characters(whitelist_categories=["L", "N", "Zs"]),
|
|
||||||
),
|
|
||||||
st.text(
|
|
||||||
min_size=1,
|
|
||||||
max_size=20,
|
|
||||||
alphabet=st.characters(whitelist_categories=["L", "N", "Zs"]),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
min_size=1,
|
|
||||||
max_size=10,
|
|
||||||
),
|
|
||||||
)
|
|
||||||
def test_fuzz_upload_csv_batch_sms_handles_bad_and_good_input(
|
|
||||||
rows, rows_data, client_request, mocker, fake_uuid
|
|
||||||
):
|
|
||||||
|
|
||||||
mock_s3_set_metadata = mocker.patch(
|
|
||||||
"app.main.views.send.set_metadata_on_csv_upload"
|
|
||||||
)
|
|
||||||
mock_s3_upload = mocker.patch("app.main.views.send.s3upload")
|
|
||||||
|
|
||||||
mocker.patch(
|
|
||||||
"app.main.views.send.get_csv_metadata",
|
|
||||||
return_value={"original_file_name": "fuzz.csv"},
|
|
||||||
)
|
|
||||||
|
|
||||||
output = io.StringIO()
|
|
||||||
writer = csv.writer(output)
|
|
||||||
writer.writerow(["phone_number", "name", "favourite colour", "fruit"])
|
|
||||||
for row in rows_data[: min(rows, len(rows_data))]:
|
|
||||||
writer.writerow(row)
|
|
||||||
csv_content = output.getvalue()
|
|
||||||
|
|
||||||
try:
|
|
||||||
client_request.post(
|
|
||||||
"main.send_messages",
|
|
||||||
service_id=SERVICE_ONE_ID,
|
|
||||||
template_id=fake_uuid,
|
|
||||||
_data={"file": (io.BytesIO(csv_content.encode("utf-8")), "fuzz.csv")},
|
|
||||||
_content_type="multipart/form-data",
|
|
||||||
_follows_redirects=False,
|
|
||||||
)
|
|
||||||
except Exception:
|
|
||||||
print("Generated CSV that caused 500:\n", csv_content) # noqa
|
|
||||||
raise
|
|
||||||
|
|
||||||
assert mock_s3_upload.called
|
|
||||||
uploaded_data = mock_s3_upload.call_args[0][1]["data"].strip()
|
|
||||||
assert "phone number" in uploaded_data
|
|
||||||
mock_s3_set_metadata.assert_called_once_with(
|
|
||||||
SERVICE_ONE_ID, ANY, original_file_name="fuzz.csv"
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def test_show_correct_title_and_description_for_email_sender_type(
|
def test_show_correct_title_and_description_for_email_sender_type(
|
||||||
client_request,
|
client_request,
|
||||||
fake_uuid,
|
fake_uuid,
|
||||||
|
|||||||
Reference in New Issue
Block a user