| OLD | NEW |
| 1 # Copyright 2015 The Chromium Authors. All rights reserved. | 1 # Copyright 2015 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 unittest | 5 import unittest |
| 6 | 6 |
| 7 import mock | 7 import mock |
| 8 import webapp2 | 8 import webapp2 |
| 9 import webtest | 9 import webtest |
| 10 | 10 |
| 11 from google.appengine.ext import ndb | 11 from google.appengine.ext import ndb |
| 12 | 12 |
| 13 from dashboard import auto_triage | 13 from dashboard import auto_triage |
| 14 from dashboard import issue_tracker_service |
| 14 from dashboard import testing_common | 15 from dashboard import testing_common |
| 15 from dashboard import utils | 16 from dashboard import utils |
| 16 from dashboard.models import anomaly | 17 from dashboard.models import anomaly |
| 17 from dashboard.models import bug_data | 18 from dashboard.models import bug_data |
| 18 from dashboard.models import sheriff | 19 from dashboard.models import sheriff |
| 19 | 20 |
| 20 | 21 |
| 22 @mock.patch('apiclient.discovery.build', mock.MagicMock()) |
| 23 @mock.patch.object(utils, 'ServiceAccountCredentials', mock.MagicMock()) |
| 21 @mock.patch.object(utils, 'TickMonitoringCustomMetric', mock.MagicMock()) | 24 @mock.patch.object(utils, 'TickMonitoringCustomMetric', mock.MagicMock()) |
| 22 class AutoTriageTest(testing_common.TestCase): | 25 class AutoTriageTest(testing_common.TestCase): |
| 23 | 26 |
| 24 def setUp(self): | 27 def setUp(self): |
| 25 super(AutoTriageTest, self).setUp() | 28 super(AutoTriageTest, self).setUp() |
| 26 app = webapp2.WSGIApplication( | 29 app = webapp2.WSGIApplication( |
| 27 [('/auto_triage', auto_triage.AutoTriageHandler)]) | 30 [('/auto_triage', auto_triage.AutoTriageHandler)]) |
| 28 self.testapp = webtest.TestApp(app) | 31 self.testapp = webtest.TestApp(app) |
| 29 | 32 |
| 30 def _AddTestData(self, series, sheriff_key, | 33 def _AddTestData(self, series, sheriff_key, |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 128 49, 50, 51, 50, 51, 49, 51, 50, 50, 49, | 131 49, 50, 51, 50, 51, 49, 51, 50, 50, 49, |
| 129 ] | 132 ] |
| 130 test_key = self._AddTestData(values, sheriff_key) | 133 test_key = self._AddTestData(values, sheriff_key) |
| 131 anomaly_key = self._AddAnomalyForTest( | 134 anomaly_key = self._AddAnomalyForTest( |
| 132 sheriff_key, test_key, revision=11, median_before=50, median_after=55, | 135 sheriff_key, test_key, revision=11, median_before=50, median_after=55, |
| 133 bug_id=-1) | 136 bug_id=-1) |
| 134 self.testapp.post('/auto_triage') | 137 self.testapp.post('/auto_triage') |
| 135 self.assertFalse(anomaly_key.get().recovered) | 138 self.assertFalse(anomaly_key.get().recovered) |
| 136 | 139 |
| 137 @mock.patch.object( | 140 @mock.patch.object( |
| 138 utils, 'ServiceAccountCredentials', mock.MagicMock()) | 141 issue_tracker_service.IssueTrackerService, 'AddBugComment') |
| 139 @mock.patch.object( | |
| 140 auto_triage.issue_tracker_service.IssueTrackerService, 'AddBugComment') | |
| 141 def testPost_AllAnomaliesRecovered_AddsComment(self, add_bug_comment_mock): | 142 def testPost_AllAnomaliesRecovered_AddsComment(self, add_bug_comment_mock): |
| 142 sheriff_key = sheriff.Sheriff(email='a@google.com', id='sheriff_key').put() | 143 sheriff_key = sheriff.Sheriff(email='a@google.com', id='sheriff_key').put() |
| 143 values = [ | 144 values = [ |
| 144 49, 50, 51, 50, 51, 49, 51, 50, 50, 49, | 145 49, 50, 51, 50, 51, 49, 51, 50, 50, 49, |
| 145 55, 54, 55, 56, 54, 56, 57, 56, 55, 56, | 146 55, 54, 55, 56, 54, 56, 57, 56, 55, 56, |
| 146 49, 50, 51, 50, 51, 49, 51, 50, 50, 49, | 147 49, 50, 51, 50, 51, 49, 51, 50, 50, 49, |
| 147 ] | 148 ] |
| 148 test_key = self._AddTestData(values, sheriff_key) | 149 test_key = self._AddTestData(values, sheriff_key) |
| 149 anomaly_key = self._AddAnomalyForTest( | 150 anomaly_key = self._AddAnomalyForTest( |
| 150 sheriff_key, test_key, revision=11, median_before=50, median_after=55, | 151 sheriff_key, test_key, revision=11, median_before=50, median_after=55, |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 212 series, sheriff_key, improvement_direction=anomaly.DOWN) | 213 series, sheriff_key, improvement_direction=anomaly.DOWN) |
| 213 anomaly_key = self._AddAnomalyForTest( | 214 anomaly_key = self._AddAnomalyForTest( |
| 214 sheriff_key, test_key, revision=362399, | 215 sheriff_key, test_key, revision=362399, |
| 215 median_before=78275468.8, median_after=79630313.6) | 216 median_before=78275468.8, median_after=79630313.6) |
| 216 self.testapp.post('/auto_triage') | 217 self.testapp.post('/auto_triage') |
| 217 self.assertTrue(anomaly_key.get().recovered) | 218 self.assertTrue(anomaly_key.get().recovered) |
| 218 | 219 |
| 219 | 220 |
| 220 if __name__ == '__main__': | 221 if __name__ == '__main__': |
| 221 unittest.main() | 222 unittest.main() |
| OLD | NEW |