def _declare_queue(self, name, retry=False, retry_policy={}): options = self.app.queues[name] queue = messaging.entry_to_queue(name, **options)(self.channel) if retry: self.connection.ensure(queue, queue.declare, **retry_policy)() else: queue.declare() return queue
def test_entry_to_queue(self): defs = {"binding_key": "foo.#", "exchange": "fooex", "exchange_type": "topic", "durable": True, "auto_delete": False} q1 = compat.entry_to_queue("foo", **dict(defs)) self.assertEqual(q1.name, "foo") self.assertEqual(q1.routing_key, "foo.#") self.assertEqual(q1.exchange.name, "fooex") self.assertEqual(q1.exchange.type, "topic") self.assertTrue(q1.durable) self.assertTrue(q1.exchange.durable) self.assertFalse(q1.auto_delete) self.assertFalse(q1.exchange.auto_delete) q2 = compat.entry_to_queue("foo", **dict(defs, exchange_durable=False)) self.assertTrue(q2.durable) self.assertFalse(q2.exchange.durable) q3 = compat.entry_to_queue("foo", **dict(defs, exchange_auto_delete=True)) self.assertFalse(q3.auto_delete) self.assertTrue(q3.exchange.auto_delete) q4 = compat.entry_to_queue("foo", **dict(defs, queue_durable=False)) self.assertFalse(q4.durable) self.assertTrue(q4.exchange.durable) q5 = compat.entry_to_queue("foo", **dict(defs, queue_auto_delete=True)) self.assertTrue(q5.auto_delete) self.assertFalse(q5.exchange.auto_delete) self.assertEqual(compat.entry_to_queue("foo", **dict(defs)), compat.entry_to_queue("foo", **dict(defs)))
def _get_queue(self, name): if name not in self._queue_cache: options = self.app.amqp.queues[name] self._queue_cache[name] = messaging.entry_to_queue(name, **options) return self._queue_cache[name]