aboutsummaryrefslogtreecommitdiff
path: root/conftest.py
diff options
context:
space:
mode:
authorWojtek Kosior <koszko@koszko.org>2022-05-10 16:47:47 +0200
committerWojtek Kosior <koszko@koszko.org>2022-05-10 16:48:26 +0200
commitbd588eb9a4b2890da6f9db928f302e2e98a7b9ce (patch)
tree76ad822f028c847190a0a14a07c8a3b1bcc554d6 /conftest.py
parent61f0aa75c64732063988826400ebc9f8e01ee3bb (diff)
downloadhydrilla-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.py33
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)