def testShortRevision(self, mocked_fetch): build_data = { '1': { 'currentStep': None, 'properties': [ ('got_revision', '0123456789abcdef', 'Annotation(bot_update)'), ], }, '2': { 'currentStep': None, 'properties': [ ('got_revision', '0123456789abcdef0123456789abcdef01234567', 'Annotation(bot_update)'), ], }, } expected_builds = [ lkgr_lib.Build('2', lkgr_lib.STATUS.SUCCESS, '0123456789abcdef0123456789abcdef01234567'), ] mocked_fetch.return_value = build_data actual_builds = lkgr_lib.FetchBuildbotBuildsForBuilder('master1', 'builder1') self.assertEquals(actual_builds, expected_builds)
def testGotRevisionAndSrcRevision(self, mocked_fetch): build_data = { '1': { 'currentStep': None, 'properties': sorted([ ('got_revision', '89abcdef0123456789abcdef0123456789abcdef', 'Annotation(bot_update)'), ('got_src_revision', '0123456789abcdef0123456789abcdef01234567', 'Annotation(bot_update)'), ]), }, } mocked_fetch.return_value = build_data actual_builds = lkgr_lib.FetchBuildbotBuildsForBuilder('master1', 'builder1') self.assertEquals(len(actual_builds), 1) self.assertEquals( '0123456789abcdef0123456789abcdef01234567', actual_builds[0].revision)
def testNoRevisionProperty(self, mocked_fetch): build_data = { # A running build w/o a revision shouldn't be included in the result. '1': { 'currentStep': True, 'steps': [], 'results': 21, }, # A failed build w/o a revision shouldn't be included in the result. '2': { 'currentStep': None, 'results': 21, }, # A successful build w/o a revision either via properties or # sourceStamp shouldn't be included in the result. '3': { 'currentStep': None, 'results': 0, }, # A successful build w/o a revision via properties but with a # revision in sourceStamp should be included in the result. '4': { 'currentStep': None, 'results': 0, 'sourceStamp': { 'revision': '0123456789abcdef0123456789abcdef01234567', }, }, } expected_builds = [ lkgr_lib.Build('4', lkgr_lib.STATUS.SUCCESS, '0123456789abcdef0123456789abcdef01234567'), ] mocked_fetch.return_value = build_data actual_builds = lkgr_lib.FetchBuildbotBuildsForBuilder('master1', 'builder1') self.assertEquals(actual_builds, expected_builds)
def testFetchFailed(self, _mocked_sleep, mocked_fetch): mocked_fetch.side_effect = httplib2.HttpLib2Error builds = lkgr_lib.FetchBuildbotBuildsForBuilder('master1', 'builder1') self.assertEquals(None, builds)
def testFetchSucceeded(self, mocked_fetch): mocked_fetch.return_value = { 1: {'results': 0, 'properties': [('got_revision', 'a' * 40)]}, } builds = lkgr_lib.FetchBuildbotBuildsForBuilder('master1', 'builder1') self.assertIn(lkgr_lib.Build(1, lkgr_lib.STATUS.SUCCESS, 'a' * 40), builds)