def testPutAndGet(self): isolated.Put( (('Mac Builder', 'f9f2b720', 'telemetry_perf', '7c7e90be'), ('Mac Builder', 'f35be4f1', 'telemetry_perf', '38e2f262'))) isolated_hash = isolated.Get('Mac Builder', 'f9f2b720', 'telemetry_perf') self.assertEqual(isolated_hash, '7c7e90be')
def setUp(self): self.testbed = testbed.Testbed() self.testbed.activate() self.testbed.init_datastore_v3_stub() self.testbed.init_memcache_stub() ndb.get_context().clear_cache() isolated.Put(( ('Mac Builder', 'f9f2b720', 'telemetry_perf_tests', '7c7e90be'),))
def post(self): """Add new isolated information. Args: builder_name: The name of the builder that produced the isolated. git_hash: The git hash of the commit the isolated is for. If the isolated is for a DEPS roll, it's the git hash of the commit inside the roll. isolated_map: A JSON dict mapping the target names to the isolated hashes. """ # Check permissions. if self.request.remote_addr not in utils.GetIpWhitelist(): self.response.set_status(403) self.response.write('Permission denied') return # Get parameters. required_parameters = ('builder_name', 'git_hash', 'isolated_map') for given_parameter in self.request.POST: if given_parameter not in required_parameters: self.response.set_status(400) self.response.write('Unknown parameter: %s' % given_parameter) return for required_parameter in required_parameters: if required_parameter not in self.request.POST: self.response.set_status(400) self.response.write('Missing parameter: %s' % required_parameter) return if not self.request.get(required_parameter): self.response.set_status(400) self.response.write('Empty parameter: %s' % required_parameter) return builder_name = self.request.get('builder_name') git_hash = self.request.get('git_hash') isolated_map = self.request.get('isolated_map') # Validate parameters. try: isolated_map = json.loads(isolated_map) except ValueError: self.response.set_status(400) self.response.write('isolated_map is not valid JSON: %s' % isolated_map) return # Put information into the datastore. isolated_infos = { (builder_name, git_hash, target, isolated_hash) for target, isolated_hash in isolated_map.iteritems() } isolated.Put(isolated_infos)
def testSuccesfulBuilderLookupForAllBuilders(self): builder_testers = ( ('arm-builder-rel', 'health-plan-clankium-phone'), ('Android Builder', 'Android Nexus5 Perf'), ('Android arm64 Builder', 'Android Nexus5X Perf'), ('Linux Builder', 'Linux Perf'), ('Mac Builder', 'Mac Air Perf'), ('Win Builder', 'Win 7 Perf'), ('Win x64 Builder', 'Win Zenbook Perf'), ) isolated.Put( (builder, 'git hash', 'telemetry_perf_tests', hex(hash(builder))) for builder, _ in builder_testers) for builder, tester in builder_testers: change = change_module.Change(change_module.Dep('src', 'git hash')) execution = find_isolated.FindIsolated(tester).Start(change) execution.Poll() self.assertExecutionSuccess(execution) self.assertEqual(execution.result_arguments, {'isolated_hash': hex(hash(builder))})