Files
notifications-api/tests/notifications_utils/test_safe_string.py
2024-05-17 17:14:46 -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