def test__process_results(self, mock_main_duration, mock_atomic): results = [ {"key": {"name": "n1", "pos": 1, "kw": "config1"}}, {"key": {"name": "n2", "pos": 2, "kw": "config2"}} ] table_cols = [ {"title": "action", "class": "center"}, {"title": "min (sec)", "class": "center"}, {"title": "avg (sec)", "class": "center"}, {"title": "max (sec)", "class": "center"}, {"title": "90 percentile", "class": "center"}, {"title": "95 percentile", "class": "center"}, {"title": "success", "class": "center"}, {"title": "count", "class": "center"}] mock_main_duration.return_value = "main_duration" mock_atomic.return_value = "main_atomic" output = plot._process_results(results) for i, r in enumerate(results): self.assertEqual(output[i], { "name": "%s (task #%d)" % (r["key"]["name"], r["key"]["pos"]), "config": {r["key"]["name"]: [r["key"]["kw"]]}, "duration": mock_main_duration.return_value, "atomic": mock_atomic.return_value, "table_cols": table_cols, "table_rows": [['total', None, None, None, None, None, 0, 0]] })
def test__process_results(self, mock_main_duration, mock_atomic, mock_prepare): results = [{ "key": { "name": "n1", "pos": 1, "kw": "config1" } }, { "key": { "name": "n2", "pos": 2, "kw": "config2" } }] table_cols = [{ "title": "action", "class": "center" }, { "title": "min (sec)", "class": "center" }, { "title": "avg (sec)", "class": "center" }, { "title": "max (sec)", "class": "center" }, { "title": "90 percentile", "class": "center" }, { "title": "95 percentile", "class": "center" }, { "title": "success", "class": "center" }, { "title": "count", "class": "center" }] mock_main_duration.return_value = "main_duration" mock_atomic.return_value = "main_atomic" output = plot._process_results(results) for i, r in enumerate(results): self.assertEqual( output[i], { "name": "%s (task #%d)" % (r["key"]["name"], r["key"]["pos"]), "config": { r["key"]["name"]: [r["key"]["kw"]] }, "duration": mock_main_duration.return_value, "atomic": mock_atomic.return_value, "table_cols": table_cols, "table_rows": [['total', None, None, None, None, None, 0, 0]] })
def test__process_results(self, mock_main_duration, mock_atomic, mock_prepare): results = [{ "key": { "name": "Klass.method_foo", "pos": 0, "kw": "config1" } }, { "key": { "name": "Klass.method_foo", "pos": 1, "kw": "config2" } }, { "key": { "name": "Klass.method_bar", "pos": 0, "kw": "config3" } }] table_cols = [ "action", "min (sec)", "avg (sec)", "max (sec)", "90 percentile", "95 percentile", "success", "count" ] mock_main_duration.return_value = "main_duration" mock_atomic.return_value = "main_atomic" output = plot._process_results(results) results = sorted(results, key=lambda r: "%s%s" % (r["key"]["name"], r["key"]["pos"])) for i, r in enumerate(results): config = json.dumps({r["key"]["name"]: r["key"]["kw"]}, indent=2) pos = int(r["key"]["pos"]) cls = r["key"]["name"].split(".")[0] met = r["key"]["name"].split(".")[1] name = "%s%s" % (met, (pos and " [%d]" % (pos + 1) or "")) self.assertEqual( output[i], { "cls": cls, "pos": r["key"]["pos"], "met": met, "name": name, "config": config, "duration": mock_main_duration.return_value, "atomic": mock_atomic.return_value, "table_cols": table_cols, "table_rows": [['total', None, None, None, None, None, 0, 0]] })
def test__process_results(self, mock_main_duration, mock_atomic): results = [ {"key": {"name": "n1", "pos": 1, "kw": "config1"}}, {"key": {"name": "n2", "pos": 2, "kw": "config2"}} ] mock_main_duration.return_value = "main_duration" mock_atomic.return_value = "main_atomic" output = plot._process_results(results) for i, r in enumerate(results): self.assertEqual(output[i], { "name": "%s (task #%d)" % (r["key"]["name"], r["key"]["pos"]), "config": r["key"]["kw"], "duration": mock_main_duration.return_value, "atomic": mock_atomic.return_value })
def test__process_results(self, mock_main_duration, mock_atomic, mock_prepare): results = [ {"key": {"name": "Klass.method_foo", "pos": 0, "kw": "config1"}}, {"key": {"name": "Klass.method_foo", "pos": 1, "kw": "config2"}}, {"key": {"name": "Klass.method_bar", "pos": 0, "kw": "config3"}} ] table_cols = [ {"title": "action", "class": "center"}, {"title": "min (sec)", "class": "center"}, {"title": "avg (sec)", "class": "center"}, {"title": "max (sec)", "class": "center"}, {"title": "90 percentile", "class": "center"}, {"title": "95 percentile", "class": "center"}, {"title": "success", "class": "center"}, {"title": "count", "class": "center"}] mock_main_duration.return_value = "main_duration" mock_atomic.return_value = "main_atomic" output = plot._process_results(results) results = sorted(results, key=lambda r: "%s%s" % (r["key"]["name"], r["key"]["pos"])) for i, r in enumerate(results): config = json.dumps({r["key"]["name"]: [r["key"]["kw"]]}, indent=2) pos = int(r["key"]["pos"]) cls = r["key"]["name"].split(".")[0] met = r["key"]["name"].split(".")[1] name = "%s%s" % (met, (pos and " [%d]" % (pos + 1) or "")) self.assertEqual(output[i], { "cls": cls, "pos": r["key"]["pos"], "met": met, "name": name, "config": config, "duration": mock_main_duration.return_value, "atomic": mock_atomic.return_value, "table_cols": table_cols, "table_rows": [['total', None, None, None, None, None, 0, 0]] })
def test__process_results(self, mock_main_duration, mock_get_atomic, mock_atomic, mock_prepare, mock_task_json): sla = [{"success": True}] result = ["iter_1", "iter_2"] iterations = len(result) kw = {"runner": {"type": "foo_runner"}} result_ = lambda i: { "key": {"pos": i, "name": "Class.method", "kw": kw}, "result": result, "sla": sla} results = [result_(i) for i in 0, 1, 2] table_cols = ["Action", "Min (sec)", "Avg (sec)", "Max (sec)", "90 percentile", "95 percentile", "Success", "Count"] atomic_durations = [["atomic_1"], ["atomic_2"]] mock_prepare.side_effect = lambda i: {"errors": "errors_list", "output": [], "output_errors": [], "sla": i["sla"], "load_duration": 1234.5, "full_duration": 6789.1} mock_main_duration.return_value = "main_duration" mock_get_atomic.return_value = atomic_durations mock_atomic.return_value = "main_atomic" mock_task_json.return_value = "JSON" source, scenarios = plot._process_results(results) source_dict = {"Class.method": [kw] * len(results)} mock_task_json.assert_called_with(source_dict) self.assertEqual(source, "JSON") results = sorted(results, key=lambda r: "%s%s" % (r["key"]["name"], r["key"]["pos"])) for i, r in enumerate(results): config = json.dumps({r["key"]["name"]: r["key"]["kw"]}, indent=2) pos = int(r["key"]["pos"]) cls = r["key"]["name"].split(".")[0] met = r["key"]["name"].split(".")[1] name = "%s%s" % (met, (pos and " [%d]" % (pos + 1) or "")) self.assertEqual(scenarios[i], { "cls": cls, "pos": r["key"]["pos"], "met": met, "name": name, "config": config, "iterations": mock_main_duration.return_value, "atomic": mock_atomic.return_value, "table_cols": table_cols, "table_rows": atomic_durations, "errors": "errors_list", "output": [], "output_errors": [], "runner": "foo_runner", "sla": sla, "sla_success": True, "iterations_num": iterations, "load_duration": 1234.5, "full_duration": 6789.1 })
def test__process_results(self, mock__process_main_duration, mock__get_atomic_action_durations, mock__process_atomic, mock__prepare_data, mock_dumps): sla = [{"success": True}] result = ["iter_1", "iter_2"] iterations = len(result) kw = {"runner": {"type": "foo_runner"}} result_ = lambda i: { "key": { "pos": i, "name": "Class.method", "kw": kw }, "result": result, "sla": sla } results = [result_(i) for i in (0, 1, 2)] table_cols = [ "Action", "Min (sec)", "Median (sec)", "90%ile (sec)", "95%ile (sec)", "Max (sec)", "Avg (sec)", "Success", "Count" ] atomic_durations = [["atomic_1"], ["atomic_2"]] mock__prepare_data.side_effect = lambda i: { "errors": "errors_list", "output": [], "output_errors": [], "sla": i["sla"], "load_duration": 1234.5, "full_duration": 6789.1 } mock__process_main_duration.return_value = "main_duration" mock__get_atomic_action_durations.return_value = atomic_durations mock__process_atomic.return_value = "main_atomic" mock_dumps.return_value = "JSON" source, scenarios = plot._process_results(results) source_dict = {"Class.method": [kw] * len(results)} mock_dumps.assert_called_with(source_dict, indent=2, sort_keys=True) self.assertEqual(source, "JSON") results = sorted(results, key=lambda r: "%s%s" % (r["key"]["name"], r["key"]["pos"])) for i, r in enumerate(results): config = json.dumps({r["key"]["name"]: [r["key"]["kw"]]}, indent=2) pos = int(r["key"]["pos"]) cls = r["key"]["name"].split(".")[0] met = r["key"]["name"].split(".")[1] name = "%s%s" % (met, (pos and " [%d]" % (pos + 1) or "")) self.assertEqual( scenarios[i], { "cls": cls, "pos": r["key"]["pos"], "met": met, "name": name, "config": config, "iterations": mock__process_main_duration.return_value, "atomic": mock__process_atomic.return_value, "table_cols": table_cols, "table_rows": atomic_durations, "errors": "errors_list", "output": [], "output_errors": [], "runner": "foo_runner", "sla": sla, "sla_success": True, "iterations_num": iterations, "load_duration": 1234.5, "full_duration": 6789.1 })