conftest.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. # -*- coding: utf-8 -*-
  2. import os
  3. import pytest
  4. from jinja2 import Environment
  5. from jinja2 import loaders
  6. from jinja2.utils import have_async_gen
  7. def pytest_ignore_collect(path):
  8. if "async" in path.basename and not have_async_gen:
  9. return True
  10. return False
  11. @pytest.fixture
  12. def env():
  13. """returns a new environment."""
  14. return Environment()
  15. @pytest.fixture
  16. def dict_loader():
  17. """returns DictLoader"""
  18. return loaders.DictLoader({"justdict.html": "FOO"})
  19. @pytest.fixture
  20. def package_loader():
  21. """returns PackageLoader initialized from templates"""
  22. return loaders.PackageLoader("res", "templates")
  23. @pytest.fixture
  24. def filesystem_loader():
  25. """returns FileSystemLoader initialized to res/templates directory"""
  26. try:
  27. import yatest.common
  28. here = yatest.common.test_source_path()
  29. except ImportError:
  30. here = os.path.dirname(os.path.abspath(__file__))
  31. return loaders.FileSystemLoader(here + "/res/templates")
  32. @pytest.fixture
  33. def function_loader():
  34. """returns a FunctionLoader"""
  35. return loaders.FunctionLoader({"justfunction.html": "FOO"}.get)
  36. @pytest.fixture
  37. def choice_loader(dict_loader, package_loader):
  38. """returns a ChoiceLoader"""
  39. return loaders.ChoiceLoader([dict_loader, package_loader])
  40. @pytest.fixture
  41. def prefix_loader(filesystem_loader, dict_loader):
  42. """returns a PrefixLoader"""
  43. return loaders.PrefixLoader({"a": filesystem_loader, "b": dict_loader})