def test__run_scenario_constantly_aborted(self): runner_obj = constant.ConstantForDurationScenarioRunner( None, self.config) runner_obj.abort() runner_obj._run_scenario(fakes.FakeScenario, "do_it", self.context, self.args) self.assertEqual(len(runner_obj.result_queue), 0)
def test_run_scenario_constantly_for_duration(self): runner_obj = constant.ConstantForDurationScenarioRunner( None, self.config) runner_obj._run_scenario(fakes.FakeScenario, "do_it", self.context, self.args) # NOTE(mmorais): when duration is 0, scenario executes exactly 1 time expected_times = 1 self.assertEqual(len(runner_obj.result_queue), expected_times) for result in runner_obj.result_queue: self.assertIsNotNone(runner.ScenarioRunnerResult(result))
def test_run_scenario_constantly_for_duration_timeout(self): runner_obj = constant.ConstantForDurationScenarioRunner( None, self.config) runner_obj._run_scenario(fakes.FakeScenario, "raise_timeout", self.context, self.args) # NOTE(mmorais): when duration is 0, scenario executes exactly 1 time expected_times = 1 self.assertEqual(len(runner_obj.result_queue), expected_times) for result_batch in runner_obj.result_queue: for result in result_batch: self.assertIsNotNone(result) self.assertIn("error", runner_obj.result_queue[0][0])
def test_run_scenario_constantly_for_duration(self): runner_obj = constant.ConstantForDurationScenarioRunner( mock.MagicMock(), self.config) runner_obj._run_scenario(fakes.FakeScenario, "do_it", self.context, self.args) # NOTE(mmorais/msimonin): when duration is 0, scenario executes exactly # 1 time per unit of parrallelism expected_times = self.config["concurrency"] self.assertEqual(expected_times, len(runner_obj.result_queue)) for result_batch in runner_obj.result_queue: for result in result_batch: self.assertIsNotNone(result)
def test_run_scenario_constantly_for_duration_exception(self): runner_obj = constant.ConstantForDurationScenarioRunner( mock.MagicMock(), self.config) runner_obj._run_scenario(fakes.FakeScenario, "something_went_wrong", self.context, self.args) # NOTE(mmorais): when duration is 0, scenario executes exactly 1 time expected_times = 1 self.assertEqual(expected_times, len(runner_obj.result_queue)) for result_batch in runner_obj.result_queue: for result in result_batch: self.assertIsNotNone(result) self.assertIn("error", runner_obj.result_queue[0][0])
def test_abort(self): runner_obj = constant.ConstantForDurationScenarioRunner( None, self.config) self.assertFalse(runner_obj.aborted.is_set()) runner_obj.abort() self.assertTrue(runner_obj.aborted.is_set())