Changeset 90665 in webkit
- Timestamp:
- Jul 8, 2011 2:18:13 PM (13 years ago)
- Location:
- trunk/Tools
- Files:
-
- 1 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r90664 r90665 1 2011-07-08 Adam Barth <abarth@webkit.org> 2 3 TestResultsServer should keep old test results 4 https://bugs.webkit.org/show_bug.cgi?id=64199 5 6 Reviewed by Ojan Vafai. 7 8 Having historical data will help us do failure archeology. 9 10 * TestResultServer/handlers/testfilehandler.py: 11 * TestResultServer/model/testfile.py: 12 * TestResultServer/templates/showfilelist.jsonp: Added. 13 1 14 2011-07-08 Adam Roben <aroben@apple.com> 2 15 -
trunk/Tools/TestResultServer/handlers/testfilehandler.py
r90418 r90665 34 34 from google.appengine.ext import webapp 35 35 from google.appengine.ext.webapp import template 36 from google.appengine.ext import db 36 37 37 38 from model.jsonresults import JsonResults … … 50 51 51 52 53 def _replace_jsonp_callback(json, callback_name): 54 if callback_name and re.search(r"^[A-Za-z0-9_]+$", callback_name): 55 json = re.sub(r"^[A-Za-z0-9_]+[(]", callback_name + "(", json) 56 return json 57 58 52 59 class DeleteFile(webapp.RequestHandler): 53 60 """Delete test file for a given builder and name from datastore.""" … … 74 81 """Get file content or list of files for given builder and name.""" 75 82 76 def _get_file_list(self, master, builder, test_type, name ):83 def _get_file_list(self, master, builder, test_type, name, callback_name=None): 77 84 """Get and display a list of files that matches builder and file name. 78 85 … … 99 106 "files": files, 100 107 } 108 if callback_name: 109 json = template.render("templates/showfilelist.jsonp", template_values) 110 self._serve_json(_replace_jsonp_callback(json, callback_name)) 111 return 101 112 self.response.out.write(template.render("templates/showfilelist.html", 102 113 template_values)) … … 120 131 return files[0].data 121 132 133 def _get_file_content_from_key(self, key): 134 file = db.get(key) 135 136 if not file: 137 logging.info("File not found, key %s.", key) 138 return None 139 140 file.load_data() 141 return file.data 142 122 143 def _get_test_list_json(self, master, builder, test_type): 123 144 """Return json file with test name list only, do not include test … … 135 156 return JsonResults.get_test_list(builder, json) 136 157 158 def _serve_json(self, json): 159 if json: 160 self.response.headers["Content-Type"] = "application/json" 161 self.response.out.write(json) 162 else: 163 self.error(404) 164 137 165 def get(self): 166 key = self.request.get(PARAM_KEY) 138 167 master = self.request.get(PARAM_MASTER) 139 168 builder = self.request.get(PARAM_BUILDER) … … 148 177 master, builder, test_type, name) 149 178 150 # If parameter "dir" is specified or there is no builder or filename 151 # specified in the request, return list of files, otherwise, return 152 # file content. 153 if dir or not builder or not name: 154 return self._get_file_list(master, builder, test_type, name) 155 156 if name == "results.json" and test_list_json: 179 if not key: 180 # If parameter "dir" is specified or there is no builder or filename 181 # specified in the request, return list of files, otherwise, return 182 # file content. 183 if dir or not builder or not name: 184 return self._get_file_list(master, builder, test_type, name, callback_name) 185 186 if key: 187 json = self._get_file_content_from_key(key) 188 elif name == "results.json" and test_list_json: 157 189 json = self._get_test_list_json(master, builder, test_type) 158 190 else: 159 191 json = self._get_file_content(master, builder, test_type, name) 160 192 161 if callback_name and re.search(r"^[A-Za-z0-9_]+$", callback_name): 162 json = re.sub(r"^[A-Za-z0-9_]+[(]", callback_name + "(", json) 163 164 if json: 165 self.response.headers["Content-Type"] = "application/json" 166 self.response.out.write(json) 167 else: 168 self.error(404) 193 self._serve_json(_replace_jsonp_callback(json, callback_name)) 194 169 195 170 196 class Upload(webapp.RequestHandler): … … 208 234 update_succeeded = JsonResults.update(master, builder, test_type, file.value) 209 235 else: 210 update_succeeded = TestFile. update(236 update_succeeded = TestFile.add_file( 211 237 master, builder, test_type, file.filename, file.value) 212 238 -
trunk/Tools/TestResultServer/model/testfile.py
r70822 r90665 98 98 return file 99 99 100 @classmethod101 def update(cls, master, builder, test_type, name, data):102 files = cls.get_files(master, builder, test_type, name)103 if not files:104 return cls.add_file(master, builder, test_type, name, data)105 106 file = files[0]107 if not file.save(data):108 return None109 110 logging.info(111 "File replaced, master: %s, builder: %s, test_type: %s, name: %s, data key: %s.",112 master, builder, test_type, file.name, str(file.data_keys))113 114 return file115 116 100 def save(self, data): 117 101 if not self.save_data(data):
Note: See TracChangeset
for help on using the changeset viewer.