mirror of
https://github.com/GSA/notifications-api.git
synced 2026-08-15 07:18:09 -04:00
Removed one more utils reference in the README and fixed directory name
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
This commit is contained in:
135
tests/notifications_utils/test_template_change.py
Normal file
135
tests/notifications_utils/test_template_change.py
Normal file
@@ -0,0 +1,135 @@
|
||||
import pytest
|
||||
|
||||
from notifications_utils.template_change import TemplateChange
|
||||
|
||||
from .test_base_template import ConcreteTemplate
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"old_template, new_template, should_differ",
|
||||
[
|
||||
(
|
||||
ConcreteTemplate({"content": "((1)) ((2)) ((3))"}),
|
||||
ConcreteTemplate({"content": "((1)) ((2)) ((3))"}),
|
||||
False,
|
||||
),
|
||||
(
|
||||
ConcreteTemplate({"content": "((1)) ((2)) ((3))"}),
|
||||
ConcreteTemplate({"content": "((3)) ((2)) ((1))"}),
|
||||
False,
|
||||
),
|
||||
(
|
||||
ConcreteTemplate({"content": "((1)) ((2)) ((3))"}),
|
||||
ConcreteTemplate({"content": "((1)) ((1)) ((2)) ((2)) ((3)) ((3))"}),
|
||||
False,
|
||||
),
|
||||
(
|
||||
ConcreteTemplate({"content": "((1))"}),
|
||||
ConcreteTemplate({"content": "((1)) ((2))"}),
|
||||
True,
|
||||
),
|
||||
(
|
||||
ConcreteTemplate({"content": "((1)) ((2))"}),
|
||||
ConcreteTemplate({"content": "((1))"}),
|
||||
True,
|
||||
),
|
||||
(
|
||||
ConcreteTemplate({"content": "((a)) ((b))"}),
|
||||
ConcreteTemplate({"content": "((A)) (( B_ ))"}),
|
||||
False,
|
||||
),
|
||||
],
|
||||
)
|
||||
def test_checking_for_difference_between_templates(
|
||||
old_template, new_template, should_differ
|
||||
):
|
||||
assert (
|
||||
TemplateChange(old_template, new_template).has_different_placeholders
|
||||
== should_differ
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"old_template, new_template, placeholders_added",
|
||||
[
|
||||
(
|
||||
ConcreteTemplate({"content": "((1)) ((2)) ((3))"}),
|
||||
ConcreteTemplate({"content": "((1)) ((2)) ((3))"}),
|
||||
set(),
|
||||
),
|
||||
(
|
||||
ConcreteTemplate({"content": "((1)) ((2)) ((3))"}),
|
||||
ConcreteTemplate({"content": "((1)) ((1)) ((2)) ((2)) ((3)) ((3))"}),
|
||||
set(),
|
||||
),
|
||||
(
|
||||
ConcreteTemplate({"content": "((1)) ((2)) ((3))"}),
|
||||
ConcreteTemplate({"content": "((1))"}),
|
||||
set(),
|
||||
),
|
||||
(
|
||||
ConcreteTemplate({"content": "((1))"}),
|
||||
ConcreteTemplate({"content": "((1)) ((2)) ((3))"}),
|
||||
set(["2", "3"]),
|
||||
),
|
||||
(
|
||||
ConcreteTemplate({"content": "((a))"}),
|
||||
ConcreteTemplate({"content": "((A)) ((B)) ((C))"}),
|
||||
set(["B", "C"]),
|
||||
),
|
||||
],
|
||||
)
|
||||
def test_placeholders_added(old_template, new_template, placeholders_added):
|
||||
assert (
|
||||
TemplateChange(old_template, new_template).placeholders_added
|
||||
== placeholders_added
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"old_template, new_template, placeholders_removed",
|
||||
[
|
||||
(
|
||||
ConcreteTemplate({"content": "((1)) ((2)) ((3))"}),
|
||||
ConcreteTemplate({"content": "((1)) ((2)) ((3))"}),
|
||||
set(),
|
||||
),
|
||||
(
|
||||
ConcreteTemplate({"content": "((1)) ((2)) ((3))"}),
|
||||
ConcreteTemplate({"content": "((1)) ((1)) ((2)) ((2)) ((3)) ((3))"}),
|
||||
set(),
|
||||
),
|
||||
(
|
||||
ConcreteTemplate({"content": "((1))"}),
|
||||
ConcreteTemplate({"content": "((1)) ((2)) ((3))"}),
|
||||
set(),
|
||||
),
|
||||
(
|
||||
ConcreteTemplate({"content": "((1)) ((2)) ((3))"}),
|
||||
ConcreteTemplate({"content": "((1))"}),
|
||||
set(["2", "3"]),
|
||||
),
|
||||
(
|
||||
ConcreteTemplate({"content": "((a)) ((b)) ((c))"}),
|
||||
ConcreteTemplate({"content": "((A))"}),
|
||||
set(["b", "c"]),
|
||||
),
|
||||
],
|
||||
)
|
||||
def test_placeholders_removed(old_template, new_template, placeholders_removed):
|
||||
assert (
|
||||
TemplateChange(old_template, new_template).placeholders_removed
|
||||
== placeholders_removed
|
||||
)
|
||||
|
||||
|
||||
def test_ordering_of_placeholders_is_preserved():
|
||||
before = ConcreteTemplate({"content": "((dog)) ((cat)) ((rat))"})
|
||||
after = ConcreteTemplate({"content": "((platypus)) ((echidna)) ((quokka))"})
|
||||
change = TemplateChange(before, after)
|
||||
assert change.placeholders_removed == ["dog", "cat", "rat"] == before.placeholders
|
||||
assert (
|
||||
change.placeholders_added
|
||||
== ["platypus", "echidna", "quokka"]
|
||||
== after.placeholders
|
||||
)
|
||||
Reference in New Issue
Block a user