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_stats(): m = Manager() m.start() testfile, cmd, args, wdir = dummy_cmd() config = ProcessConfig("dummy", cmd, args=args, cwd=wdir) m.load(config) time.sleep(0.2) info = m.stats("dummy") info_by_id = m.get_process(1).info os_pid = m.running[1].os_pid m.stop() m.run() assert isinstance(info, dict) assert isinstance(info_by_id, dict) assert "os_pid" in info_by_id assert info_by_id["os_pid"] == os_pid assert info['name'] == "default.dummy" assert len(info['stats']) == 1 assert info['stats'][0]['os_pid'] == info_by_id['os_pid']