1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- # Copyright (c) 2010-2019 openpyxl
- import pytest
- import platform
- ### Markers ###
- def pytest_runtest_setup(item):
- if isinstance(item, pytest.Function):
- try:
- from PIL import Image
- except ImportError:
- Image = False
- if item.get_closest_marker("pil_required") and Image is False:
- pytest.skip("PIL must be installed")
- elif item.get_closest_marker("pil_not_installed") and Image:
- pytest.skip("PIL is installed")
- elif item.get_closest_marker("not_py33"):
- pytest.skip("Ordering is not a given in Python 3")
- elif item.get_closest_marker("defusedxml_required"):
- from openpyxl import DEFUSEDXML
- if not DEFUSEDXML:
- pytest.skip("defusedxml is required to guard against these vulnerabilities")
- elif item.get_closest_marker("lxml_required"):
- from openpyxl import LXML
- if not LXML:
- pytest.skip("LXML is required for some features such as schema validation")
- elif item.get_closest_marker("lxml_buffering"):
- from lxml.etree import LIBXML_VERSION
- if LIBXML_VERSION < (3, 4, 0, 0):
- pytest.skip("LXML >= 3.4 is required")
- elif item.get_closest_marker("no_lxml"):
- from openpyxl import LXML
- if LXML:
- pytest.skip("LXML has a different interface")
- elif item.get_closest_marker("numpy_required"):
- from openpyxl import NUMPY
- if not NUMPY:
- pytest.skip("Numpy must be installed")
- elif item.get_closest_marker("pandas_required"):
- from openpyxl import PANDAS
- if not PANDAS:
- pytest.skip("Pandas must be installed")
- elif item.get_closest_marker("no_pypy"):
- if platform.python_implementation() == "PyPy":
- pytest.skip("Skipping pypy")
|