def setupReporter(self, **kwargs): self._http = yield fakehttpclientservice.HTTPClientService.getService( self.master, self, 'serv', auth=('username', 'passwd'), debug=None, verify=None) self.sp = BitbucketServerStatusPush("serv", Interpolate("username"), Interpolate("passwd"), **kwargs) yield self.sp.setServiceParent(self.master)
def setupReporter(self, **kwargs): self.setUpTestReactor() self.setup_reporter_test() # ignore config error if txrequests is not installed self.patch(config, '_errors', Mock()) self.master = fakemaster.make_master(self, wantData=True, wantDb=True, wantMq=True) self._http = yield fakehttpclientservice.HTTPClientService.getService( self.master, self, 'serv', auth=('username', 'passwd'), debug=None, verify=None) self.sp = BitbucketServerStatusPush("serv", Interpolate("username"), Interpolate("passwd"), **kwargs) yield self.sp.setServiceParent(self.master) yield self.master.startService()
class TestBitbucketServerStatusPush(TestReactorMixin, unittest.TestCase, ReporterTestMixin, LoggingMixin): @defer.inlineCallbacks def setupReporter(self, **kwargs): self.setUpTestReactor() self.setup_reporter_test() # ignore config error if txrequests is not installed self.patch(config, '_errors', Mock()) self.master = fakemaster.make_master(self, wantData=True, wantDb=True, wantMq=True) self._http = yield fakehttpclientservice.HTTPClientService.getService( self.master, self, 'serv', auth=('username', 'passwd'), debug=None, verify=None) self.sp = BitbucketServerStatusPush("serv", Interpolate("username"), Interpolate("passwd"), **kwargs) yield self.sp.setServiceParent(self.master) yield self.master.startService() @defer.inlineCallbacks def tearDown(self): yield self.master.stopService() @defer.inlineCallbacks def _check_start_and_finish_build(self, build): # we make sure proper calls to txrequests have been made self._http.expect( 'post', '/rest/build-status/1.0/commits/d34db33fd43db33f', json={'url': 'http://localhost:8080/#builders/79/builds/0', 'state': 'INPROGRESS', 'key': 'Builder0', 'description': 'Build started.'}, code=HTTP_PROCESSED) self._http.expect( 'post', '/rest/build-status/1.0/commits/d34db33fd43db33f', json={'url': 'http://localhost:8080/#builders/79/builds/0', 'state': 'SUCCESSFUL', 'key': 'Builder0', 'description': 'Build done.'}, code=HTTP_PROCESSED) self._http.expect( 'post', '/rest/build-status/1.0/commits/d34db33fd43db33f', json={'url': 'http://localhost:8080/#builders/79/builds/0', 'state': 'FAILED', 'key': 'Builder0', 'description': 'Build done.'}) build['complete'] = False yield self.sp._got_event(('builds', 20, 'new'), build) build['complete'] = True yield self.sp._got_event(('builds', 20, 'finished'), build) build['results'] = FAILURE yield self.sp._got_event(('builds', 20, 'finished'), build) @defer.inlineCallbacks def test_basic(self): self.setupReporter() build = yield self.insert_build_finished(SUCCESS) yield self._check_start_and_finish_build(build) @defer.inlineCallbacks def test_setting_options(self): self.setupReporter(statusName='Build', startDescription='Build started.', endDescription='Build finished.') build = yield self.insert_build_finished(SUCCESS) # we make sure proper calls to txrequests have been made self._http.expect( 'post', '/rest/build-status/1.0/commits/d34db33fd43db33f', json={'url': 'http://localhost:8080/#builders/79/builds/0', 'state': 'INPROGRESS', 'key': 'Builder0', 'name': 'Build', 'description': 'Build started.'}, code=HTTP_PROCESSED) self._http.expect( 'post', '/rest/build-status/1.0/commits/d34db33fd43db33f', json={'url': 'http://localhost:8080/#builders/79/builds/0', 'state': 'SUCCESSFUL', 'key': 'Builder0', 'name': 'Build', 'description': 'Build finished.'}, code=HTTP_PROCESSED) self._http.expect( 'post', '/rest/build-status/1.0/commits/d34db33fd43db33f', json={'url': 'http://localhost:8080/#builders/79/builds/0', 'state': 'FAILED', 'key': 'Builder0', 'name': 'Build', 'description': 'Build finished.'}, code=HTTP_PROCESSED) build['complete'] = False yield self.sp._got_event(('builds', 20, 'new'), build) build['complete'] = True yield self.sp._got_event(('builds', 20, 'finished'), build) build['results'] = FAILURE yield self.sp._got_event(('builds', 20, 'finished'), build) @defer.inlineCallbacks def test_error(self): self.setupReporter() build = yield self.insert_build_finished(SUCCESS) # we make sure proper calls to txrequests have been made self._http.expect( 'post', '/rest/build-status/1.0/commits/d34db33fd43db33f', json={'url': 'http://localhost:8080/#builders/79/builds/0', 'state': 'INPROGRESS', 'key': 'Builder0', 'description': 'Build started.'}, code=HTTP_NOT_FOUND, content_json={ "error_description": "This commit is unknown to us", "error": "invalid_commit"}) build['complete'] = False self.setUpLogging() yield self.sp._got_event(('builds', 20, 'new'), build) self.assertLogged('404: Unable to send Bitbucket Server status') @defer.inlineCallbacks def test_basic_with_no_revision(self): yield self.setupReporter() self.reporter_test_revision = None build = yield self.insert_build_finished(SUCCESS) self.setUpLogging() # we don't expect any request build['complete'] = False yield self.sp._got_event(('builds', 20, 'new'), build) self.assertLogged("Unable to get the commit hash") build['complete'] = True yield self.sp._got_event(('builds', 20, 'finished'), build) build['results'] = FAILURE yield self.sp._got_event(('builds', 20, 'finished'), build)
def StashStatusPush(*args, **kwargs): warnings.warn( "The 'StashStatusPush' class was renamed to " "'BitbucketServer.BitbucketServerStatusPush'", DeprecationWarning) return BitbucketServerStatusPush(*args, **kwargs)
def StashStatusPush(*args, **kwargs): warn_deprecated( '0.9.8', "The 'StashStatusPush' class was renamed to " "'BitbucketServer.BitbucketServerStatusPush'") return BitbucketServerStatusPush(*args, **kwargs)