[Reports] Add new OutputTextArea chart plugin
New chart plugin can show arbitrary textual data on "Scenario Stata -> Per iteration" tab. This finally allows to show non-numeric data like IP addresses, notes and even long comments. Plugin Dummy.output is also updated to provide demonstration. Change-Id: Id8d245788f230842bfdb596706a07a8789ace0db
This commit is contained in:
parent
b6bedc5b78
commit
2cb9aeba4d
@ -166,6 +166,13 @@ class DummyOutput(scenario.Scenario):
|
||||
"label": "Yet another measurement units",
|
||||
"axis_label": ("This is a custom "
|
||||
"X-axis label")})
|
||||
self.add_output(
|
||||
complete={"title": "Arbitrary Text",
|
||||
"chart_plugin": "TextArea",
|
||||
"data": ["Lorem ipsum dolor sit amet, consectetur "
|
||||
"adipiscing elit, sed do eiusmod tempor "
|
||||
"incididunt ut labore et dolore magna "
|
||||
"aliqua." * 2] * 4})
|
||||
self.add_output(
|
||||
complete={"title": "Complete Pie (no description)",
|
||||
"chart_plugin": "Pie",
|
||||
|
@ -573,6 +573,13 @@ class OutputStatsTable(OutputTable):
|
||||
self._data[name][idx][0].add(value)
|
||||
|
||||
|
||||
@plugin.configure(name="TextArea")
|
||||
class OutputTextArea(OutputChart):
|
||||
"""Arbitrary text."""
|
||||
|
||||
widget = "TextArea"
|
||||
|
||||
|
||||
_OUTPUT_SCHEMA = {
|
||||
"key_types": {
|
||||
"title": six.string_types,
|
||||
|
@ -138,6 +138,9 @@ var widgetDirective = function($compile) {
|
||||
"<tr>" +
|
||||
"</tbody></table>";
|
||||
var el = element.empty().append($compile(template)(scope)).children()[0]
|
||||
} else if (attrs.widget === "TextArea") {
|
||||
var template = "<div style='padding:0 0 5px' ng-repeat='str in data track by $index'>{{str}}</div><div style='height:10px'></div>";
|
||||
var el = element.empty().append($compile(template)(scope)).children()[0]
|
||||
} else {
|
||||
|
||||
var el_chart = element.addClass("chart").css({display:"block"});
|
||||
|
@ -139,6 +139,12 @@ class DummyTestCase(test.TestCase):
|
||||
"description": desc % "Complete StackedArea",
|
||||
"label": "Yet another measurement units",
|
||||
"title": "Complete StackedArea"},
|
||||
{"title": "Arbitrary Text",
|
||||
"chart_plugin": "TextArea",
|
||||
"data": ["Lorem ipsum dolor sit amet, consectetur "
|
||||
"adipiscing elit, sed do eiusmod tempor "
|
||||
"incididunt ut labore et dolore magna "
|
||||
"aliqua." * 2] * 4},
|
||||
{"chart_plugin": "Pie",
|
||||
"data": [[s, exp] for s in ("delta", "epsilon", "zeta",
|
||||
"theta", "lambda", "omega")],
|
||||
|
@ -644,6 +644,13 @@ class OutputStatsTableTestCase(test.TestCase):
|
||||
table.render())
|
||||
|
||||
|
||||
class OutputTextAreaTestCase(test.TestCase):
|
||||
|
||||
def test_class(self):
|
||||
self.assertTrue(issubclass(charts.OutputTextArea, charts.OutputChart))
|
||||
self.assertEqual("TextArea", charts.OutputTextArea.widget)
|
||||
|
||||
|
||||
@ddt.ddt
|
||||
class ModuleTestCase(test.TestCase):
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user