Source code for xbout.conftest
import pytest
configure_is_imported = False
[docs]
def pytest_configure(config):
global configure_is_imported
if not configure_is_imported:
configure_is_imported = True
# filter expected warnings
config.addinivalue_line(
"filterwarnings",
"ignore:No geometry type found, no coordinates will be added:UserWarning",
)
config.addinivalue_line(
"filterwarnings",
"ignore:deallocating CachingFileManager.*, but file is not already closed. "
"This may indicate a bug.:RuntimeWarning",
)
# register additional markers
config.addinivalue_line(
"markers",
"long: long test, or one of many permutations (disabled by default)",
)
config.addinivalue_line(
"markers",
"flaky: xarray uses this mark, adding to avoid warnings about it not being "
"defined",
)
config.addinivalue_line(
"markers",
"network: xarray uses this mark, adding to avoid warnings about it not "
"being defined",
)
config.addinivalue_line(
"markers",
"slow: xarray uses this mark, adding to avoid warnings about it not being "
"defined",
)
addoption_is_imported = False
[docs]
def pytest_addoption(parser):
# Add command line option '--long' for pytest, to be used to enable long tests
global addoption_is_imported
if not addoption_is_imported:
addoption_is_imported = True
parser.addoption(
"--long",
action="store_true",
default=False,
help="enable tests marked as 'long'",
)
collection_is_imported = False
[docs]
def pytest_collection_modifyitems(config, items):
global collection_is_imported
if not collection_is_imported:
collection_is_imported = True
if not config.getoption("--long"):
# --long not given in cli: skip long tests
print("\n skipping long tests, pass '--long' to enable")
skip_long = pytest.mark.skip(reason="need --long option to run")
for item in items:
if "long" in item.keywords:
item.add_marker(skip_long)