Index: tools/telemetry/telemetry/results/csv_pivot_table_output_formatter_unittest.py |
diff --git a/tools/telemetry/telemetry/results/csv_pivot_table_output_formatter_unittest.py b/tools/telemetry/telemetry/results/csv_pivot_table_output_formatter_unittest.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c4ce7336b05d147f1fe400a37cf126a39a9f10c6 |
--- /dev/null |
+++ b/tools/telemetry/telemetry/results/csv_pivot_table_output_formatter_unittest.py |
@@ -0,0 +1,69 @@ |
+# Copyright 2014 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+import os |
+import StringIO |
+import unittest |
+ |
+from telemetry.page import page_set |
+from telemetry.results import csv_pivot_table_output_formatter |
+from telemetry.results import page_test_results |
+from telemetry.value import scalar |
+ |
+ |
+def _MakePageSet(): |
+ ps = page_set.PageSet(file_path=os.path.dirname(__file__)) |
+ ps.AddPageWithDefaultRunNavigate('http://www.foo.com/') |
+ ps.AddPageWithDefaultRunNavigate('http://www.bar.com/') |
+ return ps |
+ |
+ |
+class CsvPivotTableOutputFormatterTest(unittest.TestCase): |
+ def setUp(self): |
+ self._output = StringIO.StringIO() |
+ self._page_set = _MakePageSet() |
+ self._results = page_test_results.PageTestResults() |
+ self._formatter = None |
+ self.make_formatter() |
+ |
+ def make_formatter(self, trace_tag=''): |
+ self._formatter = ( |
+ csv_pivot_table_output_formatter.CsvPivotTableOutputFormatter( |
+ self._output, trace_tag)) |
+ |
+ def simulate_benchmark_run(self, list_of_list_of_values=None): |
+ for i in range(len(self._page_set)): |
+ page = self._page_set[i] |
+ self._results.WillRunPage(page) |
+ if i < len(list_of_list_of_values): |
+ for v in list_of_list_of_values[i]: |
+ v.page = page |
+ self._results.AddValue(v) |
+ self._results.DidRunPage(page) |
+ |
+ def format(self): |
+ self._formatter.Format(self._results) |
+ return self._output.getvalue() |
+ |
+ def test_simple(self): |
+ # Test a simple benchmark with only one value: |
+ self.simulate_benchmark_run( |
+ [[scalar.ScalarValue(None, 'foo', 'seconds', 3)]]) |
+ expected = "\r\n".join([ |
+ "page_set,page,name,value,units,run_index", |
+ "page_set,http://www.foo.com/,foo,3,seconds,0", |
+ ""]) |
+ |
+ self.assertEqual(expected, self.format()) |
+ |
+ def test_trace_tag(self): |
+ self.make_formatter(trace_tag="date,option") |
+ self.simulate_benchmark_run( |
+ [[scalar.ScalarValue(None, "foo", "seconds", 3)]]) |
+ output = self.format().split("\r\n") |
+ |
+ self.assertTrue(output[0].endswith(",trace_tag_0,trace_tag_1")) |
+ self.assertTrue(output[1].endswith(",date,option")) |
+ |
+ |
+ |