jinja

Форк
0
/
test_compile.py 
28 строк · 1.1 Кб
1
import os
2
import re
3

4
from jinja2.environment import Environment
5
from jinja2.loaders import DictLoader
6

7

8
def test_filters_deterministic(tmp_path):
9
    src = "".join(f"{{{{ {i}|filter{i} }}}}" for i in range(10))
10
    env = Environment(loader=DictLoader({"foo": src}))
11
    env.filters.update(dict.fromkeys((f"filter{i}" for i in range(10)), lambda: None))
12
    env.compile_templates(tmp_path, zip=None)
13
    name = os.listdir(tmp_path)[0]
14
    content = (tmp_path / name).read_text("utf8")
15
    expect = [f"filters['filter{i}']" for i in range(10)]
16
    found = re.findall(r"filters\['filter\d']", content)
17
    assert found == expect
18

19

20
def test_import_as_with_context_deterministic(tmp_path):
21
    src = "\n".join(f'{{% import "bar" as bar{i} with context %}}' for i in range(10))
22
    env = Environment(loader=DictLoader({"foo": src}))
23
    env.compile_templates(tmp_path, zip=None)
24
    name = os.listdir(tmp_path)[0]
25
    content = (tmp_path / name).read_text("utf8")
26
    expect = [f"'bar{i}': " for i in range(10)]
27
    found = re.findall(r"'bar\d': ", content)[:10]
28
    assert found == expect
29

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.