blob: 648f2c838f73bd3ba02b9686a7010a51f174f27b [file] [log] [blame]
Ben Murdoch097c5b22016-05-18 11:27:45 +01001#!/usr/bin/env python
2# Copyright 2014 The Chromium Authors. All rights reserved.
3# Use of this source code is governed by a BSD-style license that can be
4# found in the LICENSE file.
5
6import unittest
7
8from pylib.base import base_test_result
9from pylib.results import json_results
10
11
12class JsonResultsTest(unittest.TestCase):
13
14 def testGenerateResultsDict_passedResult(self):
15 result = base_test_result.BaseTestResult(
16 'test.package.TestName', base_test_result.ResultType.PASS)
17
18 all_results = base_test_result.TestRunResults()
19 all_results.AddResult(result)
20
21 results_dict = json_results.GenerateResultsDict([all_results])
22 self.assertEquals(
23 ['test.package.TestName'],
24 results_dict['all_tests'])
25 self.assertEquals(1, len(results_dict['per_iteration_data']))
26
27 iteration_result = results_dict['per_iteration_data'][0]
28 self.assertTrue('test.package.TestName' in iteration_result)
29 self.assertEquals(1, len(iteration_result['test.package.TestName']))
30
31 test_iteration_result = iteration_result['test.package.TestName'][0]
32 self.assertTrue('status' in test_iteration_result)
33 self.assertEquals('SUCCESS', test_iteration_result['status'])
34
35 def testGenerateResultsDict_skippedResult(self):
36 result = base_test_result.BaseTestResult(
37 'test.package.TestName', base_test_result.ResultType.SKIP)
38
39 all_results = base_test_result.TestRunResults()
40 all_results.AddResult(result)
41
42 results_dict = json_results.GenerateResultsDict([all_results])
43 self.assertEquals(
44 ['test.package.TestName'],
45 results_dict['all_tests'])
46 self.assertEquals(1, len(results_dict['per_iteration_data']))
47
48 iteration_result = results_dict['per_iteration_data'][0]
49 self.assertTrue('test.package.TestName' in iteration_result)
50 self.assertEquals(1, len(iteration_result['test.package.TestName']))
51
52 test_iteration_result = iteration_result['test.package.TestName'][0]
53 self.assertTrue('status' in test_iteration_result)
54 self.assertEquals('SKIPPED', test_iteration_result['status'])
55
56 def testGenerateResultsDict_failedResult(self):
57 result = base_test_result.BaseTestResult(
58 'test.package.TestName', base_test_result.ResultType.FAIL)
59
60 all_results = base_test_result.TestRunResults()
61 all_results.AddResult(result)
62
63 results_dict = json_results.GenerateResultsDict([all_results])
64 self.assertEquals(
65 ['test.package.TestName'],
66 results_dict['all_tests'])
67 self.assertEquals(1, len(results_dict['per_iteration_data']))
68
69 iteration_result = results_dict['per_iteration_data'][0]
70 self.assertTrue('test.package.TestName' in iteration_result)
71 self.assertEquals(1, len(iteration_result['test.package.TestName']))
72
73 test_iteration_result = iteration_result['test.package.TestName'][0]
74 self.assertTrue('status' in test_iteration_result)
75 self.assertEquals('FAILURE', test_iteration_result['status'])
76
77 def testGenerateResultsDict_duration(self):
78 result = base_test_result.BaseTestResult(
79 'test.package.TestName', base_test_result.ResultType.PASS, duration=123)
80
81 all_results = base_test_result.TestRunResults()
82 all_results.AddResult(result)
83
84 results_dict = json_results.GenerateResultsDict([all_results])
85 self.assertEquals(
86 ['test.package.TestName'],
87 results_dict['all_tests'])
88 self.assertEquals(1, len(results_dict['per_iteration_data']))
89
90 iteration_result = results_dict['per_iteration_data'][0]
91 self.assertTrue('test.package.TestName' in iteration_result)
92 self.assertEquals(1, len(iteration_result['test.package.TestName']))
93
94 test_iteration_result = iteration_result['test.package.TestName'][0]
95 self.assertTrue('elapsed_time_ms' in test_iteration_result)
96 self.assertEquals(123, test_iteration_result['elapsed_time_ms'])
97
98 def testGenerateResultsDict_multipleResults(self):
99 result1 = base_test_result.BaseTestResult(
100 'test.package.TestName1', base_test_result.ResultType.PASS)
101 result2 = base_test_result.BaseTestResult(
102 'test.package.TestName2', base_test_result.ResultType.PASS)
103
104 all_results = base_test_result.TestRunResults()
105 all_results.AddResult(result1)
106 all_results.AddResult(result2)
107
108 results_dict = json_results.GenerateResultsDict([all_results])
109 self.assertEquals(
110 ['test.package.TestName1', 'test.package.TestName2'],
111 results_dict['all_tests'])
112
113 self.assertTrue('per_iteration_data' in results_dict)
114 iterations = results_dict['per_iteration_data']
115 self.assertEquals(1, len(iterations))
116
117 expected_tests = set([
118 'test.package.TestName1',
119 'test.package.TestName2',
120 ])
121
122 for test_name, iteration_result in iterations[0].iteritems():
123 self.assertTrue(test_name in expected_tests)
124 expected_tests.remove(test_name)
125 self.assertEquals(1, len(iteration_result))
126
127 test_iteration_result = iteration_result[0]
128 self.assertTrue('status' in test_iteration_result)
129 self.assertEquals('SUCCESS', test_iteration_result['status'])
130
131
132if __name__ == '__main__':
133 unittest.main(verbosity=2)
134