def testNotAcceptingBuilds(self): self.mock(requests, 'get', self.requests_handler) self.res = self.Response( status_code=200, json=lambda: {'accepting_builds': False}) accepting_builds, _ = master.get_buildstate(self.chromium_fyi) self.assertFalse(accepting_builds)
def testBadStatusCode(self): # We shouldn't get to the JSON function since we hit 404. # pylint: disable=redundant-unittest-assert self.res = self.Response( status_code=404, json=lambda: self.assertTrue(False)) # pragma: no cover self.mock(requests, 'get', self.requests_handler) accepting_builds, _ = master.get_buildstate(self.chromium_fyi) self.assertFalse(accepting_builds)
def testBadJson(self): def raiser(): raise simplejson.scanner.JSONDecodeError('bad json', '', 0) self.res = self.Response( status_code=200, json=raiser) self.mock(requests, 'get', self.requests_handler) accepting_builds, _ = master.get_buildstate(self.chromium_fyi) self.assertFalse(accepting_builds)
def collect_evidence(master_directory, connection_timeout=30): """Collects evidence from the OS for late state determination.""" evidence = {} evidence['now'] = timestamp.utcnow_ts() evidence['last_boot'] = master.get_last_boot(master_directory) evidence['last_no_new_builds'] = master.get_last_no_new_builds( master_directory) evidence['buildbot_is_running'] = master.buildbot_is_running(master_directory) if evidence['buildbot_is_running']: accepting_builds, current_running_builds = master.get_buildstate( master_directory, timeout=connection_timeout) evidence['accepting_builds'] = accepting_builds evidence['current_running_builds'] = current_running_builds return evidence
def testGetBuildstate(self): self.mock(requests, 'get', self.requests_handler) currentBuilds = [ 15, 16, 17, ] self.res = self.Response( status_code=200, json=lambda: { 'accepting_builds': True, 'builders': [ {'currentBuilds': currentBuilds}, {}, ] }) accepting_builds, running_builds = master.get_buildstate(self.chromium_fyi) self.assertTrue(accepting_builds) self.assertEqual(running_builds, len(currentBuilds))
def collect_evidence(master_directory, connection_timeout=30, builder_filters=None): """Collects evidence from the OS for late state determination.""" evidence = {} evidence['now'] = timestamp.utcnow_ts() evidence['last_boot'] = master.get_last_boot(master_directory) evidence['last_no_new_builds'] = master.get_last_no_new_builds( master_directory) evidence['buildbot_is_running'] = master.buildbot_is_running(master_directory) if evidence['buildbot_is_running']: accepting_builds, current_running_builds = master.get_buildstate( master_directory, timeout=connection_timeout) evidence['accepting_builds'] = accepting_builds if builder_filters: current_running_builds = set(b for b in current_running_builds if any(f.match(b[0]) for f in builder_filters)) evidence['current_running_builds'] = current_running_builds return evidence
def testConnectionErr(self): def timeout(*_args, **_kwargs): raise requests.exceptions.ConnectionError('error') self.mock(requests, 'get', timeout) accepting_builds, _ = master.get_buildstate(self.chromium_fyi) self.assertIsNone(accepting_builds)
def testAcceptingBuildsNoMaster(self): accepting_builds, _ = master.get_buildstate(self.chromium_webkit) self.assertIsNone(accepting_builds)