More bugfixes in the glossary protection guard
This commit is contained in:
@@ -25,6 +25,12 @@ def _vocabulary():
|
||||
- name: "Godfrey"
|
||||
category: npc
|
||||
summary: "Godfrey is an NPC."
|
||||
- name: "Lyra"
|
||||
category: npc
|
||||
summary: "Lyra is an NPC."
|
||||
- name: "Loviator"
|
||||
category: deity
|
||||
summary: "Loviator is a deity."
|
||||
"""
|
||||
)
|
||||
return ProtectedVocabulary.from_glossary(glossary)
|
||||
@@ -66,6 +72,12 @@ def test_protection_allows_canonical_capitalization():
|
||||
assert vocabulary.violation_reason("hrank moves.", "Hrank moves.") is None
|
||||
|
||||
|
||||
def test_protection_allows_unchanged_noncanonical_protected_term():
|
||||
vocabulary = _vocabulary()
|
||||
|
||||
assert vocabulary.violation_reason("jesters advance.", "jesters advance.") is None
|
||||
|
||||
|
||||
def test_protection_allows_correction_toward_protected_term():
|
||||
vocabulary = _vocabulary()
|
||||
|
||||
@@ -98,6 +110,15 @@ def test_protection_blocks_noncanonical_introduced_protected_term():
|
||||
)
|
||||
|
||||
|
||||
def test_protection_blocks_changed_noncanonical_variant():
|
||||
vocabulary = _vocabulary()
|
||||
|
||||
assert (
|
||||
vocabulary.violation_reason("jesters advance.", "JESTERS advance.")
|
||||
== "correction changes protected glossary term capitalization"
|
||||
)
|
||||
|
||||
|
||||
def test_protection_allows_inferred_name_plural():
|
||||
vocabulary = _vocabulary()
|
||||
|
||||
@@ -135,6 +156,20 @@ def test_protection_allows_punctuation_around_protected_term():
|
||||
assert vocabulary.violation_reason("Popov, moves.", "Popov. Moves.") is None
|
||||
|
||||
|
||||
def test_protection_allows_quote_wrapping_sentence_with_unchanged_lowercase_protected_term():
|
||||
vocabulary = _vocabulary()
|
||||
before = (
|
||||
"When you say that, Popov will say, when I was in that room with the jesters, "
|
||||
"I just knew that Godfrey and Lyra came directly from Loviator herself."
|
||||
)
|
||||
after = (
|
||||
'When you say that, Popov will say, "When I was in that room with the jesters, '
|
||||
'I just knew that Godfrey and Lyra came directly from Loviator herself."'
|
||||
)
|
||||
|
||||
assert vocabulary.violation_reason(before, after) is None
|
||||
|
||||
|
||||
def test_protection_does_not_match_terms_inside_larger_words():
|
||||
vocabulary = _vocabulary()
|
||||
|
||||
@@ -145,3 +180,12 @@ def test_protection_applies_to_aliases():
|
||||
vocabulary = _vocabulary()
|
||||
|
||||
assert vocabulary.violation_reason("Greenfield waits.", "greenfield waits.") is not None
|
||||
|
||||
|
||||
def test_protection_blocks_removing_preexisting_protected_occurrence():
|
||||
vocabulary = _vocabulary()
|
||||
|
||||
assert (
|
||||
vocabulary.violation_reason("Jesters flank the Jesters.", "Jesters flank the gestures.")
|
||||
== "correction changes protected glossary term usage"
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user