
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
80 lines
2.9 KiB
Python
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))
|