#!/usr/bin/python2 # Copyright 2019 The Chromium OS 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 json import unittest import common from autotest_lib.server.cros import telemetry_runner histograms_sample = [ { 'values': [ 'story1' ], 'guid': '00000001-...', 'type': 'GenericSet' }, { 'values': [ 'story2' ], 'guid': '00000002-...', 'type': 'GenericSet' }, { 'values': [ 'benchmark1' ], 'guid': 'a0000001-...', 'type': 'GenericSet' }, { 'values': [ 'benchmark_desc1' ], 'guid': 'b0000001-...', 'type': 'GenericSet' }, { 'sampleValues': [1.0, 2.0], 'name': 'metric1', 'diagnostics': { 'stories': '00000001-...', 'benchmarks': 'a0000001-...', 'benchmarkDescriptions': 'b0000001-...' }, 'unit': 'ms_smallerIsBetter' }, { 'sampleValues': [1.0, 2.0], 'name': 'metric1', 'diagnostics': { 'stories': '00000002-...', 'benchmarks': 'a0000001-...', 'benchmarkDescriptions': 'b0000001-...' }, 'unit': 'ms_smallerIsBetter' } ] chartjson_sample = { 'format_version': 1.0, 'benchmark_name': 'benchmark1', 'benchmark_description': 'benchmark_desc1', 'benchmark_metadata': { 'type': 'telemetry_benchmark', 'name': 'benchmark1', 'description': 'benchmark_desc1' }, 'charts': { 'metric1': { 'story1': { 'std': 0.5, 'name': 'metric1', 'type': 'list_of_scalar_values', 'values': [1.0, 2.0], 'units': 'ms', 'improvement_direction': 'down' }, 'story2': { 'std': 0.5, 'name': 'metric1', 'type': 'list_of_scalar_values', 'values': [1.0, 2.0], 'units': 'ms', 'improvement_direction': 'down' }, 'summary': { 'std': 0.5, 'name': 'metric1', 'type': 'list_of_scalar_values', 'values': [1.0, 1.0, 2.0, 2.0], 'units': 'ms', 'improvement_direction': 'down' } }, } } class TelemetryRunnerTestCase(unittest.TestCase): """Test telemetry runner module.""" def test_convert_chart_json(self): # Deep comparison of 2 objects with json dumps. converted = telemetry_runner.TelemetryRunner.convert_chart_json( histograms_sample) chartjson_dumps = json.dumps(chartjson_sample, sort_keys=True) chartjson_dumps2 = json.dumps(converted, sort_keys=True) self.assertEqual(chartjson_dumps, chartjson_dumps2) if __name__ == '__main__': unittest.main()