diff options
author | Wojtek Kosior <koszko@koszko.org> | 2022-05-10 16:47:47 +0200 |
---|---|---|
committer | Wojtek Kosior <koszko@koszko.org> | 2022-05-10 16:48:26 +0200 |
commit | bd588eb9a4b2890da6f9db928f302e2e98a7b9ce (patch) | |
tree | 76ad822f028c847190a0a14a07c8a3b1bcc554d6 /conftest.py | |
parent | 61f0aa75c64732063988826400ebc9f8e01ee3bb (diff) | |
download | hydrilla-builder-bd588eb9a4b2890da6f9db928f302e2e98a7b9ce.tar.gz hydrilla-builder-bd588eb9a4b2890da6f9db928f302e2e98a7b9ce.zip |
add missing english translations and verify message texts of raised exceptions in tests
Diffstat (limited to 'conftest.py')
-rw-r--r-- | conftest.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/conftest.py b/conftest.py index 141cba5..65d13d5 100644 --- a/conftest.py +++ b/conftest.py @@ -8,6 +8,7 @@ import sys from pathlib import Path import pytest +import pkgutil here = Path(__file__).resolve().parent sys.path.insert(0, str(here / 'src')) @@ -34,3 +35,35 @@ def mock_subprocess_run(monkeypatch, request): run = mocked_run monkeypatch.setattr(where, 'subprocess', MockedSubprocess) + +@pytest.fixture(autouse=True) +def no_gettext(monkeypatch, request): + """ + Make gettext return all strings untranslated unless we request otherwise. + """ + if request.node.get_closest_marker('enable_gettext'): + return + + import hydrilla + modules_to_process = [hydrilla] + + def add_child_modules(parent): + """ + Recursuvely collect all modules descending from 'parent' into an array. + """ + try: + load_paths = parent.__path__ + except AttributeError: + return + + for module_info in pkgutil.iter_modules(load_paths): + if module_info.name != '__main__': + __import__(f'{parent.__name__}.{module_info.name}') + modules_to_process.append(getattr(parent, module_info.name)) + add_child_modules(getattr(parent, module_info.name)) + + add_child_modules(hydrilla) + + for module in modules_to_process: + if hasattr(module, '_'): + monkeypatch.setattr(module, '_', lambda message: message) |