Exemplo n.º 1
0
def RetrieveOutputJson(isolate_server, isolate_hash, filename):
  logging.debug(
      'Retrieving json output (%s, %s, %s)',
      isolate_server, isolate_hash, filename)

  output_files = json.loads(isolate.Retrieve(
      isolate_server, isolate_hash))['files']
  logging.debug('response: %s', output_files)

  if filename not in output_files:
    if 'performance_browser_tests' not in filename:
      raise errors.ReadValueNoFile(filename)

    # TODO(simonhatch): Remove this once crbug.com/947501 is resolved.
    filename = filename.replace(
        'performance_browser_tests', 'browser_tests')
    if filename not in output_files:
      raise errors.ReadValueNoFile(filename)

  output_json_isolate_hash = output_files[filename]['h']
  logging.debug('Retrieving %s', output_json_isolate_hash)

  # TODO(dberris): Use incremental json parsing through a file interface, to
  # avoid having to load the whole string contents in memory. See
  # https://crbug.com/998517 for more context.
  response = json.loads(
      isolate.Retrieve(isolate_server, output_json_isolate_hash))
  logging.debug('response: %s', response)

  return response
Exemplo n.º 2
0
def _RetrieveOutputJson(isolate_server, isolate_hash, filename):
    logging.debug('Retrieving json output (%s, %s, %s)', isolate_server,
                  isolate_hash, filename)

    output_files = json.loads(isolate.Retrieve(isolate_server,
                                               isolate_hash))['files']
    logging.debug('response: %s', output_files)

    if filename not in output_files:
        if 'performance_browser_tests' not in filename:
            raise errors.ReadValueNoFile(filename)

        # TODO(simonhatch): Remove this once crbug.com/947501 is resolved.
        filename = filename.replace('performance_browser_tests',
                                    'browser_tests')
        if filename not in output_files:
            raise errors.ReadValueNoFile(filename)

    output_json_isolate_hash = output_files[filename]['h']
    logging.debug('Retrieving %s', output_json_isolate_hash)

    response = json.loads(
        isolate.Retrieve(isolate_server, output_json_isolate_hash))
    logging.debug('response: %s', response)

    return response
Exemplo n.º 3
0
def _RetrieveOutputJson(isolate_server, isolate_hash, filename):
  output_files = json.loads(isolate.Retrieve(
      isolate_server, isolate_hash))['files']

  if filename not in output_files:
    raise ReadValueError("The test didn't produce %s." % filename)
  output_json_isolate_hash = output_files[filename]['h']
  return json.loads(isolate.Retrieve(isolate_server, output_json_isolate_hash))
Exemplo n.º 4
0
def _RetrieveOutputJson(isolate_hash, filename):
    # TODO: Plumb isolate_server through the parameters. crbug.com/822008
    server = 'https://isolateserver.appspot.com'
    output_files = json.loads(isolate.Retrieve(server, isolate_hash))['files']

    if filename not in output_files:
        raise ReadValueError("The test didn't produce %s." % filename)
    output_json_isolate_hash = output_files[filename]['h']
    return json.loads(isolate.Retrieve(server, output_json_isolate_hash))
Exemplo n.º 5
0
def _RetrieveOutputJson(isolate_server, isolate_hash, filename):
  output_files = json.loads(isolate.Retrieve(
      isolate_server, isolate_hash))['files']

  if filename not in output_files:
    if 'performance_browser_tests' not in filename:
      raise ReadValueError("The test didn't produce %s." % filename)

    # TODO(simonhatch): Remove this once crbug.com/947501 is resolved.
    filename = filename.replace(
        'performance_browser_tests', 'browser_tests')
    if filename not in output_files:
      raise ReadValueError("The test didn't produce %s." % filename)
  output_json_isolate_hash = output_files[filename]['h']
  return json.loads(isolate.Retrieve(isolate_server, output_json_isolate_hash))
Exemplo n.º 6
0
def RetrieveIsolateOutput(isolate_server, isolate_hash, filename):
    logging.debug('Retrieving output (%s, %s, %s)', isolate_server,
                  isolate_hash, filename)

    retrieve_result = isolate.Retrieve(isolate_server, isolate_hash)
    response = json.loads(retrieve_result)
    output_files = response.get('files', {})

    if filename not in output_files:
        if 'performance_browser_tests' not in filename:
            raise errors.ReadValueNoFile(filename)

        # TODO(simonhatch): Remove this once crbug.com/947501 is resolved.
        filename = filename.replace('performance_browser_tests',
                                    'browser_tests')
        if filename not in output_files:
            raise errors.ReadValueNoFile(filename)

    output_isolate_hash = output_files[filename]['h']
    logging.debug('Retrieving %s', output_isolate_hash)

    return isolate.Retrieve(isolate_server, output_isolate_hash)
Exemplo n.º 7
0
  def testRetrieveContent(self, request_json, _):
    request_json.return_value = {
        'content': base64.b64encode(zlib.compress('file contents'))
    }

    isolate_contents = isolate.Retrieve('https://isolate.com', _ISOLATED_HASH)
    self.assertEqual(isolate_contents, 'file contents')

    url = 'https://isolate.com/_ah/api/isolateservice/v1/retrieve'
    body = {
        'namespace': {
            'namespace': 'default-gzip'
        },
        'digest': _ISOLATED_HASH,
    }
    request_json.assert_called_once_with(url, 'POST', body)
Exemplo n.º 8
0
  def testRetrieveUrl(self, request_json, request):
    request_json.return_value = {
        'url':
            'https://isolateserver.storage.googleapis.com/default-gzip/' +
            _FILE_HASH
    }
    request.return_value = zlib.compress('file contents')

    file_contents = isolate.Retrieve('https://isolate.com', _FILE_HASH)
    self.assertEqual(file_contents, 'file contents')

    url = 'https://isolate.com/_ah/api/isolateservice/v1/retrieve'
    body = {'namespace': {'namespace': 'default-gzip'}, 'digest': _FILE_HASH}
    request_json.assert_called_once_with(url, 'POST', body)

    request.assert_called_once_with(
        'https://isolateserver.storage.googleapis.com/default-gzip/' +
        _FILE_HASH, 'GET')
Exemplo n.º 9
0
    def testRetrieveUnknownFormat(self, request_json, _):
        request_json.return_value = {}

        with self.assertRaises(NotImplementedError):
            isolate.Retrieve('https://isolate.com', 'digest')