@@ -56,14 +56,12 @@ def test_invalid_gcs_address():
56
56
JobSubmissionClient ("abc:abc" )
57
57
58
58
59
- @pytest .mark .skipif (
60
- sys .version_info >= (3 , 12 ), reason = "lib is not supported on Python 3.12"
61
- )
62
- def test_job_isolation (call_ray_start ):
59
+ def test_job_isolation (ray_start_regular ):
63
60
# Make sure two jobs with same module name
64
61
# don't interfere with each other
65
62
# (https://github.com/ray-project/ray/issues/19358).
66
- address = call_ray_start
63
+ gcs_address = ray_start_regular .address_info ["gcs_address" ]
64
+
67
65
lib_template = """
68
66
import ray
69
67
@@ -88,19 +86,34 @@ def subtask():
88
86
with open (v1_lib , "w" ) as f :
89
87
f .write (lib_template .format (1 ))
90
88
with open (v1_driver , "w" ) as f :
91
- f .write (driver_template .format (address , 1 ))
89
+ f .write (driver_template .format (gcs_address , 1 ))
92
90
93
91
os .makedirs (os .path .join (tmpdir , "v2" ))
94
92
v2_lib = os .path .join (tmpdir , "v2" , "lib.py" )
95
93
v2_driver = os .path .join (tmpdir , "v2" , "driver.py" )
96
94
with open (v2_lib , "w" ) as f :
97
95
f .write (lib_template .format (2 ))
98
96
with open (v2_driver , "w" ) as f :
99
- f .write (driver_template .format (address , 2 ))
97
+ f .write (driver_template .format (gcs_address , 2 ))
100
98
101
99
subprocess .check_call ([sys .executable , v1_driver ])
102
100
subprocess .check_call ([sys .executable , v2_driver ])
103
101
102
+ dashboard_url = ray_start_regular .dashboard_url
103
+ client = JobSubmissionClient (f"http://{ dashboard_url } " )
104
+ jobs = client .list_jobs ()
105
+ assert len (jobs ) == 3 # ray_start_regular, v1, v2
106
+
107
+ num_succeeded = 0
108
+ num_running = 0
109
+ for job in jobs :
110
+ if job .status == "SUCCEEDED" :
111
+ num_succeeded += 1
112
+ elif job .status == "RUNNING" :
113
+ num_running += 1
114
+ assert num_succeeded == 2
115
+ assert num_running == 1
116
+
104
117
105
118
def test_job_observability (ray_start_regular ):
106
119
driver_template = """
0 commit comments