Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 8796f11

Browse files
committed
Test for server restoration & streaming
1 parent 432b9be commit 8796f11

2 files changed

Lines changed: 27 additions & 1 deletion

File tree

tests/test_restore.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import time
22

3+
from .utils.wait import wait_until
34
from .utils.cmd import python
45
from .autoalloc.mock.mock import MockJobManager
56
from .autoalloc.mock.slurm import SlurmManager, adapt_slurm
@@ -270,3 +271,28 @@ def test_restore_open_job_more_submits(hq_env: HqEnv, tmp_path):
270271
table.check_row_value("Tasks", "3; Ids: 0-2")
271272
hq_env.start_worker()
272273
wait_for_job_state(hq_env, 1, "OPENED")
274+
275+
276+
def test_restore_streaming(hq_env: HqEnv, tmp_path):
277+
journal_path = os.path.join(tmp_path, "my.journal")
278+
stream_path = os.path.join(tmp_path, "stream")
279+
os.mkdir(stream_path)
280+
hq_env.start_server(args=["--journal", journal_path])
281+
hq_env.start_worker()
282+
hq_env.command(["job", "open"])
283+
hq_env.command(
284+
["job", "submit", "--job=1", "--stream", stream_path, "--", "bash", "-c", "echo $HQ_INSTANCE_ID; sleep 2"]
285+
)
286+
wait_for_job_state(hq_env, 1, "RUNNING")
287+
hq_env.stop_server()
288+
hq_env.start_server(args=["--journal", journal_path])
289+
290+
table = hq_env.command(["job", "info", "1"], as_table=True)
291+
table.check_row_value("Stdout", "<Stream>")
292+
table.check_row_value("Stderr", "<Stream>")
293+
hq_env.start_worker()
294+
hq_env.command(["job", "close", "1"])
295+
wait_for_job_state(hq_env, 1, "FINISHED")
296+
assert int(hq_env.command(["read", stream_path, "cat", "1", "stdout"])) > 0
297+
table = hq_env.command(["read", stream_path, "summary"], as_table=True)
298+
table.check_row_value("Superseded streams", "1")

tests/test_stream.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ def test_stream_overlap(hq_env: HqEnv):
100100
wait_for_job_state(hq_env, 1, "FINISHED")
101101
result = hq_env.command(["read", "mylog", "show"], as_lines=True)
102102

103-
chunks = [set(result[i * 2: i * 2 + 2]) for i in range(3)]
103+
chunks = [set(result[i * 2 : i * 2 + 2]) for i in range(3)]
104104
assert chunks[0] == {"1.1:0> A", "1.2:0> A"}
105105
assert chunks[1] == {"1.2:0> B", "1.1:0> B"}
106106

0 commit comments

Comments
 (0)