Esempio n. 1
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"}}
        ]
        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]]
            })
Esempio n. 2
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]]
                })
Esempio n. 3
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]]
                })
Esempio n. 4
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
            })
Esempio n. 5
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 = [
                {"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]]
            })
Esempio n. 6
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
            })
Esempio n. 7
0
    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
                })