rally/tests/unit/ui/test_utils.py
Alexander Maretskiy 4901d45bbf Base HTML templates and improvements for task report
This patch adds UI templates directory and utils,
which serve and unify HTML generation.

Also, there are some fixes and improvements for HTML task report.

In this patch:
  * Base mako templates (package rally.ui)
  * Rework tests/ci/rally-gate templates
    in order to use base template with generic header and styles
  * Show scenario errors (if any) in task report tab
  * Show scenario output (if any) in task report tab
  * Show SLA data in Overview tab
  * Show total scenario duration value (after the scenario name, above tabs)
  * If got some iteration error, save exception class name in the database
    instead of its repr()
  * Prevent layout from breaking and show proper message if JS libs
    can not be loaded for some reason
  * Fix bug 1387661 - the cause of the bug is wrong input json data,
    generated by plot.py. This happens when some atomic actions data
    missed (which is a result of scenario errors) - and we have different
    atomic actions sets between iterations. The fix saves atomic actions
    integrity by adding missed atomic actions (with 0 value).
  * Fix: if unexistend task uuid is specified in `task report' command,
    then proper exception is raised

Closes-Bug: 1387661

Change-Id: I4bcbf86e6fad844e6752306eb6c1ccfefa6c6909
2014-11-18 19:32:30 +02:00

39 lines
1.4 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.
import mock
from rally.ui import utils
from tests.unit import test
class PlotTestCase(test.TestCase):
def test_lookup(self):
self.assertIsInstance(utils.lookup, utils.mako.lookup.TemplateLookup)
self.assertIsInstance(utils.lookup.get_template("/base.mako"),
utils.mako.lookup.Template)
self.assertRaises(
utils.mako.lookup.exceptions.TopLevelLookupException,
utils.lookup.get_template, "absent_template")
@mock.patch("rally.ui.utils.lookup")
def test_get_template(self, mock_lookup):
mock_lookup.get_template.return_value = "foo_template"
template = utils.get_template("foo_path")
self.assertEqual(template, "foo_template")
mock_lookup.get_template.assert_called_once_with("foo_path")