Beispiel #1
0
 def test_ping_returns_false_if_unavailable_in_readonly_mode(self):
     request = DummyRequest()
     request.headers['Authorization'] = 'Basic bWF0OjI='
     request.registry.settings = {'readonly': 'true'}
     ping = heartbeat(self.storage)
     with mock.patch.object(self.storage, 'get_all',
                            side_effect=exceptions.BackendError("Boom!")):
         self.assertFalse(ping(request))
Beispiel #2
0
 def test_ping_returns_true_when_working(self):
     request = DummyRequest()
     request.headers['Authorization'] = 'Basic bWF0OjI='
     ping = heartbeat(self.storage)
     with mock.patch('cliquet.storage.random.random', return_value=0.7):
         self.assertTrue(ping(request))
     with mock.patch('cliquet.storage.random.random', return_value=0.5):
         self.assertTrue(ping(request))
Beispiel #3
0
    def test_ping_logs_error_if_unavailable(self):
        request = DummyRequest()
        self.client_error_patcher.start()
        ping = heartbeat(self.storage)

        with mock.patch('cliquet.storage.logger.exception') as exc_handler:
            self.assertFalse(ping(request))

        self.assertTrue(exc_handler.called)
Beispiel #4
0
    def test_ping_returns_false_if_unavailable(self):
        request = DummyRequest()
        request.headers['Authorization'] = self.storage_kw['auth']
        request.registry.settings = {'readonly': 'false'}
        ping = heartbeat(self.storage)

        with mock.patch('cliquet.storage.random.random', return_value=0.7):
            ping(request)

        self.client_error_patcher.start()
        with mock.patch('cliquet.storage.random.random', return_value=0.7):
            self.assertFalse(ping(request))
        with mock.patch('cliquet.storage.random.random', return_value=0.5):
            self.assertFalse(ping(request))
Beispiel #5
0
def setup_storage(config):
    settings = config.get_settings()

    id_generator = config.maybe_dotted(settings['id_generator'])
    config.registry.id_generator = id_generator()

    storage_mod = settings['storage_backend']
    if not storage_mod:
        return

    storage_mod = config.maybe_dotted(storage_mod)
    backend = storage_mod.load_from_config(config)
    if not isinstance(backend, storage.StorageBase):
        raise ConfigurationError("Invalid storage backend: %s" % backend)
    config.registry.storage = backend

    heartbeat = storage.heartbeat(backend)
    config.registry.heartbeats['storage'] = heartbeat
Beispiel #6
0
def setup_storage(config):
    settings = config.get_settings()

    id_generator = config.maybe_dotted(settings['id_generator'])
    config.registry.id_generator = id_generator()

    storage_mod = settings['storage_backend']
    if not storage_mod:
        return

    storage_mod = config.maybe_dotted(storage_mod)
    backend = storage_mod.load_from_config(config)
    if not isinstance(backend, storage.StorageBase):
        raise ConfigurationError("Invalid storage backend: %s" % backend)
    config.registry.storage = backend

    heartbeat = storage.heartbeat(backend)
    config.registry.heartbeats['storage'] = heartbeat
Beispiel #7
0
 def test_ping_returns_true_when_working_in_readonly_mode(self):
     request = DummyRequest()
     request.headers['Authorization'] = 'Basic bWF0OjI='
     request.registry.settings = {'readonly': 'true'}
     ping = heartbeat(self.storage)
     self.assertTrue(ping(request))