Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(336)

Side by Side Diff: scripts/slave/recipe_modules/test_results/resources/upload_test_results_unittest.py

Issue 2475973002: [recipe_modules/test_result] Support uploading full json results format for upload_test_results.py (Closed)
Patch Set: Address review comments Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « scripts/slave/recipe_modules/test_results/resources/upload_test_results.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2015 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2015 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Unit tests for upload_test_results.py.""" 6 """Unit tests for upload_test_results.py."""
7 7
8 import json 8 import json
9 import os 9 import os
10 import shutil 10 import shutil
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 }], 72 }],
73 } 73 }
74 results = upload_test_results.get_results_map_from_json( 74 results = upload_test_results.get_results_map_from_json(
75 json.dumps(contents)) 75 json.dumps(contents))
76 self.assertEquals(results['Disabled.Test'][0].DISABLED, 76 self.assertEquals(results['Disabled.Test'][0].DISABLED,
77 results['Disabled.Test'][0].modifier) 77 results['Disabled.Test'][0].modifier)
78 self.assertEquals(results['Disabled.Test'][0].DISABLED, 78 self.assertEquals(results['Disabled.Test'][0].DISABLED,
79 results['Skipped.Test'][0].modifier) 79 results['Skipped.Test'][0].modifier)
80 80
81 @mock.patch('test_results_uploader.upload_test_results') 81 @mock.patch('test_results_uploader.upload_test_results')
82 def test_main(self, uploader_mock): 82 def test_main_gtest_json(self, uploader_mock):
83 contents = { 83 contents = {
84 'per_iteration_data': [{ 84 'per_iteration_data': [{
85 'Fake.Test': [ 85 'Fake.Test': [
86 {'status': 'XXX', 'elapsed_time_ms': 1000}, 86 {'status': 'XXX', 'elapsed_time_ms': 1000},
87 ], 87 ],
88 }], 88 }],
89 } 89 }
90 result_directory = tempfile.mkdtemp() 90 result_directory = tempfile.mkdtemp()
91 input_json_file_path = os.path.join(result_directory, 'results.json')
92 with open(input_json_file_path, 'w') as f:
93 json.dump(contents, f)
94 try: 91 try:
92 input_json_file_path = os.path.join(result_directory, 'results.json')
93 with open(input_json_file_path, 'w') as f:
94 json.dump(contents, f)
95 upload_test_results.main([ 95 upload_test_results.main([
96 '--test-type=foo', 96 '--test-type=foo',
97 '--input-json=%s' % input_json_file_path, 97 '--input-json=%s' % input_json_file_path,
98 '--results-directory=%s' % result_directory, 98 '--results-directory=%s' % result_directory,
99 '--test-results-server=foo', 99 '--test-results-server=foo',
100 '--master-name=sauron', 100 '--master-name=sauron',
101 ]) 101 ])
102 files = [ 102 files = [
103 ('full_results.json', 103 ('full_results.json',
104 os.path.join(result_directory, 104 os.path.join(result_directory,
105 upload_test_results.FULL_RESULTS_FILENAME)), 105 upload_test_results.FULL_RESULTS_FILENAME)),
106 ('times_ms.json', 106 ('times_ms.json',
107 os.path.join(result_directory, 107 os.path.join(result_directory,
108 upload_test_results.TIMES_MS_FILENAME))] 108 upload_test_results.TIMES_MS_FILENAME))]
109 uploader_mock.assert_called_with( 109 uploader_mock.assert_called_with(
110 'foo', 110 'foo',
111 [('builder', 'DUMMY_BUILDER_NAME'), 111 [('builder', 'DUMMY_BUILDER_NAME'),
112 ('testtype', 'foo'), 112 ('testtype', 'foo'),
113 ('master', 'sauron')], files, 120) 113 ('master', 'sauron')], files, 120)
114 finally: 114 finally:
115 shutil.rmtree(result_directory) 115 shutil.rmtree(result_directory)
116 116
117 @mock.patch('test_results_uploader.upload_test_results')
118 def test_main_full_results_json(self, uploader_mock):
119 contents = {
120 'tests': {
121 'mojom_tests': {
122 'parse': {
123 'ast_unittest': {
124 'ASTTest': {
125 'testNodeBase': {
126 'expected': 'PASS',
127 'actual': 'PASS'
128 }
129 }
130 }
131 }
132 }
133 },
134 'interrupted': False,
135 'path_delimiter': '.',
136 'version': 3,
137 'seconds_since_epoch': 1406662283.764424,
138 'num_failures_by_type': {
139 'FAIL': 0,
140 'PASS': 1
141 }
142 }
143 result_directory = tempfile.mkdtemp()
144 try:
145 input_json_file_path = os.path.join(result_directory, 'results.json')
146 with open(input_json_file_path, 'w') as f:
147 json.dump(contents, f)
148 upload_test_results.main([
149 '--test-type=foo',
150 '--input-json=%s' % input_json_file_path,
151 '--results-directory=%s' % result_directory,
152 '--test-results-server=foo',
153 '--master-name=sauron',
154 ])
155 files = [(os.path.basename(input_json_file_path), input_json_file_path)]
156 uploader_mock.assert_called_with(
157 'foo',
158 [('builder', 'DUMMY_BUILDER_NAME'),
159 ('testtype', 'foo'),
160 ('master', 'sauron')], files, 120)
161 finally:
162 shutil.rmtree(result_directory)
163
117 164
165
118 if __name__ == '__main__': 166 if __name__ == '__main__':
119 unittest.main() 167 unittest.main()
OLDNEW
« no previous file with comments | « scripts/slave/recipe_modules/test_results/resources/upload_test_results.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698