Example #1
0
  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)
Example #2
0
  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)
Example #3
0
  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)
Example #4
0
 def testFetchFailed(self, _mocked_sleep, mocked_fetch):
   mocked_fetch.side_effect = httplib2.HttpLib2Error
   builds = lkgr_lib.FetchBuildbotBuildsForBuilder('master1', 'builder1')
   self.assertEquals(None, builds)
Example #5
0
 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)