#!/usr/bin/env python # 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 unittest from pylib.base import base_test_result from pylib.results import json_results class JsonResultsTest(unittest.TestCase): def testGenerateResultsDict_passedResult(self): result = base_test_result.BaseTestResult( 'test.package.TestName', base_test_result.ResultType.PASS) all_results = base_test_result.TestRunResults() all_results.AddResult(result) results_dict = json_results.GenerateResultsDict(all_results) self.assertEquals( ['test.package.TestName'], results_dict['all_tests']) self.assertEquals(1, len(results_dict['per_iteration_data'])) iteration_result = results_dict['per_iteration_data'][0] self.assertTrue('test.package.TestName' in iteration_result) self.assertEquals(1, len(iteration_result['test.package.TestName'])) test_iteration_result = iteration_result['test.package.TestName'][0] self.assertTrue('status' in test_iteration_result) self.assertEquals('SUCCESS', test_iteration_result['status']) def testGenerateResultsDict_skippedResult(self): result = base_test_result.BaseTestResult( 'test.package.TestName', base_test_result.ResultType.SKIP) all_results = base_test_result.TestRunResults() all_results.AddResult(result) results_dict = json_results.GenerateResultsDict(all_results) self.assertEquals( ['test.package.TestName'], results_dict['all_tests']) self.assertEquals(1, len(results_dict['per_iteration_data'])) iteration_result = results_dict['per_iteration_data'][0] self.assertTrue('test.package.TestName' in iteration_result) self.assertEquals(1, len(iteration_result['test.package.TestName'])) test_iteration_result = iteration_result['test.package.TestName'][0] self.assertTrue('status' in test_iteration_result) self.assertEquals('SKIPPED', test_iteration_result['status']) def testGenerateResultsDict_failedResult(self): result = base_test_result.BaseTestResult( 'test.package.TestName', base_test_result.ResultType.FAIL) all_results = base_test_result.TestRunResults() all_results.AddResult(result) results_dict = json_results.GenerateResultsDict(all_results) self.assertEquals( ['test.package.TestName'], results_dict['all_tests']) self.assertEquals(1, len(results_dict['per_iteration_data'])) iteration_result = results_dict['per_iteration_data'][0] self.assertTrue('test.package.TestName' in iteration_result) self.assertEquals(1, len(iteration_result['test.package.TestName'])) test_iteration_result = iteration_result['test.package.TestName'][0] self.assertTrue('status' in test_iteration_result) self.assertEquals('FAILURE', test_iteration_result['status']) def testGenerateResultsDict_duration(self): result = base_test_result.BaseTestResult( 'test.package.TestName', base_test_result.ResultType.PASS, duration=123) all_results = base_test_result.TestRunResults() all_results.AddResult(result) results_dict = json_results.GenerateResultsDict(all_results) self.assertEquals( ['test.package.TestName'], results_dict['all_tests']) self.assertEquals(1, len(results_dict['per_iteration_data'])) iteration_result = results_dict['per_iteration_data'][0] self.assertTrue('test.package.TestName' in iteration_result) self.assertEquals(1, len(iteration_result['test.package.TestName'])) test_iteration_result = iteration_result['test.package.TestName'][0] self.assertTrue('elapsed_time_ms' in test_iteration_result) self.assertEquals(123, test_iteration_result['elapsed_time_ms']) def testGenerateResultsDict_multipleResults(self): result1 = base_test_result.BaseTestResult( 'test.package.TestName1', base_test_result.ResultType.PASS) result2 = base_test_result.BaseTestResult( 'test.package.TestName2', base_test_result.ResultType.PASS) all_results = base_test_result.TestRunResults() all_results.AddResult(result1) all_results.AddResult(result2) results_dict = json_results.GenerateResultsDict(all_results) self.assertEquals( ['test.package.TestName1', 'test.package.TestName2'], results_dict['all_tests']) self.assertEquals(2, len(results_dict['per_iteration_data'])) expected_tests = set([ 'test.package.TestName1', 'test.package.TestName2', ]) for iteration_result in results_dict['per_iteration_data']: self.assertEquals(1, len(iteration_result)) name = iteration_result.keys()[0] self.assertTrue(name in expected_tests) expected_tests.remove(name) self.assertEquals(1, len(iteration_result[name])) test_iteration_result = iteration_result[name][0] self.assertTrue('status' in test_iteration_result) self.assertEquals('SUCCESS', test_iteration_result['status']) if __name__ == '__main__': unittest.main(verbosity=2)