| Index: telemetry/telemetry/internal/results/csv_pivot_table_output_formatter_unittest.py
|
| diff --git a/telemetry/telemetry/internal/results/csv_pivot_table_output_formatter_unittest.py b/telemetry/telemetry/internal/results/csv_pivot_table_output_formatter_unittest.py
|
| deleted file mode 100644
|
| index 2fe1a0f17c872e70db970c5c87f9a4fa6d3756d1..0000000000000000000000000000000000000000
|
| --- a/telemetry/telemetry/internal/results/csv_pivot_table_output_formatter_unittest.py
|
| +++ /dev/null
|
| @@ -1,127 +0,0 @@
|
| -# 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
|
| -
|
| -import mock
|
| -
|
| -from telemetry import story
|
| -from telemetry.internal.results import csv_pivot_table_output_formatter
|
| -from telemetry.internal.results import page_test_results
|
| -from telemetry import page as page_module
|
| -from telemetry.value import improvement_direction
|
| -from telemetry.value import scalar
|
| -from telemetry.value import trace
|
| -from tracing.trace_data import trace_data
|
| -
|
| -
|
| -def _MakeStorySet():
|
| - story_set = story.StorySet(base_dir=os.path.dirname(__file__))
|
| - story_set.AddStory(page_module.Page(
|
| - 'http://www.foo.com/', story_set, story_set.base_dir,
|
| - name='http://www.foo.com/'))
|
| - story_set.AddStory(page_module.Page(
|
| - 'http://www.bar.com/', story_set, story_set.base_dir,
|
| - name='http://www.bar.com/'))
|
| - return story_set
|
| -
|
| -
|
| -class CsvPivotTableOutputFormatterTest(unittest.TestCase):
|
| -
|
| - # The line separator used by CSV formatter.
|
| - _LINE_SEPARATOR = '\r\n'
|
| -
|
| - def setUp(self):
|
| - self._output = StringIO.StringIO()
|
| - self._story_set = _MakeStorySet()
|
| - self._results = page_test_results.PageTestResults()
|
| - self._formatter = None
|
| - self.MakeFormatter()
|
| -
|
| - def MakeFormatter(self, trace_tag=''):
|
| - self._formatter = (
|
| - csv_pivot_table_output_formatter.CsvPivotTableOutputFormatter(
|
| - self._output, trace_tag))
|
| -
|
| - def SimulateBenchmarkRun(self, list_of_page_and_values):
|
| - """Simulate one run of a benchmark, using the supplied values.
|
| -
|
| - Args:
|
| - list_of_pages_and_values: a list of tuple (page, list of values)
|
| - """
|
| - for page, values in list_of_page_and_values:
|
| - self._results.WillRunPage(page)
|
| - for v in values:
|
| - v.page = page
|
| - self._results.AddValue(v)
|
| - self._results.DidRunPage(page)
|
| -
|
| - def Format(self):
|
| - self._formatter.Format(self._results)
|
| - return self._output.getvalue()
|
| -
|
| - def testSimple(self):
|
| - # Test a simple benchmark with only one value:
|
| - self.SimulateBenchmarkRun([
|
| - (self._story_set[0], [scalar.ScalarValue(
|
| - None, 'foo', 'seconds', 3,
|
| - improvement_direction=improvement_direction.DOWN)])])
|
| - expected = self._LINE_SEPARATOR.join([
|
| - 'story_set,page,name,value,units,run_index',
|
| - 'story_set,http://www.foo.com/,foo,3,seconds,0',
|
| - ''])
|
| -
|
| - self.assertEqual(expected, self.Format())
|
| -
|
| - @mock.patch('py_utils.cloud_storage.Insert')
|
| - def testMultiplePagesAndValues(self, cs_insert_mock):
|
| - cs_insert_mock.return_value = 'https://cloud_storage_url/foo'
|
| - trace_value = trace.TraceValue(
|
| - None, trace_data.CreateTraceDataFromRawData('{"traceEvents": []}'))
|
| - trace_value.UploadToCloud(bucket='foo')
|
| - self.SimulateBenchmarkRun([
|
| - (self._story_set[0], [
|
| - scalar.ScalarValue(
|
| - None, 'foo', 'seconds', 4,
|
| - improvement_direction=improvement_direction.DOWN)]),
|
| - (self._story_set[1], [
|
| - scalar.ScalarValue(
|
| - None, 'foo', 'seconds', 3.4,
|
| - improvement_direction=improvement_direction.DOWN),
|
| - trace_value,
|
| - scalar.ScalarValue(
|
| - None, 'bar', 'km', 10,
|
| - improvement_direction=improvement_direction.DOWN),
|
| - scalar.ScalarValue(
|
| - None, 'baz', 'count', 5,
|
| - improvement_direction=improvement_direction.DOWN)])])
|
| -
|
| - # Parse CSV output into list of lists.
|
| - csv_string = self.Format()
|
| - lines = csv_string.split(self._LINE_SEPARATOR)
|
| - values = [s.split(',') for s in lines[1:-1]]
|
| -
|
| - self.assertEquals(len(values), 5) # We expect 5 value in total.
|
| - self.assertEquals(len(set((v[1] for v in values))), 2) # 2 pages.
|
| - self.assertEquals(len(set((v[2] for v in values))), 4) # 4 value names.
|
| - self.assertEquals(values[2],
|
| - ['story_set', 'http://www.bar.com/', 'trace',
|
| - 'https://cloud_storage_url/foo', '', '1'])
|
| -
|
| - def testTraceTag(self):
|
| - self.MakeFormatter(trace_tag='date,option')
|
| - self.SimulateBenchmarkRun([
|
| - (self._story_set[0], [
|
| - scalar.ScalarValue(
|
| - None, 'foo', 'seconds', 3,
|
| - improvement_direction=improvement_direction.DOWN),
|
| - scalar.ScalarValue(
|
| - None, 'bar', 'tons', 5,
|
| - improvement_direction=improvement_direction.DOWN)])])
|
| - output = self.Format().split(self._LINE_SEPARATOR)
|
| -
|
| - self.assertTrue(output[0].endswith(',trace_tag_0,trace_tag_1'))
|
| - for line in output[1:-1]:
|
| - self.assertTrue(line.endswith(',date,option'))
|
|
|