def test_reconfig_with_consumers(self): backend = fakestats.FakeStatsStorageService(name='One') backend.captures = [capture.CaptureProperty('test_builder', 'test')] new_storage_backends = [backend] yield self.stats_service.reconfigService(new_storage_backends) yield self.stats_service.reconfigService(new_storage_backends) self.assertEqual(len(self.master.mq.qrefs), 1)
def __init__(self, stats=None, name='FakeStatsStorageService'): self.stored_data = [] if not stats: self.stats = [capture.CaptureProperty("TestBuilder", 'test')] else: self.stats = stats self.name = name self.captures = []
def test_property_capturing_error(self): self.setupFakeStorage([capture.CaptureProperty('builder1', 'test')]) self.setupBuild() self.master.db.builds.setBuildProperty(1, 'test_name', 'test_value', 'test_source') self.master.db.builds.finishBuild(buildid=1, results=0) build = yield self.master.db.builds.getBuild(buildid=1) cap = self.fake_storage_service.captures[0] self.assertFailure(cap.consume(self.routingKey, self.get_dict(build)), CaptureCallbackError)
def test_influx_storage_service_fake_install(self): # use a fake InfluxDBClient to test InfluxStorageService in systems which # don't have influxdb installed. Primarily useful for test coverage. self.patch(storage_backends.influxdb_client, 'InfluxDBClient', fakestats.FakeInfluxDBClient) captures = [capture.CaptureProperty('test_builder', 'test')] new_storage_backends = [InfluxStorageService( "fake_url", "fake_port", "fake_user", "fake_password", "fake_db", captures )] self.stats_service.reconfigService(new_storage_backends)
def test_property_capturing_regex(self): self.setupFakeStorage([capture.CaptureProperty('builder1', 'test_n.*', regex=True)]) self.setupBuild() self.master.db.builds.setBuildProperty(1, 'test_name', 'test_value', 'test_source') yield self.end_build_call_consumers() self.assertEqual([( {'name': 'test_name', 'value': 'test_value'}, 'builder1-test_name', {'build_number': '1', 'builder_name': 'builder1'} )], self.fake_storage_service.stored_data)
def test_property_capturing_alt_callback(self): def cb(*args, **kwargs): return 'test_value' self.setupFakeStorage([capture.CaptureProperty('builder1', 'test_name', cb)]) self.setupBuild() self.master.db.builds.setBuildProperty(1, 'test_name', 'test_value', 'test_source') yield self.end_build_call_consumers() self.assertEqual([( {'name': 'test_name', 'value': 'test_value'}, 'builder1-test_name', {'build_number': '1', 'builder_name': 'builder1'} )], self.fake_storage_service.stored_data)
def test_influxdb_not_installed(self): captures = [capture.CaptureProperty('test_builder', 'test')] try: # Try to import import influxdb # pylint: disable=import-outside-toplevel # consume it somehow to please pylint [influxdb] except ImportError: with self.assertRaises(config.ConfigErrors): InfluxStorageService("fake_url", "fake_port", "fake_user", "fake_password", "fake_db", captures) # if instead influxdb is installed, then initialize it - no errors # should be realized else: new_storage_backends = [ InfluxStorageService("fake_url", "fake_port", "fake_user", "fake_password", "fake_db", captures) ] yield self.stats_service.reconfigService(new_storage_backends)