exclusions.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import pytest
  2. from mako.ext.beaker_cache import has_beaker
  3. from mako.util import update_wrapper
  4. try:
  5. import babel.messages.extract as babel
  6. except ImportError:
  7. babel = None
  8. try:
  9. import lingua
  10. except ImportError:
  11. lingua = None
  12. try:
  13. import dogpile.cache # noqa
  14. except ImportError:
  15. has_dogpile_cache = False
  16. else:
  17. has_dogpile_cache = True
  18. requires_beaker = pytest.mark.skipif(
  19. not has_beaker, reason="Beaker is required for these tests."
  20. )
  21. requires_babel = pytest.mark.skipif(
  22. babel is None, reason="babel not installed: skipping babelplugin test"
  23. )
  24. requires_lingua = pytest.mark.skipif(
  25. lingua is None, reason="lingua not installed: skipping linguaplugin test"
  26. )
  27. requires_dogpile_cache = pytest.mark.skipif(
  28. not has_dogpile_cache,
  29. reason="dogpile.cache is required to run these tests",
  30. )
  31. def _pygments_version():
  32. try:
  33. import pygments
  34. version = pygments.__version__
  35. except:
  36. version = "0"
  37. return version
  38. requires_pygments_14 = pytest.mark.skipif(
  39. _pygments_version() < "1.4", reason="Requires pygments 1.4 or greater"
  40. )
  41. # def requires_pygments_14(fn):
  42. # return skip_if(
  43. # lambda: version < "1.4", "Requires pygments 1.4 or greater"
  44. # )(fn)
  45. def requires_no_pygments_exceptions(fn):
  46. def go(*arg, **kw):
  47. from mako import exceptions
  48. exceptions._install_fallback()
  49. try:
  50. return fn(*arg, **kw)
  51. finally:
  52. exceptions._install_highlighting()
  53. return update_wrapper(go, fn)