示例#1
0
 def test_delete_errbacks_when_any_errback(self):
     cache = MultiCache([
         pretend.stub(delete=lambda key: fail(ValueError()))
     ])
     d = cache.delete("foo")
     exc = self.failureResultOf(d)
     self.assertIsInstance(exc.value.subFailure.value, ValueError)
示例#2
0
def makeService(options):
    from twisted.internet import task as cooperator
    from twisted.internet import reactor
    from twisted.python import log

    with open(options['config']) as f:
        data = f.read()
        config = yaml.safe_load(data)
        key_maker = FormattingKeyMaker(data["on_update"])

    cache_backend = MultiCache([
        MemcachedCache(TCP4ClientEndpoint(reactor, cache, DEFAULT_PORT))
        for cache in config['caches']
    ])

    driver = Driver(key_maker, cache_backend, log)

    connection = BinLogStreamReader(connection_settings=config['database'])

    listener = MySQLDatabaseListener(reactor, connection, driver, log)

    return DatabaseListenerService(cooperator, listener, log)
示例#3
0
 def test_delete_returns_false_when_all_return_false(self):
     c1 = InMemoryCache({})
     c2 = InMemoryCache({})
     cache = MultiCache([c1, c2])
     d = cache.delete("foo")
     self.assertFalse(self.successResultOf(d))
示例#4
0
 def test_delete_returns_true_when_any_return_true(self):
     c1 = InMemoryCache({})
     c2 = InMemoryCache({"foo": "bar"})
     cache = MultiCache([c1, c2])
     d = cache.delete("foo")
     self.assertTrue(self.successResultOf(d))
示例#5
0
 def test_delete_errbacks_when_any_errback(self):
     cache = MultiCache(
         [pretend.stub(delete=lambda key: fail(ValueError()))])
     d = cache.delete("foo")
     exc = self.failureResultOf(d)
     self.assertIsInstance(exc.value.subFailure.value, ValueError)
示例#6
0
 def test_delete_returns_false_when_all_return_false(self):
     c1 = InMemoryCache({})
     c2 = InMemoryCache({})
     cache = MultiCache([c1, c2])
     d = cache.delete("foo")
     self.assertFalse(self.successResultOf(d))
示例#7
0
 def test_delete_returns_true_when_any_return_true(self):
     c1 = InMemoryCache({})
     c2 = InMemoryCache({"foo": "bar"})
     cache = MultiCache([c1, c2])
     d = cache.delete("foo")
     self.assertTrue(self.successResultOf(d))