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

Side by Side Diff: appengine/findit/handlers/crash/test/triage_fracas_analysis_test.py

Issue 2074273002: [Findit] Add feedback button for manual triage. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@show-result
Patch Set: Rebase and fix tests. Created 4 years, 5 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 2016 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4 import calendar
5 import base64
6 import copy
7 from datetime import datetime
8 from datetime import time
9 from datetime import timedelta
10 import json
11 from urllib import quote
12
13 from google.appengine.api import users
14 import webapp2
15
16 from testing_utils import testing
17
18 from common import time_util
19 from handlers.crash import triage_fracas_analysis
20 from model import analysis_status
21 from model import result_status
22 from model import triage_status
23 from model.crash.fracas_crash_analysis import FracasCrashAnalysis
24
25
26 class TriageFracasAnalysisTest(testing.AppengineTestCase):
27 app_module = webapp2.WSGIApplication(
28 [('/triage-fracas-analysis',
29 triage_fracas_analysis.TriageFracasAnalysis)], debug=True)
30
31 def setUp(self):
32 super(TriageFracasAnalysisTest, self).setUp()
33 analysis = FracasCrashAnalysis.Create({'signature': 'signature'})
34 analysis.signature = 'signature'
35 analysis.crashed_version = '53.0.2750.0'
36 analysis.stack_trace = 'dummy\nframe1\nframe2'
37 analysis.platform = 'android'
38 analysis.channel = 'canary'
39 analysis.client_id = 'fracas'
40 analysis.status = analysis_status.COMPLETED
41 analysis.historical_metadata = [
42 {'chrome_version': '53.0.2748.0', 'cpm': 0},
43 {'chrome_version': '53.0.2749.0', 'cpm': 0},
44 {'chrome_version': '53.0.2750.0', 'cpm': 0.8}
45 ]
46
47 suspected_cl = {
48 'url': 'https://chromium.googlesource.com/chromium/src/+/346a',
49 'review_url': 'https://review',
50 'revision': '346a',
51 'project_path': 'src/',
52 'author': 'a@chromium.org',
53 'time': '2016-06-04 00:00:00 UTC',
54 'reason': 'some reason',
55 'confidence': 1
56 }
57 analysis.result = {'found': True,
58 'suspected_cls': [suspected_cl],
59 'suspected_components': ['Blink>API', 'Blink>DOM'],
60 'suspected_project': 'chromium',
61 'regression_range': ['53.0.2749.0', '53.0.2750.0']}
62 analysis.found_suspects = True
63 analysis.note = 'This is a note.'
64 analysis.put()
65
66 self.key = analysis.key
67 self.mock_current_user(user_email='test@chromium.org', is_admin=True)
68
69 def testTriageFracasAnalysisHandler(self):
70 response = self.test_app.post('/triage-fracas-analysis?key=%s' %
71 self.key.urlsafe())
72 self.assertEqual(200, response.status_int)
73
74 def testUpdateResultProperty(self):
75 updates = [
76 {
77 'culprit_regression_range': ['1', '2'],
78 'regression_range_triage_status': triage_status.TRIAGED_CORRECT
79 },
80 {
81 'culprit_cls': ['https://chromium/src/+/346'],
82 'suspected_cls_triage_status': triage_status.TRIAGED_CORRECT
83 },
84 {
85 'culprit_project': 'chromium-v8',
86 'suspected_project_triage_status': triage_status.TRIAGED_INCORRECT
87 },
88 {
89 'culprit_components': ['Blink>API'],
90 'suspected_components_triage_status': triage_status.TRIAGED_UNSURE
91 },
92 ]
93 for update in updates:
94
95 self.test_app.post('/triage-fracas-analysis?key=%s' % self.key.urlsafe(),
96 {'update-data': json.dumps(update)})
97 analysis = self.key.get()
98 for key, value in update.iteritems():
99 self.assertEqual(getattr(analysis, key), value)
100
101 def testUpdateNote(self):
102 update = {'note': 'this is a note. +2314>?'}
103 self.test_app.post('/triage-fracas-analysis?key=%s' % self.key.urlsafe(),
104 {'update-data': json.dumps(update)})
105 analysis = self.key.get()
106 self.assertEqual(analysis.note, update['note'])
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698