Files
notifications-admin/tests/notifications_utils/test_safe_string.py
Carlo Costino 57e9fc9ba1 Localize notification_utils to the Admin!
This changeset copies everything in notifications_utils to turn into a local project module.  It includes dependency changes to account for this adjustment and the notifications_utils tests.  It also fixes all of the import statements.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-04-05 12:51:31 -04:00

48 lines
1.6 KiB
Python

import pytest
from notifications_utils.safe_string import (
make_string_safe_for_email_local_part,
make_string_safe_for_id,
)
@pytest.mark.parametrize(
"unsafe_string, expected_safe",
[
("name with spaces", "name.with.spaces"),
("singleword", "singleword"),
("UPPER CASE", "upper.case"),
("Service - with dash", "service.with.dash"),
("lots of spaces", "lots.of.spaces"),
("name.with.dots", "name.with.dots"),
("name-with-other-delimiters", "namewithotherdelimiters"),
(".leading", "leading"),
("trailing.", "trailing"),
("üńïçödë wördś", "unicode.words"),
],
)
def test_email_safe_return_dot_separated_email_local_part(unsafe_string, expected_safe):
assert make_string_safe_for_email_local_part(unsafe_string) == expected_safe
@pytest.mark.parametrize(
"unsafe_string, expected_safe",
[
("name with spaces", "name-with-spaces"),
("singleword", "singleword"),
("UPPER CASE", "upper-case"),
("Service - with dash", "service---with-dash"),
("lots of spaces", "lots-of-spaces"),
("name.with.dots", "namewithdots"),
("name-with-dashes", "name-with-dashes"),
("N. London", "n-london"),
(".leading", "leading"),
("-leading", "-leading"),
("trailing.", "trailing"),
("trailing-", "trailing-"),
("üńïçödë wördś", "unicode-words"),
],
)
def test_id_safe_return_dash_separated_string(unsafe_string, expected_safe):
assert make_string_safe_for_id(unsafe_string) == expected_safe