Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1745)

Unified Diff: tools/telemetry/telemetry/results/csv_pivot_table_output_formatter_unittest.py

Issue 631213003: Add CSV export, suitable for use with "pivot tables" in spreadsheets. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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"))
+
+
+

Powered by Google App Engine
This is Rietveld 408576698