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

Side by Side Diff: appengine/chromium_try_flakes/handlers/flake_issues.py

Issue 2354333005: Fix call to the IssueTrackerAPI constructor (Closed)
Patch Set: Fix and add tests Created 4 years, 3 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
« no previous file with comments | « no previous file | appengine/chromium_try_flakes/handlers/test/flake_issues_test.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 """Task queue endpoints for creating and updating issues on issue tracker.""" 5 """Task queue endpoints for creating and updating issues on issue tracker."""
6 6
7 import datetime 7 import datetime
8 import json 8 import json
9 import logging 9 import logging
10 import urllib2 10 import urllib2
11 import webapp2 11 import webapp2
12 12
13 from google.appengine.api import app_identity 13 from google.appengine.api import app_identity
14 from google.appengine.api import taskqueue 14 from google.appengine.api import taskqueue
15 from google.appengine.api import urlfetch 15 from google.appengine.api import urlfetch
16 from google.appengine.api import users 16 from google.appengine.api import users
17 from google.appengine.ext import ndb 17 from google.appengine.ext import ndb
18 18
19 from apiclient.errors import HttpError
19 import gae_ts_mon 20 import gae_ts_mon
20 from issue_tracker import issue_tracker_api, issue 21 from issue_tracker import issue_tracker_api, issue
21 from model.flake import ( 22 from model.flake import (
22 Flake, FlakeOccurrence, FlakeUpdate, FlakeUpdateSingleton, FlakyRun) 23 Flake, FlakeOccurrence, FlakeUpdate, FlakeUpdateSingleton, FlakyRun)
23 from model.build_run import BuildRun 24 from model.build_run import BuildRun
24 from status import build_result, util 25 from status import build_result, util
25 from test_results.util import normalize_test_type, flatten_tests_trie 26 from test_results.util import normalize_test_type, flatten_tests_trie
26 27
27 28
28 MAX_UPDATED_ISSUES_PER_DAY = 10 29 MAX_UPDATED_ISSUES_PER_DAY = 10
(...skipping 652 matching lines...) Expand 10 before | Expand all | Expand 10 after
681 user_email = users.get_current_user().email() 682 user_email = users.get_current_user().email()
682 if not user_email.endswith('@chromium.org'): 683 if not user_email.endswith('@chromium.org'):
683 self.response.set_status(401) 684 self.response.set_status(401)
684 self.response.write( 685 self.response.write(
685 'Please login with your chromium.org account. <a href="%s">Logout' 686 'Please login with your chromium.org account. <a href="%s">Logout'
686 '</a>.' % users.create_logout_url(self.request.url)) 687 '</a>.' % users.create_logout_url(self.request.url))
687 return 688 return
688 689
689 try: 690 try:
690 issue_id = int(self.request.get('issue_id')) 691 issue_id = int(self.request.get('issue_id'))
691 except Exception as e: 692 except (TypeError, ValueError) as e:
692 self.response.set_status(400) 693 self.response.set_status(400)
693 self.response.write('Failed to parse Issue ID as an integer.') 694 self.response.write('Failed to parse Issue ID as an integer.')
694 return 695 return
695 696
696 if issue_id < 0: 697 if issue_id < 0:
697 self.response.set_status(400) 698 self.response.set_status(400)
698 self.response.write('Issue ID must be positive or 0.') 699 self.response.write('Issue ID must be positive or 0.')
699 return 700 return
700 701
701 if issue_id != 0: 702 if issue_id != 0:
703 api = issue_tracker_api.IssueTrackerAPI('chromium')
702 try: 704 try:
703 api = issue_tracker_api.IssueTrackerAPI('chromium', True)
704 api.getIssue(issue_id) 705 api.getIssue(issue_id)
705 except Exception as e: 706 except HttpError as e:
706 self.response.set_status(400) 707 if e.resp.status != 404:
708 raise
709 self.response.set_status(404)
707 self.response.write( 710 self.response.write(
708 'Failed to find issue %d on issue tracker: %s.' % (issue_id, e)) 711 'Failed to find issue %d on issue tracker: %s.' % (issue_id, e))
709 return 712 return
710 713
711 key = self.request.get('key') 714 key = self.request.get('key')
712 flake = ndb.Key(urlsafe=key).get() 715 flake = ndb.Key(urlsafe=key).get()
713 flake.issue_id = issue_id 716 flake.issue_id = issue_id
714 flake.put() 717 flake.put()
715 718
716 logging.info('%s updated issue_id for flake %s to %d.', user_email, 719 logging.info('%s updated issue_id for flake %s to %d.', user_email,
717 flake.name, issue_id) 720 flake.name, issue_id)
718 self.redirect('/all_flake_occurrences?key=%s' % key) 721 self.redirect('/all_flake_occurrences?key=%s' % key)
OLDNEW
« no previous file with comments | « no previous file | appengine/chromium_try_flakes/handlers/test/flake_issues_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698