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

Side by Side Diff: Tools/Scripts/webkitpy/layout_tests/process_json_data_unittest.py

Issue 339623002: Added support for versioning of layout test results of run-webkit-tests runs (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 4 months 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
OLDNEW
(Empty)
1 # Copyright (C) 2014 Google Inc. All rights reserved.
2 #
3 # Redistribution and use in source and binary forms, with or without
4 # modification, are permitted provided that the following conditions are
5 # met:
6 #
7 # * Redistributions of source code must retain the above copyright
8 # notice, this list of conditions and the following disclaimer.
9 # * Redistributions in binary form must reproduce the above
10 # copyright notice, this list of conditions and the following disclaimer
11 # in the documentation and/or other materials provided with the
12 # distribution.
13 # * Neither the name of Google Inc. nor the names of its
14 # contributors may be used to endorse or promote products derived from
15 # this software without specific prior written permission.
16 #
17 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
29 import json
30 import webkitpy.thirdparty.unittest2 as unittest
31
32 from webkitpy.layout_tests.generate_results_dashboard import ProcessJsonData
33
34
35 class ProcessJsonDataTester(unittest.TestCase):
36
37 def test_check_failing_results(self):
38 valid_json_data = json.loads('''{
Dirk Pranke 2014/07/29 18:53:06 Nit: is there any particular reason to use json fo
patro 2014/07/30 06:37:45 Done.
39 "tests": {
40 "test_category": {
41 "test_sub_category": {
42 "test_name": {
43 "test.html": {
44 "actual": "TEXT" ,
45 "expected": "PAS S",
46 "is_unexpected": true
47 }
48 }
49 }
50 }
51 }
52 }''')
53 valid_json_data_1 = json.loads('''{
54 "tests": {
55 "test_category": {
56 "test_sub_category": {
57 "test_name": {
58 "test.html": {
59 "actual": "TEXT" ,
60 "expected": "TEX T",
61 "is_unexpected": true
62 }
63 }
64 }
65 }
66 }
67 }''')
68 valid_json_data_2 = json.loads('''{
69 "tests": {
70 "test_category": {
71 "test_sub_category": {
72 "test_name": {
73 "test.html": {
74 "actual": "TEXT" ,
75 "expected": "TEX T",
76 "is_unexpected": true
77 }
78 },
79 "test_name_2": {
80 "test_2.html": {
81 "actual": "TEXT" ,
82 "expected": "PAS S",
83 "is_unexpected": true
84 }
85 }
86 }
87 }
88 }
89 }''')
90 expected_result = json.loads('''{
91 "tests": {
92 "test_category": {
93 "test_sub_category": {
94 "test_name": {
95 "test.html": {
96 "archived_results": [
97 "TEXT",
98 "PASS"
99 ]
100 }
101 }
102 }
103 }
104 }
105 }''')
106 process_json_data = ProcessJsonData(valid_json_data, [valid_json_data_1] , [valid_json_data_2])
107 actual_result = process_json_data.generate_archived_result()
108 self.assertEqual(expected_result, actual_result)
109
110 def test_check_full_results(self):
111 valid_json_data = json.loads('''{
112 "tests": {
113 "test_category": {
114 "test_sub_category": {
115 "test_name_2": {
116 "test_2.html": {
117 "actual": "TEXT" ,
118 "expected": "PAS S",
119 "is_unexpected": true
120 }
121 }
122 }
123 }
124 }
125 }''')
126 valid_json_data_1 = json.loads('''{
127 "tests": {
128 "test_category": {
129 "test_sub_category": {
130 "test_name": {
131 "test.html": {
132 "actual": "TEXT" ,
133 "expected": "TEX T",
134 "is_unexpected": true
135 }
136 }
137 }
138 }
139 }
140 }''')
141 valid_json_data_2 = json.loads('''{
142 "tests": {
143 "test_category": {
144 "test_sub_category": {
145 "test_name": {
146 "test.html": {
147 "actual": "TEXT" ,
148 "expected": "TEX T",
149 "is_unexpected": true
150 }
151 },
152 "test_name_2": {
153 "test_2.html": {
154 "actual": "IMAGE ",
155 "expected": "TEX T",
156 "is_unexpected": true
157 }
158 }
159 }
160 }
161 }
162 }''')
163 expected_result = json.loads('''{
164 "tests": {
165 "test_category": {
166 "test_sub_category": {
167 "test_name_2": {
168 "test_2.html": {
169 "archived_results": [
170 "TEXT",
171 "IMAGE"
172 ]
173 }
174 }
175 }
176 }
177 }
178 }''')
179 process_json_data = ProcessJsonData(valid_json_data, [valid_json_data_1] , [valid_json_data_2])
180 actual_result = process_json_data.generate_archived_result()
181 self.assertEqual(expected_result, actual_result)
182
183 def test_null_check(self):
184 valid_json_data = json.loads('''{
185 "tests": {
186 "test_category": {
187 "test_sub_category": {
188 "test_name": {
189 "test.html": {
190 "actual": "TEXT" ,
191 "expected": "PAS S",
192 "is_unexpected": true
193 }
194 }
195 }
196 }
197 }
198 }''')
199 expected_result = json.loads('''{
200 "tests": {
201 "test_category": {
202 "test_sub_category": {
203 "test_name": {
204 "test.html": {
205 "archived_results": [
206 "TEXT"
207 ]
208 }
209 }
210 }
211 }
212 }
213 }''')
214 process_json_data = ProcessJsonData(valid_json_data, [], [])
215 actual_result = process_json_data.generate_archived_result()
216 self.assertEqual(expected_result, actual_result)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698