1# Copyright 2014 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 5"""Request Handler that updates the Expectation version.""" 6 7import webapp2 8 9import ispy_api 10from common import constants 11 12import gs_bucket 13 14 15class RebaselineHandler(webapp2.RequestHandler): 16 """Request handler to allow test mask updates.""" 17 18 def post(self): 19 """Accepts post requests. 20 21 Expects a test_run as a parameter and updates the associated version file to 22 use the expectations associated with that test run. 23 """ 24 test_run = self.request.get('test_run') 25 26 # Fail if test_run parameter is missing. 27 if not test_run: 28 self.response.headers['Content-Type'] = 'json/application' 29 self.response.write(json.dumps( 30 {'error': '\'test_run\' must be supplied to rebaseline.'})) 31 return 32 # Otherwise, set up the utilities. 33 bucket = gs_bucket.GoogleCloudStorageBucket(constants.BUCKET) 34 ispy = ispy_api.ISpyApi(bucket) 35 # Update versions file. 36 ispy.RebaselineToTestRun(test_run) 37 # Redirect back to the sites list for the test run. 38 self.redirect('/?test_run=%s' % test_run) 39