| OLD | NEW | 
|---|
| 1 # Copyright 2016 The Chromium Authors. All rights reserved. | 1 # Copyright 2016 The Chromium Authors. All rights reserved. | 
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be | 
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. | 
| 4 | 4 | 
| 5 import logging | 5 import logging | 
| 6 | 6 | 
| 7 from google.appengine.ext import ndb | 7 from google.appengine.ext import ndb | 
| 8 | 8 | 
| 9 from common import appengine_util | 9 from common import appengine_util | 
| 10 from crash import detect_regression_range | 10 from crash import detect_regression_range | 
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 47           cls.__name__) | 47           cls.__name__) | 
| 48     raise NotImplementedError() | 48     raise NotImplementedError() | 
| 49 | 49 | 
| 50   # TODO(http://crbug.com/659354): remove the dependency on CrashConfig | 50   # TODO(http://crbug.com/659354): remove the dependency on CrashConfig | 
| 51   # entirely, by passing the relevant data as arguments to this constructor. | 51   # entirely, by passing the relevant data as arguments to this constructor. | 
| 52   def __init__(self, repository): | 52   def __init__(self, repository): | 
| 53     super(FinditForChromeCrash, self).__init__(repository) | 53     super(FinditForChromeCrash, self).__init__(repository) | 
| 54     component_classifier_config = CrashConfig.Get().component_classifier | 54     component_classifier_config = CrashConfig.Get().component_classifier | 
| 55 | 55 | 
| 56     self._stacktrace_parser = ChromeCrashParser() | 56     self._stacktrace_parser = ChromeCrashParser() | 
|  | 57 | 
|  | 58     # TODO(crbug.com/677224): should replace this with an actual factory. | 
|  | 59     def MutateTheRepo(dep_url): # pragma: no cover | 
|  | 60       """A factory function for returning ``Repository`` objects. | 
|  | 61 | 
|  | 62       The current definition captures the functionality of before | 
|  | 63       we factored out this factory method. That is, it's not really a | 
|  | 64       "factory" but rather mutates the main repo object in place. In | 
|  | 65       the future this should be changed to do the right thing instead. | 
|  | 66       """ | 
|  | 67       repository.repo_url = dep_url | 
|  | 68       return repository | 
|  | 69 | 
| 57     # The top_n is the number of components we should return as | 70     # The top_n is the number of components we should return as | 
| 58     # components suggestion results. | 71     # components suggestion results. | 
| 59     self._predator = Predator( | 72     self._predator = Predator( | 
| 60         cl_classifier = ChangelistClassifier(repository = repository), | 73         cl_classifier = ChangelistClassifier(repository, MutateTheRepo), | 
| 61         component_classifier = ComponentClassifier( | 74         component_classifier = ComponentClassifier( | 
| 62             [Component(component_name, path_regex, function_regex) | 75             [Component(component_name, path_regex, function_regex) | 
| 63             for path_regex, function_regex, component_name | 76             for path_regex, function_regex, component_name | 
| 64             in component_classifier_config['path_function_component']], | 77             in component_classifier_config['path_function_component']], | 
| 65             component_classifier_config['top_n']), | 78             component_classifier_config['top_n']), | 
| 66         project_classifier = ProjectClassifier()) | 79         project_classifier = ProjectClassifier()) | 
| 67 | 80 | 
| 68   def _InitializeAnalysis(self, model, crash_data): | 81   def _InitializeAnalysis(self, model, crash_data): | 
| 69     super(FinditForChromeCrash, self)._InitializeAnalysis(model, crash_data) | 82     super(FinditForChromeCrash, self)._InitializeAnalysis(model, crash_data) | 
| 70     # TODO(wrengr): see Note#1 | 83     # TODO(wrengr): see Note#1 | 
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 166 | 179 | 
| 167   def GetAnalysis(self, crash_identifiers): | 180   def GetAnalysis(self, crash_identifiers): | 
| 168     # TODO: inline FracasCrashAnalysis.Get stuff here. | 181     # TODO: inline FracasCrashAnalysis.Get stuff here. | 
| 169     return FracasCrashAnalysis.Get(crash_identifiers) | 182     return FracasCrashAnalysis.Get(crash_identifiers) | 
| 170 | 183 | 
| 171   def ProcessResultForPublishing(self, result, key): | 184   def ProcessResultForPublishing(self, result, key): | 
| 172     """Fracas specific processing of result data for publishing.""" | 185     """Fracas specific processing of result data for publishing.""" | 
| 173     result['feedback_url'] = _FRACAS_FEEDBACK_URL_TEMPLATE % ( | 186     result['feedback_url'] = _FRACAS_FEEDBACK_URL_TEMPLATE % ( | 
| 174         appengine_util.GetDefaultVersionHostname(), key) | 187         appengine_util.GetDefaultVersionHostname(), key) | 
| 175     return result | 188     return result | 
| OLD | NEW | 
|---|