Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
 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 = []
Ejemplo n.º 3
0
 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)
Ejemplo n.º 4
0
 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)
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
    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)
Ejemplo n.º 7
0
    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)