Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions machine/corpora/paratext_project_settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ class ParatextProjectSettings:
biblical_terms_file_name: str
language_code: Optional[str]
translation_type: str
visibility: Optional[str] = None
parent_guid: Optional[str] = None
parent_name: Optional[str] = None
_parent: Optional["ParatextProjectSettings"] = None
Expand Down
3 changes: 3 additions & 0 deletions machine/corpora/paratext_project_settings_parser_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,8 @@ def parse(self) -> ParatextProjectSettings:
parent_name = translation_info_setting_parts[1] if translation_info_setting_parts[1] != "" else None
parent_guid = translation_info_setting_parts[2] if translation_info_setting_parts[2] != "" else None

visibility: Optional[str] = settings_tree.getroot().findtext("Visibility")

settings = ParatextProjectSettings(
guid,
name,
Expand All @@ -114,6 +116,7 @@ def parse(self) -> ParatextProjectSettings:
parts[2],
language_code,
translation_type,
visibility,
parent_guid,
parent_name,
)
Expand Down
23 changes: 21 additions & 2 deletions tests/corpora/test_file_paratext_project_settings_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,25 @@
from machine.corpora import FileParatextProjectSettingsParser, UsfmStyleType, UsfmTextType


def test_parse() -> None:
parser = FileParatextProjectSettingsParser(USFM_TEST_PROJECT_PATH)
settings = parser.parse()
assert settings.guid == "a7e0b3ce0200736062f9f810a444dbfbe64aca35"
assert settings.name == "Tes"
assert settings.full_name == "Test"
assert settings.encoding == "utf_8_sig"
assert settings.versification.name.startswith("English")
assert settings.file_name_prefix == ""
assert settings.file_name_form == "41MAT"
assert settings.file_name_suffix == "Tes.SFM"
assert settings.biblical_terms_list_type == "Project"
assert settings.biblical_terms_project_name == "Tes"
assert settings.biblical_terms_file_name == "ProjectBiblicalTerms.xml"
assert settings.language_code == "en"
assert settings.translation_type == "Standard"
assert settings.visibility == "Public"


def test_parse_custom_stylesheet() -> None:
parser = FileParatextProjectSettingsParser(USFM_TEST_PROJECT_PATH)
settings = parser.parse()
Expand All @@ -14,14 +33,14 @@ def test_parse_custom_stylesheet() -> None:
def test_is_daughter_project() -> None:
parser = FileParatextProjectSettingsParser(USFM_TEST_PROJECT_PATH)
settings = parser.parse()
assert settings.translation_type == "Standard"
assert settings.visibility == "Public"
assert settings.has_parent
assert settings.is_daughter_project_of(settings)
assert settings.translation_type == "Standard"
assert settings.parent is None

parser = FileParatextProjectSettingsParser(USFM_TEST_PROJECT_PATH, settings)
settings = parser.parse()
assert settings.has_parent
assert settings.is_daughter_project_of(settings)
assert settings.translation_type == "Standard"
assert settings.parent is not None
1 change: 1 addition & 0 deletions tests/corpora/test_paratext_project_settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -129,4 +129,5 @@ def _create_settings(file_name_form: str) -> ParatextProjectSettings:
"BiblicalTerms.xml",
"en",
"Standard",
"Public",
)
21 changes: 19 additions & 2 deletions tests/corpora/test_zip_paratext_project_settings_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,25 @@
from machine.corpora import UsfmStyleType, UsfmTextType, ZipParatextProjectSettingsParser


def test_parse() -> None:
with _TestEnvironment() as env:
settings = env.parser.parse()
assert settings.guid == "a7e0b3ce0200736062f9f810a444dbfbe64aca35"
assert settings.name == "Tes"
assert settings.full_name == "Test"
assert settings.encoding == "utf_8_sig"
assert settings.versification.name.startswith("English")
assert settings.file_name_prefix == ""
assert settings.file_name_form == "41MAT"
assert settings.file_name_suffix == "Tes.SFM"
assert settings.biblical_terms_list_type == "Project"
assert settings.biblical_terms_project_name == "Tes"
assert settings.biblical_terms_file_name == "ProjectBiblicalTerms.xml"
assert settings.language_code == "en"
assert settings.translation_type == "Standard"
assert settings.visibility == "Public"


def test_parse_custom_stylesheet() -> None:
with _TestEnvironment() as env:
settings = env.parser.parse()
Expand All @@ -23,15 +42,13 @@ def test_is_daughter_project() -> None:
settings = env.parser.parse()
assert settings.has_parent
assert settings.is_daughter_project_of(settings)
assert settings.translation_type == "Standard"
assert settings.parent is None

env.parser = ZipParatextProjectSettingsParser(env.zip_file, settings)

settings = env.parser.parse()
assert settings.has_parent
assert settings.is_daughter_project_of(settings)
assert settings.translation_type == "Standard"
assert settings.parent is not None


Expand Down
Loading