普通文本  |  39行  |  1.18 KB

# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

"""Request Handler that updates the Expectation version."""

import webapp2

import ispy_api
from common import constants

import gs_bucket


class RebaselineHandler(webapp2.RequestHandler):
  """Request handler to allow test mask updates."""

  def post(self):
    """Accepts post requests.

    Expects a test_run as a parameter and updates the associated version file to
    use the expectations associated with that test run.
    """
    test_run = self.request.get('test_run')

    # Fail if test_run parameter is missing.
    if not test_run:
      self.response.headers['Content-Type'] = 'json/application'
      self.response.write(json.dumps(
          {'error': '\'test_run\' must be supplied to rebaseline.'}))
      return
    # Otherwise, set up the utilities.
    bucket = gs_bucket.GoogleCloudStorageBucket(constants.BUCKET)
    ispy = ispy_api.ISpyApi(bucket)
    # Update versions file.
    ispy.RebaselineToTestRun(test_run)
    # Redirect back to the sites list for the test run.
    self.redirect('/?test_run=%s' % test_run)