mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-06 03:13:42 -05:00
some fixes
This commit is contained in:
2
poetry.lock
generated
2
poetry.lock
generated
@@ -1278,6 +1278,7 @@ files = [
|
||||
{file = "lxml-5.2.1-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c38d7b9a690b090de999835f0443d8aa93ce5f2064035dfc48f27f02b4afc3d0"},
|
||||
{file = "lxml-5.2.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5670fb70a828663cc37552a2a85bf2ac38475572b0e9b91283dc09efb52c41d1"},
|
||||
{file = "lxml-5.2.1-cp36-cp36m-manylinux_2_28_x86_64.whl", hash = "sha256:958244ad566c3ffc385f47dddde4145088a0ab893504b54b52c041987a8c1863"},
|
||||
{file = "lxml-5.2.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:b6241d4eee5f89453307c2f2bfa03b50362052ca0af1efecf9fef9a41a22bb4f"},
|
||||
{file = "lxml-5.2.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:2a66bf12fbd4666dd023b6f51223aed3d9f3b40fef06ce404cb75bafd3d89536"},
|
||||
{file = "lxml-5.2.1-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:9123716666e25b7b71c4e1789ec829ed18663152008b58544d95b008ed9e21e9"},
|
||||
{file = "lxml-5.2.1-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:0c3f67e2aeda739d1cc0b1102c9a9129f7dc83901226cc24dd72ba275ced4218"},
|
||||
@@ -1594,6 +1595,7 @@ files = [
|
||||
{file = "msgpack-1.0.8-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5fbb160554e319f7b22ecf530a80a3ff496d38e8e07ae763b9e82fadfe96f273"},
|
||||
{file = "msgpack-1.0.8-cp39-cp39-win32.whl", hash = "sha256:f9af38a89b6a5c04b7d18c492c8ccf2aee7048aff1ce8437c4683bb5a1df893d"},
|
||||
{file = "msgpack-1.0.8-cp39-cp39-win_amd64.whl", hash = "sha256:ed59dd52075f8fc91da6053b12e8c89e37aa043f8986efd89e61fae69dc1b011"},
|
||||
{file = "msgpack-1.0.8-py3-none-any.whl", hash = "sha256:24f727df1e20b9876fa6e95f840a2a2651e34c0ad147676356f4bf5fbb0206ca"},
|
||||
{file = "msgpack-1.0.8.tar.gz", hash = "sha256:95c02b0e27e706e48d0e5426d1710ca78e0f0628d6e89d5b5a5b91a5f12274f3"},
|
||||
]
|
||||
|
||||
|
||||
@@ -8,17 +8,17 @@ from freezegun import freeze_time
|
||||
from notifications_utils.clients.redis.redis_client import RedisClient, prepare_value
|
||||
|
||||
|
||||
@pytest.fixture(scope="function")
|
||||
@pytest.fixture()
|
||||
def mocked_redis_pipeline():
|
||||
return Mock()
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
@pytest.fixture()
|
||||
def delete_mock():
|
||||
return Mock(return_value=4)
|
||||
|
||||
|
||||
@pytest.fixture(scope="function")
|
||||
@pytest.fixture()
|
||||
def mocked_redis_client(app, mocked_redis_pipeline, delete_mock, mocker):
|
||||
app.config["REDIS_ENABLED"] = True
|
||||
|
||||
@@ -46,14 +46,16 @@ def mocked_redis_client(app, mocked_redis_pipeline, delete_mock, mocker):
|
||||
return redis_client
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
@pytest.fixture()
|
||||
def failing_redis_client(mocked_redis_client, delete_mock):
|
||||
mocked_redis_client.redis_store.get.side_effect = Exception("get failed")
|
||||
mocked_redis_client.redis_store.set.side_effect = Exception("set failed")
|
||||
mocked_redis_client.redis_store.incr.side_effect = Exception("incr failed")
|
||||
mocked_redis_client.redis_store.pipeline.side_effect = Exception("pipeline failed")
|
||||
mocked_redis_client.redis_store.delete.side_effect = Exception("delete failed")
|
||||
delete_mock.side_effect = Exception("delete by pattern failed")
|
||||
# nota bene: using KeyError because flake8 thinks Exception
|
||||
# and BaseException are too broad
|
||||
mocked_redis_client.redis_store.get.side_effect = KeyError("get failed")
|
||||
mocked_redis_client.redis_store.set.side_effect = KeyError("set failed")
|
||||
mocked_redis_client.redis_store.incr.side_effect = KeyError("incr failed")
|
||||
mocked_redis_client.redis_store.pipeline.side_effect = KeyError("pipeline failed")
|
||||
mocked_redis_client.redis_store.delete.side_effect = KeyError("delete failed")
|
||||
delete_mock.side_effect = KeyError("delete by pattern failed")
|
||||
return mocked_redis_client
|
||||
|
||||
|
||||
@@ -85,27 +87,27 @@ def test_should_raise_exception_if_raise_set_to_true(
|
||||
app,
|
||||
failing_redis_client,
|
||||
):
|
||||
with pytest.raises(Exception) as e:
|
||||
with pytest.raises(KeyError) as e:
|
||||
failing_redis_client.get("test", raise_exception=True)
|
||||
assert str(e.value) == "get failed"
|
||||
|
||||
with pytest.raises(Exception) as e:
|
||||
with pytest.raises(KeyError) as e:
|
||||
failing_redis_client.set("test", "test", raise_exception=True)
|
||||
assert str(e.value) == "set failed"
|
||||
|
||||
with pytest.raises(Exception) as e:
|
||||
with pytest.raises(KeyError) as e:
|
||||
failing_redis_client.incr("test", raise_exception=True)
|
||||
assert str(e.value) == "incr failed"
|
||||
|
||||
with pytest.raises(Exception) as e:
|
||||
with pytest.raises(KeyError) as e:
|
||||
failing_redis_client.exceeded_rate_limit("test", 100, 200, raise_exception=True)
|
||||
assert str(e.value) == "pipeline failed"
|
||||
|
||||
with pytest.raises(Exception) as e:
|
||||
with pytest.raises(KeyError) as e:
|
||||
failing_redis_client.delete("test", raise_exception=True)
|
||||
assert str(e.value) == "delete failed"
|
||||
|
||||
with pytest.raises(Exception) as e:
|
||||
with pytest.raises(KeyError) as e:
|
||||
failing_redis_client.delete_by_pattern("pattern", raise_exception=True)
|
||||
assert str(e.value) == "delete by pattern failed"
|
||||
|
||||
|
||||
@@ -1044,7 +1044,7 @@ def test_letter_preview_renderer_without_mocks(jinja_template):
|
||||
@freeze_time("2012-12-12 12:12:12")
|
||||
@mock.patch("notifications_utils.template.LetterImageTemplate.jinja_template.render")
|
||||
@pytest.mark.parametrize(
|
||||
"page_count, expected_oversized, expected_page_numbers",
|
||||
("page_count, expected_oversized, expected_page_numbers"),
|
||||
[
|
||||
(
|
||||
1,
|
||||
@@ -1581,7 +1581,7 @@ def test_sms_fragment_count_accounts_for_unicode_and_welsh_characters(
|
||||
),
|
||||
)
|
||||
@pytest.mark.parametrize(
|
||||
"msg, expected_sms_fragment_count",
|
||||
("msg", "expected_sms_fragment_count"),
|
||||
[
|
||||
# all extended GSM characters
|
||||
(
|
||||
@@ -1647,7 +1647,7 @@ def test_sms_fragment_count_accounts_for_non_latin_characters(
|
||||
],
|
||||
)
|
||||
@pytest.mark.parametrize(
|
||||
"content, values, prefix, expected_result",
|
||||
("content", "values", "prefix", "expected_result"),
|
||||
[
|
||||
("", {}, None, True),
|
||||
("", {}, "GDS", True),
|
||||
@@ -1676,7 +1676,7 @@ def test_is_message_empty_sms_templates(
|
||||
],
|
||||
)
|
||||
@pytest.mark.parametrize(
|
||||
"content, values, expected_result",
|
||||
("content", "values", "expected_result"),
|
||||
[
|
||||
("", {}, True),
|
||||
("((placeholder))", {"placeholder": ""}, True),
|
||||
@@ -1696,14 +1696,14 @@ def test_is_message_empty_broadcast_templates(
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"template_class, template_type",
|
||||
("template_class", "template_type"),
|
||||
(
|
||||
(HTMLEmailTemplate, "email"),
|
||||
(LetterPrintTemplate, "letter"),
|
||||
),
|
||||
)
|
||||
@pytest.mark.parametrize(
|
||||
"content, values, expected_result",
|
||||
("content", "values", "expected_result"),
|
||||
[
|
||||
("", {}, True),
|
||||
("((placeholder))", {"placeholder": ""}, True),
|
||||
@@ -1742,7 +1742,7 @@ def test_is_message_empty_email_and_letter_templates(
|
||||
),
|
||||
)
|
||||
@pytest.mark.parametrize(
|
||||
"content, values",
|
||||
("content", "values"),
|
||||
[
|
||||
("Some content", {}),
|
||||
("((placeholder)) some content", {"placeholder": ""}),
|
||||
@@ -1781,7 +1781,7 @@ def test_is_message_empty_email_and_letter_templates_tries_not_to_count_chars(
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"template_class, template_type, extra_args, expected_field_calls",
|
||||
("template_class", "template_type", "extra_args", "expected_field_calls"),
|
||||
[
|
||||
(
|
||||
PlainTextEmailTemplate,
|
||||
@@ -2054,7 +2054,7 @@ def test_templates_handle_html_and_redacting(
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"template_class, template_type, extra_args, expected_remove_whitespace_calls",
|
||||
("template_class", "template_type", "extra_args", "expected_remove_whitespace_calls"),
|
||||
[
|
||||
(
|
||||
PlainTextEmailTemplate,
|
||||
@@ -2176,7 +2176,7 @@ def test_templates_remove_whitespace_before_punctuation(
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"template_class, template_type, extra_args, expected_calls",
|
||||
("template_class", "template_type", "extra_args", "expected_calls"),
|
||||
[
|
||||
(
|
||||
PlainTextEmailTemplate,
|
||||
@@ -2302,7 +2302,7 @@ def test_smart_quotes_removed_from_long_template_in_under_a_second():
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"template_instance, expected_placeholders",
|
||||
("template_instance", "expected_placeholders"),
|
||||
[
|
||||
(
|
||||
SMSMessageTemplate(
|
||||
@@ -2465,7 +2465,7 @@ def test_email_preview_shows_reply_to_address(extra_args):
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"template_values, expected_content",
|
||||
("template_values", "expected_content"),
|
||||
[
|
||||
({}, "<span class='placeholder-no-brackets'>email address</span>"),
|
||||
({"email address": "test@example.com"}, "test@example.com"),
|
||||
@@ -2483,7 +2483,7 @@ def test_email_preview_shows_recipient_address(
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"address, expected",
|
||||
("address", "expected"),
|
||||
[
|
||||
(
|
||||
{
|
||||
@@ -2585,7 +2585,7 @@ def test_email_preview_shows_recipient_address(
|
||||
),
|
||||
],
|
||||
)
|
||||
@pytest.mark.parametrize("template_class", (LetterPreviewTemplate, LetterPrintTemplate))
|
||||
@pytest.mark.parametrize("template_class", [LetterPreviewTemplate, LetterPrintTemplate])
|
||||
def test_letter_address_format(template_class, address, expected):
|
||||
template = BeautifulSoup(
|
||||
str(
|
||||
@@ -2601,7 +2601,7 @@ def test_letter_address_format(template_class, address, expected):
|
||||
|
||||
@freeze_time("2001-01-01 12:00:00.000000")
|
||||
@pytest.mark.parametrize(
|
||||
"markdown, expected",
|
||||
("markdown", "expected"),
|
||||
[
|
||||
(
|
||||
(
|
||||
@@ -2691,11 +2691,11 @@ def test_message_is_not_too_long_ignoring_prefix(template_class):
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"extra_characters, expected_too_long",
|
||||
(
|
||||
("extra_characters", "expected_too_long"),
|
||||
[
|
||||
("cc", True), # content length is 919 characters (more than limit of 918)
|
||||
("c", False), # content length is 918 characters (not more than limit of 918)
|
||||
),
|
||||
],
|
||||
)
|
||||
@pytest.mark.parametrize(
|
||||
"template_class",
|
||||
@@ -2716,7 +2716,7 @@ def test_broadcast_message_too_long(
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"template_class, template_type, kwargs",
|
||||
("template_class", "template_type", "kwargs"),
|
||||
[
|
||||
(EmailPreviewTemplate, "email", {}),
|
||||
(HTMLEmailTemplate, "email", {}),
|
||||
@@ -2736,7 +2736,7 @@ def test_message_too_long_limit_bigger_or_nonexistent_for_non_sms_templates(
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"template_class, template_type, kwargs",
|
||||
("template_class", "template_type", "kwargs"),
|
||||
[
|
||||
(EmailPreviewTemplate, "email", {}),
|
||||
(HTMLEmailTemplate, "email", {}),
|
||||
@@ -2755,7 +2755,7 @@ def test_content_size_in_bytes_for_email_messages(
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"template_class, template_type, kwargs",
|
||||
("template_class", "template_type", "kwargs"),
|
||||
[
|
||||
(EmailPreviewTemplate, "email", {}),
|
||||
(HTMLEmailTemplate, "email", {}),
|
||||
@@ -2774,7 +2774,7 @@ def test_message_too_long_for_a_too_big_email_message(
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"template_class, template_type, kwargs",
|
||||
("template_class", "template_type", "kwargs"),
|
||||
[
|
||||
(EmailPreviewTemplate, "email", {}),
|
||||
(HTMLEmailTemplate, "email", {}),
|
||||
@@ -2792,7 +2792,7 @@ def test_message_too_long_for_an_email_message_within_limits(
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
("content," "expected_preview_markup,"),
|
||||
("content", "expected_preview_markup"),
|
||||
[
|
||||
(
|
||||
"a\n\n\nb",
|
||||
@@ -2847,7 +2847,7 @@ def test_multiple_newlines_in_letters(
|
||||
],
|
||||
)
|
||||
@pytest.mark.parametrize(
|
||||
"template_class, template_type, extra_args",
|
||||
("template_class", "template_type", "extra_args"),
|
||||
[
|
||||
(PlainTextEmailTemplate, "email", {}),
|
||||
(HTMLEmailTemplate, "email", {}),
|
||||
@@ -2886,7 +2886,7 @@ def test_whitespace_in_subject_placeholders(template_class):
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"template_class, expected_output",
|
||||
("template_class", "expected_output"),
|
||||
[
|
||||
(
|
||||
PlainTextEmailTemplate,
|
||||
@@ -3041,8 +3041,8 @@ def test_plain_text_email_whitespace():
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"renderer, template_type, expected_content",
|
||||
(
|
||||
("renderer", "template_type", "expected_content"),
|
||||
[
|
||||
(
|
||||
PlainTextEmailTemplate,
|
||||
"email",
|
||||
@@ -3071,7 +3071,7 @@ def test_plain_text_email_whitespace():
|
||||
"letter",
|
||||
("<h2>Heading link: <strong>example.com</strong></h2>"),
|
||||
),
|
||||
),
|
||||
],
|
||||
)
|
||||
def test_heading_only_template_renders(renderer, template_type, expected_content):
|
||||
assert expected_content in str(
|
||||
@@ -3093,7 +3093,7 @@ def test_heading_only_template_renders(renderer, template_type, expected_content
|
||||
],
|
||||
)
|
||||
@pytest.mark.parametrize(
|
||||
"filename, expected_html_class",
|
||||
("filename", "expected_html_class"),
|
||||
[
|
||||
("example.png", 'class="png"'),
|
||||
("example.svg", 'class="svg"'),
|
||||
@@ -3127,7 +3127,7 @@ def test_image_not_present_if_no_logo(template_class):
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"content",
|
||||
(
|
||||
[
|
||||
(
|
||||
"The quick brown fox.\n"
|
||||
"\n\n\n\n"
|
||||
@@ -3140,11 +3140,11 @@ def test_image_not_present_if_no_logo(template_class):
|
||||
" Jumps over the lazy dog . \n"
|
||||
"Single linebreak above. \n \n \n"
|
||||
),
|
||||
),
|
||||
],
|
||||
)
|
||||
@pytest.mark.parametrize(
|
||||
"template_class, expected",
|
||||
(
|
||||
("template_class", "expected"),
|
||||
[
|
||||
(
|
||||
SMSBodyPreviewTemplate,
|
||||
(
|
||||
@@ -3192,7 +3192,7 @@ def test_image_not_present_if_no_logo(template_class):
|
||||
"</div>"
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
)
|
||||
def test_text_messages_collapse_consecutive_whitespace(
|
||||
template_class,
|
||||
@@ -3252,14 +3252,14 @@ def test_broadcast_message_from_event():
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"template_class",
|
||||
(
|
||||
[
|
||||
BroadcastMessageTemplate,
|
||||
BroadcastPreviewTemplate,
|
||||
),
|
||||
],
|
||||
)
|
||||
@pytest.mark.parametrize(
|
||||
"content, expected_non_gsm, expected_max, expected_too_long",
|
||||
(
|
||||
("content", "expected_non_gsm", "expected_max", "expected_too_long"),
|
||||
[
|
||||
(
|
||||
"a" * 1395,
|
||||
set(),
|
||||
@@ -3304,7 +3304,7 @@ def test_broadcast_message_from_event():
|
||||
615,
|
||||
False,
|
||||
),
|
||||
),
|
||||
],
|
||||
)
|
||||
def test_broadcast_message_content_count(
|
||||
content, expected_non_gsm, expected_max, expected_too_long, template_class
|
||||
@@ -3322,10 +3322,12 @@ def test_broadcast_message_content_count(
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"template_class",
|
||||
(
|
||||
BroadcastMessageTemplate,
|
||||
BroadcastPreviewTemplate,
|
||||
),
|
||||
[
|
||||
(
|
||||
BroadcastMessageTemplate,
|
||||
BroadcastPreviewTemplate,
|
||||
),
|
||||
],
|
||||
)
|
||||
@pytest.mark.parametrize("content", ("^{}\\[~]|€"))
|
||||
def test_broadcast_message_double_counts_extended_gsm(
|
||||
@@ -3344,10 +3346,12 @@ def test_broadcast_message_double_counts_extended_gsm(
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"template_class",
|
||||
(
|
||||
BroadcastMessageTemplate,
|
||||
BroadcastPreviewTemplate,
|
||||
),
|
||||
[
|
||||
(
|
||||
BroadcastMessageTemplate,
|
||||
BroadcastPreviewTemplate,
|
||||
),
|
||||
],
|
||||
)
|
||||
@pytest.mark.parametrize(
|
||||
"content", ("ÁÍÓÚẂÝ" "ËÏẄŸ" "ÂÊÎÔÛŴŶ" "ÀÈÌÒẀÙỲ" "áíóúẃý" "ëïẅÿ" "âêîôûŵŷ" "ẁỳ")
|
||||
@@ -3368,10 +3372,12 @@ def test_broadcast_message_single_counts_diacritics_in_extended_gsm(
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"template_class",
|
||||
(
|
||||
BroadcastMessageTemplate,
|
||||
BroadcastPreviewTemplate,
|
||||
),
|
||||
[
|
||||
(
|
||||
BroadcastMessageTemplate,
|
||||
BroadcastPreviewTemplate,
|
||||
),
|
||||
],
|
||||
)
|
||||
@pytest.mark.parametrize("content", ("ÄÖÜ" "É" "äöü" "é" "àèìòù"))
|
||||
def test_broadcast_message_single_counts_diacritics_in_gsm(
|
||||
|
||||
Reference in New Issue
Block a user