test_translations.py 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. import subprocess
  2. import os
  3. from flask import current_app
  4. from babel.support import Translations, NullTranslations
  5. from flaskbb.utils.translations import FlaskBBDomain
  6. from flaskbb.extensions import plugin_manager
  7. def _compile_translations():
  8. PLUGINS_FOLDER = os.path.join(current_app.root_path, "plugins")
  9. translations_folder = os.path.join(current_app.root_path, "translations")
  10. subprocess.call(["pybabel", "compile", "-d", translations_folder])
  11. for plugin in plugin_manager.all_plugins:
  12. plugin_folder = os.path.join(PLUGINS_FOLDER, plugin)
  13. translations_folder = os.path.join(plugin_folder, "translations")
  14. subprocess.call(["pybabel", "compile", "-d", translations_folder])
  15. def test_flaskbbdomain_translations(default_settings):
  16. domain = FlaskBBDomain(current_app)
  17. with current_app.test_request_context():
  18. assert domain.get_translations_cache() == {}
  19. # no compiled translations are available
  20. assert isinstance(domain.get_translations(), NullTranslations)
  21. # lets compile them and test again
  22. _compile_translations()
  23. # now there should be translations :)
  24. assert isinstance(domain.get_translations(), Translations)