You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
1.5 KiB
81 lines
1.5 KiB
import pytest
|
|
|
|
from mako.ext.beaker_cache import has_beaker
|
|
from mako.util import update_wrapper
|
|
|
|
|
|
try:
|
|
import babel.messages.extract as babel
|
|
except ImportError:
|
|
babel = None
|
|
|
|
|
|
try:
|
|
import lingua
|
|
except ImportError:
|
|
lingua = None
|
|
|
|
|
|
try:
|
|
import dogpile.cache # noqa
|
|
except ImportError:
|
|
has_dogpile_cache = False
|
|
else:
|
|
has_dogpile_cache = True
|
|
|
|
|
|
requires_beaker = pytest.mark.skipif(
|
|
not has_beaker, reason="Beaker is required for these tests."
|
|
)
|
|
|
|
|
|
requires_babel = pytest.mark.skipif(
|
|
babel is None, reason="babel not installed: skipping babelplugin test"
|
|
)
|
|
|
|
|
|
requires_lingua = pytest.mark.skipif(
|
|
lingua is None, reason="lingua not installed: skipping linguaplugin test"
|
|
)
|
|
|
|
|
|
requires_dogpile_cache = pytest.mark.skipif(
|
|
not has_dogpile_cache,
|
|
reason="dogpile.cache is required to run these tests",
|
|
)
|
|
|
|
|
|
def _pygments_version():
|
|
try:
|
|
import pygments
|
|
|
|
version = pygments.__version__
|
|
except:
|
|
version = "0"
|
|
return version
|
|
|
|
|
|
requires_pygments_14 = pytest.mark.skipif(
|
|
_pygments_version() < "1.4", reason="Requires pygments 1.4 or greater"
|
|
)
|
|
|
|
|
|
# def requires_pygments_14(fn):
|
|
|
|
# return skip_if(
|
|
# lambda: version < "1.4", "Requires pygments 1.4 or greater"
|
|
# )(fn)
|
|
|
|
|
|
def requires_no_pygments_exceptions(fn):
|
|
def go(*arg, **kw):
|
|
from mako import exceptions
|
|
|
|
exceptions._install_fallback()
|
|
try:
|
|
return fn(*arg, **kw)
|
|
finally:
|
|
exceptions._install_highlighting()
|
|
|
|
return update_wrapper(go, fn)
|