diff --git a/tests/unit/python/utils/i18n/test_extract.py b/tests/unit/python/utils/i18n/test_extract.py index fe803e25a0..820b4c38a6 100644 --- a/tests/unit/python/utils/i18n/test_extract.py +++ b/tests/unit/python/utils/i18n/test_extract.py @@ -3,7 +3,7 @@ import textwrap import unittest from pathlib import Path -from utils.i18n.extract import core_messages +from utils.i18n.extract import core_messages, role_messages from utils.roles.mapping import ROLE_FILE_META_MAIN @@ -75,6 +75,24 @@ class TestCoreMessages(unittest.TestCase): ], ) + def test_a_pulled_custom_role_stays_out_of_the_core_catalogs(self): + with tempfile.TemporaryDirectory() as tmp: + root = Path(tmp) + _write( + root, + f"roles/web-app-wiki/{ROLE_FILE_META_MAIN}", + "galaxy_info:\n description: A wiki\n", + ) + _write( + root, + f"roles/web-app-cst-demo/{ROLE_FILE_META_MAIN}", + "galaxy_info:\n description: A custom app\n", + ) + + messages = role_messages(root) + + self.assertEqual(messages, [("role:web-app-wiki:description", "A wiki")]) + if __name__ == "__main__": unittest.main() diff --git a/utils/i18n/extract.py b/utils/i18n/extract.py index cfcbd3f582..b1796b2862 100644 --- a/utils/i18n/extract.py +++ b/utils/i18n/extract.py @@ -12,6 +12,7 @@ from pathlib import Path from utils.cache.yaml import load_yaml_any from utils.i18n.catalog import LOCALE_DIR, read_catalog +from utils.roles.custom import is_custom from utils.roles.mapping import ROLE_FILE_META_MAIN CATEGORIES_FILE = Path("meta") / "categories.yml" @@ -90,10 +91,12 @@ def role_messages(root: Path) -> list[tuple[str, str]]: messages = [] roles = root / "roles" for main in sorted(roles.glob(f"*/{ROLE_FILE_META_MAIN}")): + role = main.relative_to(roles).parts[0] + if is_custom(role): + continue galaxy_info = (_load(main) or {}).get("galaxy_info") or {} description = _text(galaxy_info.get("description")) if description: - role = main.relative_to(roles).parts[0] messages.append((role_context(role), description)) return messages diff --git a/utils/i18n/libretranslate.py b/utils/i18n/libretranslate.py index ba979e4418..009d754f2f 100644 --- a/utils/i18n/libretranslate.py +++ b/utils/i18n/libretranslate.py @@ -310,6 +310,7 @@ def deploy(root: Path, roles: tuple[str, ...] = (ROLE, GATEWAY_ROLE)) -> str: str(INVENTORY_DIR / ".password"), "--skip-backup", "--skip-cleanup", + "--skip-pull", ], ] outer = {