Skip to content
This repository was archived by the owner on Oct 24, 2024. It is now read-only.

Commit 4e0bd4d

Browse files
authored
skips tests if it doesn't have the correct dependency (#34)
1 parent 84d4814 commit 4e0bd4d

File tree

3 files changed

+33
-1
lines changed

3 files changed

+33
-1
lines changed

datatree/tests/__init__.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import importlib
2+
from distutils import version
3+
4+
import pytest
5+
6+
7+
def _importorskip(modname, minversion=None):
8+
try:
9+
mod = importlib.import_module(modname)
10+
has = True
11+
if minversion is not None:
12+
if LooseVersion(mod.__version__) < LooseVersion(minversion):
13+
raise ImportError("Minimum version not satisfied")
14+
except ImportError:
15+
has = False
16+
func = pytest.mark.skipif(not has, reason=f"requires {modname}")
17+
return has, func
18+
19+
20+
def LooseVersion(vstring):
21+
# Our development version is something like '0.10.9+aac7bfc'
22+
# This function just ignores the git commit id.
23+
vstring = vstring.split("+")[0]
24+
return version.LooseVersion(vstring)
25+
26+
27+
has_zarr, requires_zarr = _importorskip("zarr")
28+
has_netCDF4, requires_netCDF4 = _importorskip("netCDF4")

datatree/tests/test_datatree.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
from datatree import DataNode, DataTree
77
from datatree.io import open_datatree
8+
from datatree.tests import requires_netCDF4, requires_zarr
89

910

1011
def assert_tree_equal(dt_a, dt_b):
@@ -311,6 +312,7 @@ def test_repr_of_node_with_data(self):
311312

312313

313314
class TestIO:
315+
@requires_netCDF4
314316
def test_to_netcdf(self, tmpdir):
315317
filepath = str(
316318
tmpdir / "test.nc"
@@ -321,6 +323,7 @@ def test_to_netcdf(self, tmpdir):
321323
roundtrip_dt = open_datatree(filepath)
322324
assert_tree_equal(original_dt, roundtrip_dt)
323325

326+
@requires_zarr
324327
def test_to_zarr(self, tmpdir):
325328
filepath = str(
326329
tmpdir / "test.zarr"

datatree/tests/test_mapping.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
import pytest
22
import xarray as xr
3-
from test_datatree import assert_tree_equal, create_test_datatree
43

54
from datatree.datatree import DataTree
65
from datatree.mapping import TreeIsomorphismError, _check_isomorphic, map_over_subtree
76
from datatree.treenode import TreeNode
87

8+
from .test_datatree import assert_tree_equal, create_test_datatree
9+
910
empty = xr.Dataset()
1011

1112

0 commit comments

Comments
 (0)