blob: 648f2c838f73bd3ba02b9686a7010a51f174f27b [file] [log] [blame]
#!/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.assertTrue('per_iteration_data' in results_dict)
iterations = results_dict['per_iteration_data']
self.assertEquals(1, len(iterations))
expected_tests = set([
'test.package.TestName1',
'test.package.TestName2',
])
for test_name, iteration_result in iterations[0].iteritems():
self.assertTrue(test_name in expected_tests)
expected_tests.remove(test_name)
self.assertEquals(1, len(iteration_result))
test_iteration_result = iteration_result[0]
self.assertTrue('status' in test_iteration_result)
self.assertEquals('SUCCESS', test_iteration_result['status'])
if __name__ == '__main__':
unittest.main(verbosity=2)