OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 | 2 |
3 # Copyright 2014 The Chromium Authors. All rights reserved. | 3 # Copyright 2014 The Chromium Authors. All rights reserved. |
4 # Use of this source code is governed by a BSD-style license that can be | 4 # Use of this source code is governed by a BSD-style license that can be |
5 # found in the LICENSE file. | 5 # found in the LICENSE file. |
6 | 6 |
7 import collections | 7 import collections |
8 import json | 8 import json |
9 import imp | 9 import imp |
10 import logging | 10 import logging |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 self.tb.deactivate() | 63 self.tb.deactivate() |
64 | 64 |
65 def test_basic_upload(self): | 65 def test_basic_upload(self): |
66 master = master_config.getMaster('chromium.chromiumos') | 66 master = master_config.getMaster('chromium.chromiumos') |
67 builder = 'test-builder' | 67 builder = 'test-builder' |
68 test_type = 'test-type' | 68 test_type = 'test-type' |
69 test_data = { | 69 test_data = { |
70 'tests': { | 70 'tests': { |
71 'Test1.testproc1': { | 71 'Test1.testproc1': { |
72 'expected': 'PASS', | 72 'expected': 'PASS', |
73 'actual': 'PASS', | 73 'actual': 'FAIL', |
74 'time': 1, | 74 'time': 1, |
75 } | 75 } |
76 }, | 76 }, |
77 'build_number': '123', | 77 'build_number': '123', |
78 'version': JSON_RESULTS_HIERARCHICAL_VERSION, | 78 'version': JSON_RESULTS_HIERARCHICAL_VERSION, |
79 'builder_name': builder, | 79 'builder_name': builder, |
80 'blink_revision': '12345', | 80 'blink_revision': '12345', |
81 'seconds_since_epoch': 1406123456, | 81 'seconds_since_epoch': 1406123456, |
82 'num_failures_by_type': { | 82 'num_failures_by_type': { |
83 'FAIL': 0, | 83 'FAIL': 0, |
84 'SKIP': 0, | 84 'SKIP': 0, |
85 'PASS': 1 | 85 'PASS': 1 |
86 }, | 86 }, |
87 'chromium_revision': '67890', | 87 'chromium_revision': '67890', |
88 } | 88 } |
89 | 89 |
90 params = collections.OrderedDict([ | 90 params = collections.OrderedDict([ |
91 (testfilehandler.PARAM_BUILDER, builder), | 91 (testfilehandler.PARAM_BUILDER, builder), |
92 (testfilehandler.PARAM_MASTER, master['url_name']), | 92 (testfilehandler.PARAM_MASTER, master['url_name']), |
93 (testfilehandler.PARAM_TEST_TYPE, test_type), | 93 (testfilehandler.PARAM_TEST_TYPE, test_type), |
94 ]) | 94 ]) |
95 upload_files = [('file', 'full_results.json', json.JSONEncoder().encode(
test_data))] | 95 upload_files = [('file', 'full_results.json', json.JSONEncoder().encode(
test_data))] |
96 response = self.testapp.post('/testfile/upload', params=params, upload_f
iles=upload_files) | 96 response = self.testapp.post('/testfile/upload', params=params, upload_f
iles=upload_files) |
97 self.assertEqual(response.status_int, 200) | 97 self.assertEqual(response.status_int, 200) |
98 | 98 |
| 99 # test aggregated results.json got generated |
99 params = collections.OrderedDict([ | 100 params = collections.OrderedDict([ |
100 (testfilehandler.PARAM_BUILDER, builder), | 101 (testfilehandler.PARAM_BUILDER, builder), |
101 (testfilehandler.PARAM_MASTER, master['url_name']), | 102 (testfilehandler.PARAM_MASTER, master['url_name']), |
102 (testfilehandler.PARAM_TEST_TYPE, test_type), | 103 (testfilehandler.PARAM_TEST_TYPE, test_type), |
103 (testfilehandler.PARAM_BUILD_NUMBER, '123'), | 104 (testfilehandler.PARAM_NAME, 'results.json') |
104 (testfilehandler.PARAM_NAME, 'full_results.json') | |
105 ]) | 105 ]) |
106 response = self.testapp.get('/testfile', params=params) | 106 response = self.testapp.get('/testfile', params=params) |
107 self.assertEqual(response.status_int, 200) | 107 self.assertEqual(response.status_int, 200) |
108 response_json = json.loads(response.normal_body) | 108 response_json = json.loads(response.normal_body) |
109 self.assertEqual(response_json['chromium_revision'], '67890') | 109 self.assertEqual(response_json[builder]['tests']['Test1.testproc1'], |
| 110 {'results': [[1, 'Q']], 'times': [[1, 1]]}) |
| 111 |
| 112 # test testlistjson=1 |
| 113 params[testfilehandler.PARAM_TEST_LIST_JSON] = '1' |
| 114 |
| 115 response = self.testapp.get('/testfile', params=params) |
| 116 self.assertEqual(response.status_int, 200) |
| 117 response_json = json.loads(response.normal_body) |
| 118 self.assertEqual(response_json[builder]['tests']['Test1.testproc1'], {}) |
110 | 119 |
111 def test_deprecated_master_name(self): | 120 def test_deprecated_master_name(self): |
112 """Verify that a file uploaded with a deprecated master name | 121 """Verify that a file uploaded with a deprecated master name |
113 can be downloaded by the corresponding new-style master name. | 122 can be downloaded by the corresponding new-style master name. |
114 """ | 123 """ |
115 master = master_config.getMaster('chromium.chromiumos') | 124 master = master_config.getMaster('chromium.chromiumos') |
116 builder = 'test-builder' | 125 builder = 'test-builder' |
117 test_type = 'test-type' | 126 test_type = 'test-type' |
118 test_data = { | 127 test_data = { |
119 'tests': { | 128 'tests': { |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
168 (testfilehandler.PARAM_NAME, 'full_results.json') | 177 (testfilehandler.PARAM_NAME, 'full_results.json') |
169 ]) | 178 ]) |
170 response = self.testapp.get('/testfile', params=params) | 179 response = self.testapp.get('/testfile', params=params) |
171 self.assertEqual(response.status_int, 200) | 180 self.assertEqual(response.status_int, 200) |
172 response_json = json.loads(response.normal_body) | 181 response_json = json.loads(response.normal_body) |
173 self.assertEqual(response_json['chromium_revision'], '67890') | 182 self.assertEqual(response_json['chromium_revision'], '67890') |
174 | 183 |
175 if __name__ == '__main__': | 184 if __name__ == '__main__': |
176 logging.basicConfig(level=logging.ERROR) | 185 logging.basicConfig(level=logging.ERROR) |
177 unittest.main() | 186 unittest.main() |
OLD | NEW |