--- /dev/null
+import pathlib
+
+import pytest
+
+from babel.messages import frontend
+
+jinja2 = pytest.importorskip("jinja2")
+
+jinja2_data_path = pathlib.Path(__file__).parent / "jinja2_data"
+
+
+def test_jinja2_interop(monkeypatch, tmp_path):
+ """
+ Test that babel can extract messages from Jinja2 templates.
+ """
+ monkeypatch.chdir(jinja2_data_path)
+ cli = frontend.CommandLineInterface()
+ pot_file = tmp_path / "messages.pot"
+ cli.run(['pybabel', 'extract', '--mapping', 'mapping.cfg', '-o', str(pot_file), '.'])
+ assert '"Hello, %(name)s!"' in pot_file.read_text()
pypy3
py{38}-pytz
py{311,312}-setuptools
+ py312-jinja
[testenv]
extras =
tzdata;sys_platform == 'win32'
pytz: pytz
setuptools: setuptools
+ jinja: jinja2>=3.0
allowlist_externals = make
commands = make clean-cldr test
setenv =