def test_task_delete_with_results(self): task_id = self._create_task()["uuid"] key = { "name": "atata", "description": "tatata", "pos": 0, "kw": { "args": {"a": "A"}, "context": {"c": "C"}, "sla": {"s": "S"}, "runner": {"r": "R", "type": "T"} } } data = { "sla": [ {"s": "S", "success": True}, {"1": "2", "success": True}, {"a": "A", "success": True} ], "load_duration": 13, "full_duration": 42 } subtask = db.subtask_create(task_id, title="foo") workload = db.workload_create(task_id, subtask["uuid"], key) db.workload_data_create(task_id, workload["uuid"], 0, {"raw": []}) db.workload_set_results(workload["uuid"], data) res = db.task_result_get_all_by_uuid(task_id) self.assertEqual(len(res), 1) db.task_delete(task_id) res = db.task_result_get_all_by_uuid(task_id) self.assertEqual(len(res), 0)
def test_task_delete_with_results(self): task_id = self._create_task()["uuid"] db.task_result_create(task_id, {task_id: task_id}, {task_id: task_id}) res = db.task_result_get_all_by_uuid(task_id) self.assertEqual(len(res), 1) db.task_delete(task_id) res = db.task_result_get_all_by_uuid(task_id) self.assertEqual(len(res), 0)
def test_task_delete_with_results(self): task_id = self._create_task()["uuid"] key = { "name": "atata", "pos": 0, "kw": { "args": { "a": "A" }, "context": { "c": "C" }, "sla": { "s": "S" }, "runner": { "r": "R", "type": "T" } } } data = { "raw": [], "sla": [{ "s": "S", "success": True }, { "1": "2", "success": True }, { "a": "A", "success": True }], "load_duration": 13, "full_duration": 42 } db.task_result_create(task_id, key, data) res = db.task_result_get_all_by_uuid(task_id) self.assertEqual(len(res), 1) db.task_delete(task_id) res = db.task_result_get_all_by_uuid(task_id) self.assertEqual(len(res), 0)
def test_task_result_create(self): task_id = self._create_task()["uuid"] key = { "name": "atata", "description": "tatata", "pos": 0, "kw": { "args": {"a": "A"}, "context": {"c": "C"}, "sla": {"s": "S"}, "hooks": [{"name": "foo_hook", "args": "bar", "trigger": {"name": "foo_trigger", "args": "baz"}}], "runner": {"r": "R", "type": "T"} } } raw_data = { "raw": [ {"error": "anError", "duration": 0, "timestamp": 1, "atomic_actions": []}, {"duration": 1, "timestamp": 1, "atomic_actions": []}, {"duration": 2, "timestamp": 2, "atomic_actions": []} ], } data = { "sla": [ {"s": "S", "success": True}, {"1": "2", "success": True}, {"a": "A", "success": True} ], "load_duration": 13, "full_duration": 42, "hooks": [ {"config": {"name": "foo_hook", "args": "bar", "trigger": {"name": "foo_trigger", "args": "baz"}}, "results": [ {"status": "success", "started_at": 10.0, "finished_at": 11.0, "triggered_by": {"time": 5}}], "summary": {}} ], } subtask = db.subtask_create(task_id, title="foo") workload = db.workload_create(task_id, subtask["uuid"], key) db.workload_data_create(task_id, workload["uuid"], 0, raw_data) db.workload_set_results(workload["uuid"], data) res = db.task_result_get_all_by_uuid(task_id) self.assertEqual(1, len(res)) self.assertEqual(raw_data["raw"], res[0]["data"]["raw"]) self.assertEqual(key, res[0]["key"])
def test_task_result_get_all_by_uuid(self): task1 = self._create_task()["uuid"] task2 = self._create_task()["uuid"] for task_id in (task1, task2): db.task_result_create(task_id, {task_id: task_id}, {task_id: task_id}) for task_id in (task1, task2): res = db.task_result_get_all_by_uuid(task_id) data = {task_id: task_id} self.assertEqual(len(res), 1) self.assertEqual(res[0]["key"], data) self.assertEqual(res[0]["data"], data)
def test_task_result_create(self): task_id = self._create_task()["uuid"] key = { "name": "atata", "pos": 0, "kw": { "args": { "a": "A" }, "context": { "c": "C" }, "sla": { "s": "S" }, "runner": { "r": "R", "type": "T" } } } data = { "raw": [{ "error": "anError" }, { "duration": 1 }, { "duration": 2 }], "sla": [{ "s": "S", "success": True }, { "1": "2", "success": True }, { "a": "A", "success": True }], "load_duration": 13, "full_duration": 42, "hooks": [], } db.task_result_create(task_id, key, data) res = db.task_result_get_all_by_uuid(task_id) self.assertEqual(1, len(res)) self.assertEqual(data["raw"], res[0]["data"]["raw"])
def test_task_result_get_all_by_uuid(self): task1 = self._create_task()["uuid"] task2 = self._create_task()["uuid"] key = { "name": "atata", "description": "tatata", "pos": 0, "kw": { "args": { "task_id": "task_id" }, "context": { "c": "C" }, "sla": { "s": "S" }, "runner": { "r": "R", "type": "T" }, "hooks": [], } } data = { "sla": [{ "success": True }], "load_duration": 13, "full_duration": 42, "hooks": [], } for task_id in (task1, task2): key["kw"]["args"]["task_id"] = task_id data["sla"][0] = {"success": True} subtask = db.subtask_create(task_id, title="foo") workload = db.workload_create(task_id, subtask["uuid"], key) db.workload_data_create(task_id, workload["uuid"], 0, {"raw": []}) db.workload_set_results(workload["uuid"], data) for task_id in (task1, task2): res = db.task_result_get_all_by_uuid(task_id) key["kw"]["args"]["task_id"] = task_id data["sla"][0] = {"success": True} data["raw"] = [] self.assertEqual(len(res), 1) self.assertEqual(res[0]["key"], key) self.assertEqual(res[0]["data"], data)
def test_task_result_get_all_by_uuid(self): task1 = self._create_task()["uuid"] task2 = self._create_task()["uuid"] key = { "name": "atata", "pos": 0, "kw": { "args": { "task_id": "task_id" }, "context": { "c": "C" }, "sla": { "s": "S" }, "runner": { "r": "R", "type": "T" } } } data = { "raw": [], "sla": [{ "success": True }], "load_duration": 13, "full_duration": 42, "hooks": [], } for task_id in (task1, task2): key["kw"]["args"]["task_id"] = task_id data["sla"][0] = {"success": True} db.task_result_create(task_id, key, data) for task_id in (task1, task2): res = db.task_result_get_all_by_uuid(task_id) key["kw"]["args"]["task_id"] = task_id data["sla"][0] = {"success": True} self.assertEqual(len(res), 1) self.assertEqual(res[0]["key"], key) self.assertEqual(res[0]["data"], data)
def get_results(self): return db.task_result_get_all_by_uuid(self.task["uuid"])
def test_task_multiple_raw_result_create(self): task_id = self._create_task()["uuid"] key = { "name": "atata", "description": "tatata", "pos": 0, "kw": { "args": {"a": "A"}, "context": {"c": "C"}, "sla": {"s": "S"}, "runner": {"r": "R", "type": "T"}, "hooks": [], } } subtask = db.subtask_create(task_id, title="foo") workload = db.workload_create(task_id, subtask["uuid"], key) db.workload_data_create(task_id, workload["uuid"], 0, { "raw": [ {"error": "anError", "timestamp": 10, "duration": 1, "atomic_actions": []}, {"duration": 1, "timestamp": 10, "duration": 1, "atomic_actions": []}, {"duration": 2, "timestamp": 10, "duration": 1, "atomic_actions": []}, {"duration": 3, "timestamp": 10, "duration": 1, "atomic_actions": []}, ], }) db.workload_data_create(task_id, workload["uuid"], 1, { "raw": [ {"error": "anError2", "timestamp": 10, "duration": 1, "atomic_actions": []}, {"duration": 6, "timestamp": 10, "duration": 1, "atomic_actions": []}, {"duration": 5, "timestamp": 10, "duration": 1, "atomic_actions": []}, {"duration": 4, "timestamp": 10, "duration": 1, "atomic_actions": []}, ], }) db.workload_data_create(task_id, workload["uuid"], 2, { "raw": [ {"duration": 7, "timestamp": 10, "duration": 1, "atomic_actions": []}, {"duration": 8, "timestamp": 10, "duration": 1, "atomic_actions": []}, ], }) db.workload_set_results(workload["uuid"], { "sla": [{"success": True}], "load_duration": 13, "full_duration": 42 }) res = db.task_result_get_all_by_uuid(task_id) self.assertEqual(len(res), 1) self.assertEqual(res[0]["key"], key) self.assertEqual(res[0]["data"], { "raw": [ {"error": "anError", "timestamp": 10, "duration": 1, "atomic_actions": []}, {"duration": 1, "timestamp": 10, "duration": 1, "atomic_actions": []}, {"duration": 2, "timestamp": 10, "duration": 1, "atomic_actions": []}, {"duration": 3, "timestamp": 10, "duration": 1, "atomic_actions": []}, {"error": "anError2", "timestamp": 10, "duration": 1, "atomic_actions": []}, {"duration": 6, "timestamp": 10, "duration": 1, "atomic_actions": []}, {"duration": 5, "timestamp": 10, "duration": 1, "atomic_actions": []}, {"duration": 4, "timestamp": 10, "duration": 1, "atomic_actions": []}, {"duration": 7, "timestamp": 10, "duration": 1, "atomic_actions": []}, {"duration": 8, "timestamp": 10, "duration": 1, "atomic_actions": []}, ], "sla": [{"success": True}], "hooks": [], "load_duration": 13, "full_duration": 42 }) db.task_delete(task_id) res = db.task_result_get_all_by_uuid(task_id) self.assertEqual(len(res), 0)
def test_task_result_get_all_by_uuid__transform_atomics(self): task = self._create_task()["uuid"] key = { "name": "atata", "description": "tatata", "pos": 0, "kw": { "args": {"task_id": "task_id"}, "context": {"c": "C"}, "sla": {"s": "S"}, "runner": {"r": "R", "type": "T"}, "hooks": [], } } workloads_data = [ {"raw": [ {"duration": 1, "timestamp": 1, "idle_duration": 1, "error": None, "output": None, "atomic_actions": collections.OrderedDict( [("foo", 1), ("bar", 2)])}, {"duration": 1, "timestamp": 1, "idle_duration": 1, "error": None, "output": None, "atomic_actions": collections.OrderedDict( [("xxx", 1), ("yyy", 2)])}, ]}, {"raw": [ {"duration": 1, "timestamp": 1, "idle_duration": 1, "error": None, "output": None, "atomic_actions": collections.OrderedDict( [("xxx", 1), ("yyy", 2), ("zzz", 2)])} ]} ] key["kw"]["args"]["task_id"] = task subtask = db.subtask_create(task, title="foo") workload = db.workload_create(task, subtask["uuid"], key) for i, data in enumerate(workloads_data): db.workload_data_create(task, workload["uuid"], i, data) db.workload_set_results(workload["uuid"], {"sla": [{"success": True}], "load_duration": 13, "full_duration": 42, "hooks": []}) results = db.task_result_get_all_by_uuid(task) self.assertEqual(1, len(results)) self.assertEqual( [[{"started_at": 1, "finished_at": 2, "children": [], "name": "foo"}, {"started_at": 2, "finished_at": 4, "children": [], "name": "bar"}], [{"started_at": 1, "finished_at": 2, "children": [], "name": "xxx"}, {"started_at": 2, "finished_at": 4, "children": [], "name": "yyy"}], [{"started_at": 1, "finished_at": 2, "children": [], "name": "xxx"}, {"started_at": 2, "finished_at": 4, "children": [], "name": "yyy"}, {"started_at": 4, "finished_at": 6, "children": [], "name": "zzz"}]], [w["atomic_actions"] for w in results[0]["data"]["raw"]])