Skip to content

Commit

Permalink
TEST-modin-project#3085: Add testing for ray-client to push-to-master…
Browse files Browse the repository at this point in the history
….yml

Signed-off-by: Chris Wong <[email protected]>
ckw017 committed Jun 14, 2021

Verified

This commit was signed with the committer’s verified signature.
lucasssvaz Lucas Saavedra Vaz
1 parent cf259f1 commit 20d0b36
Showing 3 changed files with 86 additions and 1 deletion.
52 changes: 52 additions & 0 deletions .github/workflows/push-to-master.yml
Original file line number Diff line number Diff line change
@@ -59,3 +59,55 @@ jobs:
- name: Docstring URL validity check
shell: bash -l {0}
run: python -m pytest modin/test/test_docstring_urls.py

test-ray-client:
runs-on: ubuntu-latest
defaults:
run:
shell: bash -l {0}
strategy:
matrix:
python-version: ["3.7", "3.8"]
test-task:
- modin/pandas/test/dataframe/test_binary.py
- modin/pandas/test/dataframe/test_default.py
- modin/pandas/test/dataframe/test_indexing.py
- modin/pandas/test/dataframe/test_iter.py
- modin/pandas/test/dataframe/test_join_sort.py
- modin/pandas/test/dataframe/test_map_metadata.py
- modin/pandas/test/dataframe/test_reduction.py
- modin/pandas/test/dataframe/test_udf.py
- modin/pandas/test/dataframe/test_window.py
- modin/pandas/test/dataframe/test_pickle.py
- modin/pandas/test/test_series.py
- modin/pandas/test/test_rolling.py
- modin/pandas/test/test_concat.py
- modin/pandas/test/test_groupby.py
- modin/pandas/test/test_reshape.py
- modin/pandas/test/test_general.py
- modin/pandas/test/test_io.py
env:
MODIN_ENGINE: ray
MODIN_MEMORY: 1000000000
MODIN_TEST_RAY_CLIENT: "True"
name: "test-ray-client"
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 1
- uses: conda-incubator/setup-miniconda@v2
with:
activate-environment: modin
python-version: ${{matrix.python-version}}
channel-priority: strict
use-only-tar-bz2: true # IMPORTANT: This needs to be set for caching to work properly!
- run: pip install -r requirements-dev.txt
# Use a ray master commit that includes the fix here: https://github.com/ray-project/ray/pull/16278
# Can be changed after a Ray version > 1.4 is released.
- run: pip install https://s3-us-west-2.amazonaws.com/ray-wheels/master/c8e3ed9eec30119092ef966ee7b8982c8954c333/ray-2.0.0.dev0-cp37-cp37m-manylinux2014_x86_64.whl
if: matrix.python-version == '3.7'
- run: pip install https://s3-us-west-2.amazonaws.com/ray-wheels/master/c8e3ed9eec30119092ef966ee7b8982c8954c333/ray-2.0.0.dev0-cp38-cp38-manylinux2014_x86_64.whl
if: matrix.python-version == '3.8'
- name: Install HDF5
run: sudo apt update && sudo apt install -y libhdf5-dev
- run: python -m pytest ${{matrix.test-task}}
10 changes: 10 additions & 0 deletions modin/config/envvars.py
Original file line number Diff line number Diff line change
@@ -239,6 +239,16 @@ class TestDatasetSize(EnvironmentVariable, type=str):
choices = ("Small", "Normal", "Big")


class TestRayClient(EnvironmentVariable, type=bool):
"""
Set to true to start and connect ray client before a testing session
starts.
"""

varname = "MODIN_TEST_RAY_CLIENT"
default = False


class TrackFileLeaks(EnvironmentVariable, type=bool):
"""
Whether to track for open file handles leakage during testing
25 changes: 24 additions & 1 deletion modin/conftest.py
Original file line number Diff line number Diff line change
@@ -42,7 +42,7 @@ def _saving_make_api_url(token, _make_api_url=modin.utils._make_api_url):

import modin # noqa: E402
import modin.config # noqa: E402
from modin.config import IsExperimental # noqa: E402
from modin.config import IsExperimental, TestRayClient # noqa: E402

from modin.backends import PandasQueryCompiler, BaseQueryCompiler # noqa: E402
from modin.engines.python.pandas_on_python.io import PandasOnPythonIO # noqa: E402
@@ -452,3 +452,26 @@ def TestReadGlobCSVFixture():
@pytest.fixture
def get_generated_doc_urls():
return lambda: _generated_doc_urls


ray_client_server = None


def pytest_sessionstart(session):
if TestRayClient.get():
import ray
import ray.util.client.server.server as ray_server

addr = "localhost:50051"
global ray_client_server
ray_client_server = ray_server.serve(addr)
ray.util.connect(addr)


def pytest_sessionfinish(session, exitstatus):
if TestRayClient.get():
import ray

ray.util.disconnect()
if ray_client_server:
ray_client_server.stop(0)

0 comments on commit 20d0b36

Please sign in to comment.