| OLD | NEW |
| 1 # Copyright (c) 2009, Google Inc. All rights reserved. | 1 # Copyright (c) 2009, Google Inc. All rights reserved. |
| 2 # | 2 # |
| 3 # Redistribution and use in source and binary forms, with or without | 3 # Redistribution and use in source and binary forms, with or without |
| 4 # modification, are permitted provided that the following conditions are | 4 # modification, are permitted provided that the following conditions are |
| 5 # met: | 5 # met: |
| 6 # | 6 # |
| 7 # * Redistributions of source code must retain the above copyright | 7 # * Redistributions of source code must retain the above copyright |
| 8 # notice, this list of conditions and the following disclaimer. | 8 # notice, this list of conditions and the following disclaimer. |
| 9 # * Redistributions in binary form must reproduce the above | 9 # * Redistributions in binary form must reproduce the above |
| 10 # copyright notice, this list of conditions and the following disclaimer | 10 # copyright notice, this list of conditions and the following disclaimer |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 195 self._is_green = is_green | 195 self._is_green = is_green |
| 196 | 196 |
| 197 @staticmethod | 197 @staticmethod |
| 198 def build_url(builder, build_number): | 198 def build_url(builder, build_number): |
| 199 return "%s/builds/%s" % (builder.url(), build_number) | 199 return "%s/builds/%s" % (builder.url(), build_number) |
| 200 | 200 |
| 201 def url(self): | 201 def url(self): |
| 202 return self.build_url(self.builder(), self._number) | 202 return self.build_url(self.builder(), self._number) |
| 203 | 203 |
| 204 def results_url(self): | 204 def results_url(self): |
| 205 results_directory = "r%s (%s)" % (self.revision(), self._number) | 205 return "%s/%s/layout-test-results" % (self._builder.results_url(), self.
_number) |
| 206 return "%s/%s" % (self._builder.results_url(), urllib.quote(results_dire
ctory)) | |
| 207 | 206 |
| 208 def results_zip_url(self): | 207 def results_zip_url(self): |
| 209 return "%s.zip" % self.results_url() | 208 return "%s.zip" % self.results_url() |
| 210 | 209 |
| 211 def builder(self): | 210 def builder(self): |
| 212 return self._builder | 211 return self._builder |
| 213 | 212 |
| 214 def revision(self): | 213 def revision(self): |
| 215 return self._revision | 214 return self._revision |
| 216 | 215 |
| (...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 403 builders_succeeded_in_past = set() | 402 builders_succeeded_in_past = set() |
| 404 for past_revision in revisions_in_order[i:]: | 403 for past_revision in revisions_in_order[i:]: |
| 405 if not revision_statuses[past_revision]: | 404 if not revision_statuses[past_revision]: |
| 406 break | 405 break |
| 407 builders_succeeded_in_past = builders_succeeded_in_past.union(re
vision_statuses[past_revision]) | 406 builders_succeeded_in_past = builders_succeeded_in_past.union(re
vision_statuses[past_revision]) |
| 408 | 407 |
| 409 if len(builders_succeeded_in_future) == len(builder_revisions) and l
en( | 408 if len(builders_succeeded_in_future) == len(builder_revisions) and l
en( |
| 410 builders_succeeded_in_past) == len(builder_revisions): | 409 builders_succeeded_in_past) == len(builder_revisions): |
| 411 return revision | 410 return revision |
| 412 return None | 411 return None |
| OLD | NEW |