diff --git a/python-package/xgboost/testing/__init__.py b/python-package/xgboost/testing/__init__.py index 4eeaad6de..c6db8c8b3 100644 --- a/python-package/xgboost/testing/__init__.py +++ b/python-package/xgboost/testing/__init__.py @@ -107,6 +107,12 @@ def no_dask() -> PytestSkip: return no_mod("dask") +def no_dask_ml() -> PytestSkip: + if sys.platform.startswith("win"): + return {"reason": "Unsupported platform.", "condition": True} + return no_mod("dask_ml") + + def no_spark() -> PytestSkip: if sys.platform.startswith("win") or sys.platform.startswith("darwin"): return {"reason": "Unsupported platform.", "condition": True} diff --git a/tests/python-gpu/test_gpu_demos.py b/tests/python-gpu/test_gpu_demos.py index ef181a67e..2c4260fd1 100644 --- a/tests/python-gpu/test_gpu_demos.py +++ b/tests/python-gpu/test_gpu_demos.py @@ -27,13 +27,3 @@ def test_categorical_demo(): script = os.path.join(td.PYTHON_DEMO_DIR, 'categorical.py') cmd = ['python', script] subprocess.check_call(cmd) - - -@pytest.mark.skipif(**tm.no_dask()) -@pytest.mark.skipif(**tm.no_dask_cuda()) -@pytest.mark.skipif(**tm.no_cupy()) -@pytest.mark.mgpu -def test_dask_training(): - script = os.path.join(tm.demo_dir(__file__), 'dask', 'gpu_training.py') - cmd = ['python', script] - subprocess.check_call(cmd) diff --git a/tests/test_distributed/test_gpu_with_dask/test_gpu_demos.py b/tests/test_distributed/test_gpu_with_dask/test_gpu_demos.py new file mode 100644 index 000000000..92539aaa1 --- /dev/null +++ b/tests/test_distributed/test_gpu_with_dask/test_gpu_demos.py @@ -0,0 +1,25 @@ +import os +import subprocess + +import pytest + +from xgboost import testing as tm + + +@pytest.mark.skipif(**tm.no_dask()) +@pytest.mark.skipif(**tm.no_dask_cuda()) +@pytest.mark.skipif(**tm.no_cupy()) +@pytest.mark.mgpu +def test_dask_training(): + script = os.path.join(tm.demo_dir(__file__), "dask", "gpu_training.py") + cmd = ["python", script] + subprocess.check_call(cmd) + + +@pytest.mark.skipif(**tm.no_dask_cuda()) +@pytest.mark.skipif(**tm.no_dask()) +@pytest.mark.mgpu +def test_dask_sklearn_demo(): + script = os.path.join(tm.demo_dir(__file__), "dask", "sklearn_gpu_training.py") + cmd = ["python", script] + subprocess.check_call(cmd) diff --git a/tests/test_distributed/test_with_dask/test_demos.py b/tests/test_distributed/test_with_dask/test_demos.py new file mode 100644 index 000000000..051774ac0 --- /dev/null +++ b/tests/test_distributed/test_with_dask/test_demos.py @@ -0,0 +1,36 @@ +import os +import subprocess + +import pytest + +from xgboost import testing as tm + + +@pytest.mark.skipif(**tm.no_dask()) +def test_dask_cpu_training_demo(): + script = os.path.join(tm.demo_dir(__file__), "dask", "cpu_training.py") + cmd = ["python", script] + subprocess.check_call(cmd) + + +@pytest.mark.skipif(**tm.no_dask()) +def test_dask_cpu_survival_demo(): + script = os.path.join(tm.demo_dir(__file__), "dask", "cpu_survival.py") + cmd = ["python", script] + subprocess.check_call(cmd) + + +# Not actually run on CI due to missing dask_ml. +@pytest.mark.skipif(**tm.no_dask()) +@pytest.mark.skipif(**tm.no_dask_ml()) +def test_dask_callbacks_demo(): + script = os.path.join(tm.demo_dir(__file__), "dask", "dask_callbacks.py") + cmd = ["python", script] + subprocess.check_call(cmd) + + +@pytest.mark.skipif(**tm.no_dask()) +def test_dask_sklearn_demo(): + script = os.path.join(tm.demo_dir(__file__), "dask", "sklearn_cpu_training.py") + cmd = ["python", script] + subprocess.check_call(cmd)