Ejemplo n.º 1
0
    def test_dummy_exception(self, mock_interruptable_sleep):
        scenario = dummy.Dummy(test.get_test_context())

        size_of_message = 5
        self.assertRaises(dummy.DummyScenarioException,
                          scenario.dummy_exception, size_of_message, sleep=10)
        mock_interruptable_sleep.assert_called_once_with(10)
Ejemplo n.º 2
0
 def test_dummy_dummy_with_scenario_output(self):
     scenario = dummy.Dummy(test.get_test_context())
     result = scenario.dummy_with_scenario_output()
     self.assertEqual(result["errors"], "")
     # Since the data is generated in random,
     # checking for not None
     self.assertIsNotNone(result["data"])
Ejemplo n.º 3
0
    def test_dummy(self, mock_sleep):
        scenario = dummy.Dummy(test.get_test_context())
        scenario.sleep_between = mock.MagicMock()
        scenario.dummy()
        self.assertFalse(mock_sleep.sleep.called)

        scenario.dummy(sleep=10)
        mock_sleep.assert_called_once_with(10)
Ejemplo n.º 4
0
 def test_dummy_timed_atomic_actions(self, mock_interruptable_sleep,
                                     number_of_actions, sleep_factor):
     scenario = dummy.Dummy(test.get_test_context())
     scenario.dummy_random_action(number_of_actions, sleep_factor)
     scenario.dummy_timed_atomic_actions(number_of_actions, sleep_factor)
     for i in range(number_of_actions):
         self._test_atomic_action_timer(scenario.atomic_actions(),
                                        "action_%d" % i)
         mock_interruptable_sleep.assert_any_call(i * sleep_factor)
Ejemplo n.º 5
0
    def test_dummy_random_fail_in_atomic(self):
        scenario = dummy.Dummy(test.get_test_context())

        for i in range(10):
            scenario.dummy_random_fail_in_atomic(exception_probability=0)

        for i in range(10):
            self.assertRaises(KeyError,
                              scenario.dummy_random_fail_in_atomic,
                              exception_probability=1)
Ejemplo n.º 6
0
    def test_dummy_exception_probability(self):
        scenario = dummy.Dummy(test.get_test_context())

        # should not raise an exception as probability is 0
        for i in range(100):
            scenario.dummy_exception_probability(exception_probability=0)

        # should always raise an exception as probability is 1
        for i in range(100):
            self.assertRaises(dummy.DummyScenarioException,
                              scenario.dummy_exception_probability,
                              exception_probability=1)
Ejemplo n.º 7
0
 def test_dummy_output(self, mock_random):
     mock_random.randint.side_effect = lambda min_, max_: max_
     desc = "This is a description text for %s"
     for random_range, exp in (None, 25), (1, 1), (42, 42):
         scenario = dummy.Dummy(test.get_test_context())
         if random_range is None:
             scenario.dummy_output()
         else:
             scenario.dummy_output(random_range=random_range)
         expected = {
             "additive": [
                 {"chart_plugin": "StatsTable",
                  "data": [[s + " stat", exp]
                           for s in ("foo", "bar", "spam")],
                  "title": "Additive Stat Table",
                  "description": desc % "Additive Stat Table"},
                 {"chart_plugin": "StackedArea",
                  "data": [["foo 1", exp], ["foo 2", exp]],
                  "title": "Additive Foo StackedArea",
                  "description": desc % "Additive Foo StackedArea"},
                 {"chart_plugin": "StackedArea",
                  "data": [["bar %d" % i, exp] for i in range(1, 7)],
                  "title": "Additive Bar StackedArea (no description)",
                  "description": ""},
                 {"chart_plugin": "Pie",
                  "data": [["spam %d" % i, exp] for i in range(1, 4)],
                  "title": "Additive Spam Pie",
                  "description": desc % "Additive Spam Pie"}],
             "complete": [
                 {"data": [["alpha", [[i, exp] for i in range(30)]],
                           ["beta", [[i, exp] for i in range(30)]],
                           ["gamma", [[i, exp] for i in range(30)]]],
                  "title": "Complete StackedArea",
                  "description": desc % "Complete StackedArea",
                  "chart_plugin": "StackedArea"},
                 {"data": [["delta", exp], ["epsilon", exp], ["zeta", exp],
                           ["theta", exp], ["lambda", exp], ["omega", exp]],
                  "title": "Complete Pie (no description)",
                  "description": "",
                  "chart_plugin": "Pie"},
                 {"data": {
                     "cols": ["mu column", "xi column", "pi column",
                              "tau column", "chi column"],
                     "rows": [
                         [r + " row", exp, exp, exp, exp]
                         for r in ("iota", "nu", "rho", "phi", "psi")]},
                  "title": "Complete Table",
                  "description": desc % "Complete Table",
                  "chart_plugin": "Table"}]}
     self.assertEqual(expected, scenario._output)
Ejemplo n.º 8
0
    def test_dummy_random_action(self, mock_interruptable_sleep, mock_random,
                                 **kwargs):
        mock_random.uniform.side_effect = range(100)

        scenario = dummy.Dummy(test.get_test_context())
        scenario.dummy_random_action(**kwargs)
        actions_num = kwargs.get("actions_num", 5)
        calls = [mock.call(i) for i in range(actions_num)]
        self.assertEqual(calls, mock_interruptable_sleep.mock_calls)

        calls = [mock.call(kwargs.get("sleep_min", 0),
                           kwargs.get("sleep_max", 2))
                 for i in range(actions_num)]
        self.assertEqual(calls, mock_random.uniform.mock_calls)
        for i in range(actions_num):
            self._test_atomic_action_timer(scenario.atomic_actions(),
                                           "action_%d" % i)
Ejemplo n.º 9
0
    def test_dummy_output(self, mock_random):
        mock_random.randint.side_effect = lambda min_, max_: max_
        desc = "This is a description text for %s"
        for random_range, exp in (None, 25), (1, 1), (42, 42):
            scenario = dummy.Dummy(test.get_test_context())
            if random_range is None:
                scenario.dummy_output()
            else:
                scenario.dummy_output(random_range=random_range)
            expected = {
                "additive": [
                    {"chart_plugin": "StatsTable",
                     "data": [["%s stat" % s, exp]
                              for s in ("foo", "bar", "spam")],
                     "description": desc % "Additive StatsTable",
                     "title": "Additive StatsTable"},
                    {"chart_plugin": "StackedArea",
                     "data": [["foo %i" % i, exp] for i in range(1, 7)],
                     "label": "Measure this in Foo units",
                     "title": "Additive StackedArea (no description)"},
                    {"chart_plugin": "Lines",
                     "data": [["bar %i" % i, exp] for i in range(1, 4)],
                     "description": desc % "Additive Lines",
                     "label": "Measure this in Bar units",
                     "title": "Additive Lines"},
                    {"chart_plugin": "Pie",
                     "data": [["spam %i" % i, exp] for i in range(1, 4)],
                     "description": desc % "Additive Pie",
                     "title": "Additive Pie"}],
                "complete": [
                    {"axis_label": "This is a custom X-axis label",
                     "chart_plugin": "Lines",
                     "data": [["Foo", [[i, exp] for i in range(1, 8)]],
                              ["Bar", [[i, exp] for i in range(1, 8)]],
                              ["Spam", [[i, exp] for i in range(1, 8)]]],
                     "description": desc % "Complete Lines",
                     "label": "Measure this is some units",
                     "title": "Complete Lines"},
                    {"axis_label": "This is a custom X-axis label",
                     "chart_plugin": "StackedArea",
                     "data": [["alpha", [[i, exp] for i in range(50)]],
                              ["beta", [[i, exp] for i in range(50)]],
                              ["gamma", [[i, exp] for i in range(50)]]],
                     "description": desc % "Complete StackedArea",
                     "label": "Yet another measurement units",
                     "title": "Complete StackedArea"},
                    {"chart_plugin": "Pie",
                     "data": [[s, exp] for s in ("delta", "epsilon", "zeta",
                                                 "theta", "lambda", "omega")],
                     "title": "Complete Pie (no description)"},
                    {"chart_plugin": "Table",
                     "data": {"cols": ["%s column" % s
                                       for s in ("mu", "xi", "pi",
                                                 "tau", "chi")],
                              "rows": [["%s row" % s, exp, exp, exp, exp]
                                       for s in ("iota", "nu", "rho",
                                                 "phi", "psi")]},
                     "description": desc % "Complete Table",
                     "title": "Complete Table"}]}

        self.assertEqual(expected, scenario._output)
Ejemplo n.º 10
0
    def test_dummy(self, mock_interruptable_sleep):
        scenario = dummy.Dummy(test.get_test_context())
        scenario.sleep_between = mock.MagicMock()

        scenario.dummy(sleep=10)
        mock_interruptable_sleep.assert_called_once_with(10)
Ejemplo n.º 11
0
 def test_is_scenario_non_existing(self):
     scenario = dummy.Dummy()
     self.assertFalse(base.Scenario.is_scenario(scenario, "non_existing"))
Ejemplo n.º 12
0
 def test_is_scenario_not_scenario(self):
     scenario = dummy.Dummy()
     self.assertFalse(
         base.Scenario.is_scenario(scenario, "_random_fail_emitter"))
Ejemplo n.º 13
0
 def test_is_scenario_success(self):
     scenario = dummy.Dummy()
     self.assertTrue(base.Scenario.is_scenario(scenario, "dummy"))
Ejemplo n.º 14
0
 def test_is_scenario_non_existing(self):
     self.assertFalse(
         scenario.Scenario.is_scenario(dummy.Dummy(), "non_existing"))
Ejemplo n.º 15
0
 def test_is_scenario_not_scenario(self):
     self.assertFalse(
         scenario.Scenario.is_scenario(dummy.Dummy(),
                                       "_random_fail_emitter"))
Ejemplo n.º 16
0
 def test_is_scenario_success(self):
     self.assertTrue(scenario.Scenario.is_scenario(dummy.Dummy(), "dummy"))