Files
rally/tests/unit/task/test_sla.py
Alexander Nevenchannyy 2332e312bc Rename rally/benchmark to rally/task
We need to reduce amount of works in our glossary
Rally task commands are based on what is in rally/benchmark
So it will be better to call this directory properly

Change-Id: I7dccdec82c24942517cb2611a8e12218db6118f1
2015-07-01 23:38:48 +03:00

80 lines
2.9 KiB
Python

# Copyright 2014: Mirantis Inc.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from rally.common.plugin import plugin
from rally.task import sla
from tests.unit import test
@plugin.configure(name="test_criterion")
class TestCriterion(sla.SLA):
CONFIG_SCHEMA = {"type": "integer"}
def add_iteration(self, iteration):
self.success = self.criterion_value == iteration
return self.success
def details(self):
return "detail"
class SLACheckerTestCase(test.TestCase):
def test_add_iteration_and_results(self):
sla_checker = sla.SLAChecker({"sla": {"test_criterion": 42}})
iteration = {"key": {"name": "fake", "pos": 0}, "data": 42}
self.assertTrue(sla_checker.add_iteration(iteration["data"]))
expected_result = [{"criterion": "test_criterion",
"detail": "detail",
"success": True}]
self.assertEqual(expected_result, sla_checker.results())
iteration["data"] = 43
self.assertFalse(sla_checker.add_iteration(iteration["data"]))
expected_result = [{"criterion": "test_criterion",
"detail": "detail",
"success": False}]
self.assertEqual(expected_result, sla_checker.results())
def test_set_unexpected_failure(self):
exc = "error;("
sla_checker = sla.SLAChecker({"sla": {}})
self.assertEqual([], sla_checker.results())
sla_checker.set_unexpected_failure(exc)
self.assertEqual([{"criterion": "something_went_wrong",
"success": False,
"detail": "Unexpected error: %s" % exc}],
sla_checker.results())
def test_set_aborted(self):
sla_checker = sla.SLAChecker({"sla": {}})
self.assertEqual([], sla_checker.results())
sla_checker.set_aborted()
self.assertEqual(
[{"criterion": "aborted_on_sla", "success": False,
"detail": "Task was aborted due to SLA failure(s)."}],
sla_checker.results())
def test__format_result(self):
name = "some_name"
success = True
detail = "some details"
self.assertEqual({"criterion": name,
"success": success,
"detail": detail},
sla._format_result(name, success, detail))