def test_scalein(): m = Manager() m.start() testfile, cmd, args, wdir = dummy_cmd() config = ProcessConfig("dummy", cmd, args=args, cwd=wdir, numprocesses=1) m.load(config) state = m._get_locked_state("dummy") assert len(state.running) == 1 ret = m.scale("dummy", 1) assert ret == 2 time.sleep(0.2) assert len(state.running) == 2 ret = m.scale("dummy", 1) assert ret == 3 time.sleep(0.2) assert len(state.running) == 3 ret = m.scale("dummy", 3) assert ret == 6 time.sleep(0.2) assert len(state.running) == 6 m.stop() m.run()
def test_scalein(): m = Manager() m.start() testfile, cmd, args, wdir = dummy_cmd() config = ProcessConfig("dummy", cmd, args=args, cwd=wdir, numprocesses=1) m.load(config) state = m._get_locked_state("dummy") assert len(state.running) == 1 ret = m.scale("dummy", 1) assert ret == 2 time.sleep(0.2) assert len(state.running) == 2 ret = m.scale("dummy", 1) assert ret == 3 time.sleep(0.2) assert len(state.running) == 3 ret = m.scale("dummy", 3) assert ret == 6 time.sleep(0.2) assert len(state.running) == 6 m.stop() m.run()
def test_start_multiple(): m = Manager() m.start() testfile, cmd, args, wdir = dummy_cmd() config = ProcessConfig("dummy", cmd, args=args, cwd=wdir, numprocesses=2) m.load(config) state = m._get_locked_state("dummy") assert len(state.running) == 2 m.stop() m.run()
def test_start_multiple(): m = Manager() m.start() testfile, cmd, args, wdir = dummy_cmd() config = ProcessConfig("dummy", cmd, args=args, cwd=wdir, numprocesses=2) m.load(config) state = m._get_locked_state("dummy") assert len(state.running) == 2 m.stop() m.run()
def test_simple_job(): m = Manager() m.start() testfile, cmd, args, wdir = dummy_cmd() config = ProcessConfig("dummy", cmd, args=args, cwd=wdir) m.load(config, start=False) state = m._get_locked_state("dummy") assert state.numprocesses == 1 assert state.name == "default.dummy" assert state.cmd == cmd assert state.config['args'] == args assert state.config['cwd'] == wdir m.unload("dummy") with pytest.raises(ProcessError): m._get_locked_state("dummy") m.stop() m.run()
def test_simple_job(): m = Manager() m.start() testfile, cmd, args, wdir = dummy_cmd() config = ProcessConfig("dummy", cmd, args=args, cwd=wdir) m.load(config, start=False) state = m._get_locked_state("dummy") assert state.numprocesses == 1 assert state.name == "default.dummy" assert state.cmd == cmd assert state.config['args'] == args assert state.config['cwd'] == wdir m.unload("dummy") with pytest.raises(ProcessError): m._get_locked_state("dummy") m.stop() m.run()
def test_start_stop_job(): res = [] m = Manager() m.start() testfile, cmd, args, wdir = dummy_cmd() config = ProcessConfig("dummy", cmd, args=args, cwd=wdir) m.load(config) state = m._get_locked_state("dummy") res.append(len(state.running)) m.stop_job("dummy") res.append(len(state.running)) m.stop() m.run() assert res == [1, 0]
def test_start_stop_job(): res = [] m = Manager() m.start() testfile, cmd, args, wdir = dummy_cmd() config = ProcessConfig("dummy", cmd, args=args, cwd=wdir) m.load(config) state = m._get_locked_state("dummy") res.append(len(state.running)) m.stop_job("dummy") res.append(len(state.running)) m.stop() m.run() assert res == [1, 0]
def test_numprocesses(): m = Manager() m.start() testfile, cmd, args, wdir = dummy_cmd() config = ProcessConfig("dummy", cmd, args=args, cwd=wdir, numprocesses=4) m.load(config) state = m._get_locked_state("dummy") assert len(state.running) == 4 state.numprocesses = 0 assert state.numprocesses == 0 m.manage("dummy") time.sleep(0.2) assert len(state.running) == 0 m.stop() m.run()
def test_process_commit(): emitted = [] m = Manager() m.start() def cb(ev, msg): emitted.append(msg) # subscribe to all events m.events.subscribe('job.default.dummy.exit', cb) testfile, cmd, args, wdir = dummy_cmd() config = ProcessConfig("dummy", cmd, args=args, cwd=wdir, numprocesses=0) m.load(config) pids0 = m.pids() pid = m.commit("dummy", env={"BLAH": "test"}) process = m.get_process(pid) pids1 = m.pids() state = m._get_locked_state("dummy") assert len(state.running) == 0 assert state.numprocesses == 0 assert len(state.running_out) == 1 m.unload("dummy") time.sleep(0.2) m.stop() m.run() assert pids0 == [] assert pid == 1 assert process.name == "default.dummy" assert process.pid == 1 assert "BLAH" in process.env assert pids1 == [1] assert len(emitted) == 1 assert len(emitted[0]) == 7 msg = emitted[0] assert "exit_status" in msg assert msg['once'] == True
def test_numprocesses(): m = Manager() m.start() testfile, cmd, args, wdir = dummy_cmd() config = ProcessConfig("dummy", cmd, args=args, cwd=wdir, numprocesses=4) m.load(config) state = m._get_locked_state("dummy") assert len(state.running) == 4 state.numprocesses = 0 assert state.numprocesses == 0 m.manage("dummy") time.sleep(0.2) assert len(state.running) == 0 m.stop() m.run()
def test_process_commit(): emitted = [] m = Manager() m.start() def cb(ev, msg): emitted.append(msg) # subscribe to all events m.events.subscribe('job.default.dummy.exit', cb) testfile, cmd, args, wdir = dummy_cmd() config = ProcessConfig("dummy", cmd, args=args, cwd=wdir, numprocesses=0) m.load(config) pids0 = m.pids() pid = m.commit("dummy", env={"BLAH": "test"}) process = m.get_process(pid) pids1 = m.pids() state = m._get_locked_state("dummy") assert len(state.running) == 0 assert state.numprocesses == 0 assert len(state.running_out) == 1 m.unload("dummy") time.sleep(0.2) m.stop() m.run() assert pids0 == [] assert pid == 1 assert process.name == "default.dummy" assert process.pid == 1 assert "BLAH" in process.env assert pids1 == [1] assert len(emitted) == 1 assert len(emitted[0]) == 7 msg = emitted[0] assert "exit_status" in msg assert msg['once'] == True
def test_process_id(): m = Manager() m.start() testfile, cmd, args, wdir = dummy_cmd() config = ProcessConfig("dummy", cmd, args=args, cwd=wdir, numprocesses=4) m.load(config) state = m._get_locked_state("dummy") res = [] def cb(m, p): res.append(p.pid) res2 = [p.pid for p in m.list("dummy")] m.walk(cb, "dummy") m.stop() m.run() assert res == [1, 2, 3, 4] assert res == res2
def test_process_id(): m = Manager() m.start() testfile, cmd, args, wdir = dummy_cmd() config = ProcessConfig("dummy", cmd, args=args, cwd=wdir, numprocesses=4) m.load(config) state = m._get_locked_state("dummy") res = [] def cb(m, p): res.append(p.pid) res2 = [p.pid for p in m.list("dummy")] m.walk(cb, "dummy") m.stop() m.run() assert res == [1, 2, 3, 4] assert res == res2