import os import pytest from jinja2 import Environment from jinja2 import loaders from jinja2.utils import have_async_gen def pytest_ignore_collect(path): if "async" in path.basename and not have_async_gen: return True return False @pytest.fixture def env(): """returns a new environment.""" return Environment() @pytest.fixture def dict_loader(): """returns DictLoader""" return loaders.DictLoader({"justdict.html": "FOO"}) @pytest.fixture def package_loader(): """returns PackageLoader initialized from templates""" return loaders.PackageLoader("res", "templates") @pytest.fixture def filesystem_loader(): """returns FileSystemLoader initialized to res/templates directory""" here = os.path.dirname(os.path.abspath(__file__)) return loaders.FileSystemLoader(here + "/res/templates") @pytest.fixture def function_loader(): """returns a FunctionLoader""" return loaders.FunctionLoader({"justfunction.html": "FOO"}.get) @pytest.fixture def choice_loader(dict_loader, package_loader): """returns a ChoiceLoader""" return loaders.ChoiceLoader([dict_loader, package_loader]) @pytest.fixture def prefix_loader(filesystem_loader, dict_loader): """returns a PrefixLoader""" return loaders.PrefixLoader({"a": filesystem_loader, "b": dict_loader})