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
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
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))
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))
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))
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)
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)
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')
def testRetrieveUnknownFormat(self, request_json, _): request_json.return_value = {} with self.assertRaises(NotImplementedError): isolate.Retrieve('https://isolate.com', 'digest')