94 lines
2.0 KiB
Python
94 lines
2.0 KiB
Python
import sys
|
|
|
|
import pytest
|
|
|
|
from ray._common.test_utils import run_string_as_driver
|
|
|
|
|
|
@pytest.mark.skipif(sys.platform == "win32", reason="Fail to create temp dir.")
|
|
def test_working_dir_deploy_new_version(ray_start, tmp_dir):
|
|
with open("hello", "w") as f:
|
|
f.write("world")
|
|
|
|
driver1 = """
|
|
import ray
|
|
from ray import serve
|
|
|
|
job_config = ray.job_config.JobConfig(runtime_env={"working_dir": "."})
|
|
ray.init(address="auto", namespace="serve", job_config=job_config)
|
|
|
|
|
|
@serve.deployment
|
|
class Test:
|
|
def __call__(self, *args):
|
|
return open("hello").read()
|
|
|
|
Test = Test.options(_internal=True, version="1")
|
|
handle = serve.run(Test.bind())
|
|
assert handle.remote().result() == "world"
|
|
"""
|
|
|
|
run_string_as_driver(driver1)
|
|
|
|
with open("hello", "w") as f:
|
|
f.write("world2")
|
|
|
|
driver2 = """
|
|
import ray
|
|
from ray import serve
|
|
from ray.serve._private.constants import SERVE_DEFAULT_APP_NAME
|
|
|
|
job_config = ray.job_config.JobConfig(runtime_env={"working_dir": "."})
|
|
ray.init(address="auto", namespace="serve", job_config=job_config)
|
|
|
|
|
|
@serve.deployment
|
|
class Test:
|
|
def __call__(self, *args):
|
|
return open("hello").read()
|
|
|
|
Test = Test.options(_internal=True, version="2")
|
|
handle = serve.run(Test.bind())
|
|
assert handle.remote().result() == "world2"
|
|
serve.delete(SERVE_DEFAULT_APP_NAME)
|
|
"""
|
|
|
|
run_string_as_driver(driver2)
|
|
|
|
|
|
@pytest.mark.skipif(
|
|
sys.platform == "win32", reason="Runtime env unsupported on Windows"
|
|
)
|
|
def test_pip_no_working_dir(ray_start):
|
|
driver = """
|
|
import ray
|
|
from ray import serve
|
|
import httpx
|
|
|
|
ray.init(address="auto")
|
|
|
|
|
|
@serve.deployment
|
|
def httpx_version(request):
|
|
return httpx.__version__
|
|
|
|
|
|
serve.run(httpx_version.options(
|
|
ray_actor_options={
|
|
"runtime_env": {
|
|
"pip": ["httpx==0.25.1"]
|
|
}
|
|
}).bind())
|
|
|
|
assert httpx.get("http://127.0.0.1:8000/httpx_version").text == "0.25.1"
|
|
"""
|
|
|
|
output = run_string_as_driver(driver)
|
|
print(output)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
import sys
|
|
|
|
sys.exit(pytest.main(["-sv", __file__]))
|