Skip to content

Commit b9739f7

Browse files
authored
Promote backend test fixture to conftest (#5410)
* Promote backend test fixture to conftest Also adds an example of parameterizing a test in dataset.py * .
1 parent 83eda1a commit b9739f7

File tree

3 files changed

+13
-34
lines changed

3 files changed

+13
-34
lines changed

xarray/tests/conftest.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import pytest
2+
3+
from . import requires_dask
4+
5+
6+
@pytest.fixture(params=["numpy", pytest.param("dask", marks=requires_dask)])
7+
def backend(request):
8+
return request.param

xarray/tests/test_dataarray.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6447,11 +6447,6 @@ def test_idxminmax_dask(self, op, ndim):
64476447
assert_equal(getattr(ar0_dsk, op)(dim="x"), getattr(ar0_raw, op)(dim="x"))
64486448

64496449

6450-
@pytest.fixture(params=["numpy", pytest.param("dask", marks=requires_dask)])
6451-
def backend(request):
6452-
return request.param
6453-
6454-
64556450
@pytest.fixture(params=[1])
64566451
def da(request, backend):
64576452
if request.param == 1:

xarray/tests/test_dataset.py

Lines changed: 5 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -6075,7 +6075,7 @@ def test_query(self, backend, engine, parser):
60756075
ds.query(x="spam > 50") # name not present
60766076

60776077

6078-
# Py.test tests
6078+
# pytest tests — new tests should go here, rather than in the class.
60796079

60806080

60816081
@pytest.fixture(params=[None])
@@ -6084,7 +6084,7 @@ def data_set(request):
60846084

60856085

60866086
@pytest.mark.parametrize("test_elements", ([1, 2], np.array([1, 2]), DataArray([1, 2])))
6087-
def test_isin(test_elements):
6087+
def test_isin(test_elements, backend):
60886088
expected = Dataset(
60896089
data_vars={
60906090
"var1": (("dim1",), [0, 1]),
@@ -6093,6 +6093,9 @@ def test_isin(test_elements):
60936093
}
60946094
).astype("bool")
60956095

6096+
if backend == "dask":
6097+
expected = expected.chunk()
6098+
60966099
result = Dataset(
60976100
data_vars={
60986101
"var1": (("dim1",), [0, 1]),
@@ -6104,33 +6107,6 @@ def test_isin(test_elements):
61046107
assert_equal(result, expected)
61056108

61066109

6107-
@pytest.mark.skipif(not has_dask, reason="requires dask")
6108-
@pytest.mark.parametrize("test_elements", ([1, 2], np.array([1, 2]), DataArray([1, 2])))
6109-
def test_isin_dask(test_elements):
6110-
expected = Dataset(
6111-
data_vars={
6112-
"var1": (("dim1",), [0, 1]),
6113-
"var2": (("dim1",), [1, 1]),
6114-
"var3": (("dim1",), [0, 1]),
6115-
}
6116-
).astype("bool")
6117-
6118-
result = (
6119-
Dataset(
6120-
data_vars={
6121-
"var1": (("dim1",), [0, 1]),
6122-
"var2": (("dim1",), [1, 2]),
6123-
"var3": (("dim1",), [0, 1]),
6124-
}
6125-
)
6126-
.chunk(1)
6127-
.isin(test_elements)
6128-
.compute()
6129-
)
6130-
6131-
assert_equal(result, expected)
6132-
6133-
61346110
def test_isin_dataset():
61356111
ds = Dataset({"x": [1, 2]})
61366112
with pytest.raises(TypeError):

0 commit comments

Comments
 (0)