Skip to content

Commit 9df114c

Browse files
committed
Port fix for denormalizing quotation marks in an invalid chapter
1 parent 9cc4cd0 commit 9df114c

File tree

3 files changed

+23
-2
lines changed

3 files changed

+23
-2
lines changed

machine/punctuation_analysis/quotation_mark_update_settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@ def __init__(
1212
self._chapter_strategies = chapter_strategies
1313

1414
def get_action_for_chapter(self, chapter_number: int) -> QuotationMarkUpdateStrategy:
15-
if chapter_number <= len(self._chapter_strategies):
15+
if chapter_number > -1 and chapter_number <= len(self._chapter_strategies):
1616
return self._chapter_strategies[chapter_number - 1]
1717
return self._default_chapter_strategy

machine/scripture/verse_ref.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -592,7 +592,7 @@ def _get_verse_num(verse: Optional[str]) -> Tuple[bool, int]:
592592

593593
class IgnoreSegmentsVerseRef(VerseRef):
594594
def __init__(self, verse_ref: VerseRef):
595-
super().__init__(verse_ref.book_num, verse_ref.chapter_num, verse_ref.verse_num, verse_ref.versification)
595+
super().__init__(verse_ref.book_num, verse_ref.chapter, verse_ref.verse_num, verse_ref.versification)
596596

597597
def __eq__(self, other):
598598
if not isinstance(other, VerseRef):

tests/punctuation_analysis/test_quote_convention_changing_usfm_block_update_handler.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -775,6 +775,27 @@ def test_start_new_chapter() -> None:
775775
assert quote_convention_changer._current_strategy == QuotationMarkUpdateStrategy.APPLY_FALLBACK
776776

777777

778+
def test_invalid_chapter_number() -> None:
779+
input_usfm = """\\c 1
780+
\\p
781+
\\v 1 Chapter 1, "Verse 1"
782+
\\c 2.
783+
\\p
784+
\\v v1 Chapter 2, "Invalid Verse 1"
785+
"""
786+
expected_usfm = (
787+
"\\c 1\n"
788+
+ "\\p\n"
789+
+ "\\v 1 Chapter 1, “Verse 1”\n"
790+
+ "\\c 2.\n"
791+
+ "\\p\n"
792+
+ "\\v v1 Chapter 2, “Invalid Verse 1”"
793+
)
794+
795+
observed_usfm = change_quotation_marks(input_usfm, "typewriter_english", "standard_english")
796+
assert_usfm_equal(observed_usfm, expected_usfm)
797+
798+
778799
def change_quotation_marks(
779800
normalized_usfm: str,
780801
source_quote_convention_name: str,

0 commit comments

Comments
 (0)