def test_cpp_invalid(test_env): test_env.start(1, executor="cpptester") with test_env.client.new_session() as s: t1 = Task("cpptester/this_should_not_exist", outputs=0) s.submit() with pytest.raises(TaskException, match='this_should_not_exist'): t1.wait()
def test_cpp_panic(test_env): test_env.start(1, executor="cpptester") with test_env.client.new_session() as s: t1 = Task("cpptester/panic", outputs=0) s.submit() with pytest.raises(TaskException, match='panicked on purpose'): t1.wait()
def test_cpp_invalid_outputs(test_env): test_env.start(1, executor="cpptester") with test_env.client.new_session() as s: obj = blob("WORLD") t1 = Task("cpptester/hello", inputs=(obj, ), outputs=3) s.submit() with pytest.raises(TaskException, match='3'): t1.wait()
def test_task_construction(fake_session): with fake_session as session: t1 = Task("dummy") t2 = Task("dummy") assert t1.session == session assert t2.session == session assert t1.id != t2.id
def test_task_keep_outputs(fake_session): with fake_session: t = Task("dummy", outputs=[ Output("a"), Output("b"), Output("c")]) assert all(not t.is_kept() for t in t.outputs) t.keep_outputs() assert all(t.is_kept() for t in t.outputs) t.unkeep_outputs() assert all(not t.is_kept() for t in t.outputs)
def test_task_outputs(fake_session): with fake_session: t1 = Task("dummy", outputs=(Output("a", size_hint=1.0, content_type="text"), Output("long_name"), Output("space inside"), Output(""))) assert "a" in t1.outputs assert "space inside" in t1.outputs assert "XXX" not in t1.outputs assert isinstance(t1.outputs["a"], DataObject) assert isinstance(t1.outputs["space inside"], DataObject) assert isinstance(t1.outputs["long_name"], DataObject) assert t1.outputs['a'].content_type == "text" assert t1.outputs['long_name'].content_type is None with pytest.raises(KeyError): t1.outputs["XXX"] assert t1.outputs["a"] != t1.outputs[3] assert t1.outputs["a"] == t1.outputs[0] assert t1.outputs["a"] != t1.outputs["long_name"] assert t1.outputs[1] == t1.outputs["long_name"]
def cpp_hello(obj): return Task("cpptester/hello", inputs=(obj, ), outputs=1)
def cpp_fail(obj): return Task("cpptester/fail", inputs=(obj, ), outputs=0)
def hello(obj): return Task("rusttester/hello", inputs=(obj,), outputs=1)