summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMario Rodriguez Molins <marrodmo@gmail.com>2019-11-22 19:19:03 +0100
committerAsif Saif Uddin <auvipy@gmail.com>2019-11-23 00:19:03 +0600
commit81101877a09e8f4442555c6c74b4836f113e4f51 (patch)
treebb4722de8e887c5633afda75d5976a26361a6b1d
parentb8f933d3377454a9bb8fba2e295fc5343de38942 (diff)
downloadkombu-81101877a09e8f4442555c6c74b4836f113e4f51.tar.gz
Add missing parameter queue_args in kombu.connection.SimpleBuffer (#1128)
* Add missing parameter queue_args in kombu.connection.SimpleBuffer `queue_args` parameter was introduced in `kombu.simple.SimpleQueue` class and at the same time in `kombu.connection.SimpleQueue` method. However, `kombu.connection.SimpleBuffer` was not updated in the same way. As `kombu.connection.SimpleBuffer` is using positional arguments to create a `kombu.simple.SimpleBuffer` object, `exchange_opts` value in that instance would be None and `queue_args` is going to bet set with the expected `exchange_opts` value. * Add tests for SimpleBuffer and SimpleQueue - Add tests for SimpleBuffer/SimpleQueue methods in kombu.simple module - Add tests for SimpleQueue and SimpleBuffer tasks in kombu.connection
-rw-r--r--kombu/connection.py2
-rw-r--r--t/unit/test_connection.py31
-rw-r--r--t/unit/test_simple.py55
3 files changed, 86 insertions, 2 deletions
diff --git a/kombu/connection.py b/kombu/connection.py
index a1f3834f..bbd7281f 100644
--- a/kombu/connection.py
+++ b/kombu/connection.py
@@ -771,6 +771,7 @@ class Connection(object):
exchange_opts, **kwargs)
def SimpleBuffer(self, name, no_ack=None, queue_opts=None,
+ queue_args=None,
exchange_opts=None, channel=None, **kwargs):
"""Simple ephemeral queue API.
@@ -785,6 +786,7 @@ class Connection(object):
"""
from .simple import SimpleBuffer
return SimpleBuffer(channel or self, name, no_ack, queue_opts,
+ queue_args,
exchange_opts, **kwargs)
def _establish_connection(self):
diff --git a/t/unit/test_connection.py b/t/unit/test_connection.py
index 2b8f5bb1..409b2b12 100644
--- a/t/unit/test_connection.py
+++ b/t/unit/test_connection.py
@@ -495,6 +495,37 @@ class test_Connection:
q2 = conn.SimpleBuffer('foo', channel=chan)
assert q2.channel is chan
+ def test_SimpleQueue_with_parameters(self):
+ conn = self.conn
+ q = conn.SimpleQueue(
+ 'foo', True, {'durable': True}, {'x-queue-mode': 'lazy'},
+ {'durable': True, 'type': 'fanout', 'delivery_mode': 'persistent'})
+
+ assert q.queue.exchange.type == 'fanout'
+ assert q.queue.exchange.durable
+ assert not q.queue.exchange.auto_delete
+ delivery_mode_code = q.queue.exchange.PERSISTENT_DELIVERY_MODE
+ assert q.queue.exchange.delivery_mode == delivery_mode_code
+
+ assert q.queue.queue_arguments['x-queue-mode'] == 'lazy'
+
+ assert q.queue.durable
+ assert not q.queue.auto_delete
+
+ def test_SimpleBuffer_with_parameters(self):
+ conn = self.conn
+ q = conn.SimpleBuffer(
+ 'foo', True, {'durable': True}, {'x-queue-mode': 'lazy'},
+ {'durable': True, 'type': 'fanout', 'delivery_mode': 'persistent'})
+ assert q.queue.exchange.type == 'fanout'
+ assert q.queue.exchange.durable
+ assert q.queue.exchange.auto_delete
+ delivery_mode_code = q.queue.exchange.PERSISTENT_DELIVERY_MODE
+ assert q.queue.exchange.delivery_mode == delivery_mode_code
+ assert q.queue.queue_arguments['x-queue-mode'] == 'lazy'
+ assert q.queue.durable
+ assert q.queue.auto_delete
+
def test_Producer(self):
conn = self.conn
assert isinstance(conn.Producer(), Producer)
diff --git a/t/unit/test_simple.py b/t/unit/test_simple.py
index 118e2b42..3e92566c 100644
--- a/t/unit/test_simple.py
+++ b/t/unit/test_simple.py
@@ -108,10 +108,32 @@ class test_SimpleQueue(SimpleBase):
assert not q.no_ack
def test_queue_args(self):
- q = self.connection.SimpleQueue('test_queue_args',
- queue_args={'x-queue-mode': 'lazy'})
+ q = self.Queue('test_queue_args', queue_args={'x-queue-mode': 'lazy'})
+ assert len(q.queue.queue_arguments) == 1
assert q.queue.queue_arguments['x-queue-mode'] == 'lazy'
+ q = self.Queue('test_queue_args')
+ assert q.queue.queue_arguments == {}
+
+ def test_exchange_opts(self):
+ q = self.Queue('test_exchange_opts_a',
+ exchange_opts={'durable': True, 'type': 'fanout',
+ 'delivery_mode': 'persistent'})
+ assert q.queue.exchange.type == 'fanout'
+ assert q.queue.exchange.durable
+ assert not q.queue.exchange.auto_delete
+ delivery_mode_code = q.queue.exchange.PERSISTENT_DELIVERY_MODE
+ assert q.queue.exchange.delivery_mode == delivery_mode_code
+
+ q = self.Queue('test_exchange_opts_b')
+ assert q.queue.exchange.type == 'direct'
+ assert q.queue.exchange.durable
+ assert not q.queue.exchange.auto_delete
+
+ def test_queue_opts(self):
+ q = self.Queue('test_queue_opts', queue_opts={'auto_delete': False})
+ assert not q.queue.auto_delete
+
class test_SimpleBuffer(SimpleBase):
@@ -121,3 +143,32 @@ class test_SimpleBuffer(SimpleBase):
def test_is_no_ack(self):
q = self.Queue('test_is_no_ack')
assert q.no_ack
+
+ def test_queue_args(self):
+ q = self.Queue('test_queue_args', queue_args={'x-queue-mode': 'lazy'})
+ assert len(q.queue.queue_arguments) == 1
+ assert q.queue.queue_arguments['x-queue-mode'] == 'lazy'
+
+ def test_exchange_opts(self):
+ q = self.Queue('test_exchange_opts_a',
+ exchange_opts={'durable': True, 'auto_delete': True,
+ 'delivery_mode': 'persistent'})
+ assert q.queue.exchange.type == 'direct'
+ assert q.queue.exchange.durable
+ assert q.queue.exchange.auto_delete
+ delivery_mode_code = q.queue.exchange.PERSISTENT_DELIVERY_MODE
+ assert q.queue.exchange.delivery_mode == delivery_mode_code
+
+ q = self.Queue('test_exchange_opts_b')
+ assert q.queue.exchange.type == 'direct'
+ assert not q.queue.exchange.durable
+ assert q.queue.exchange.auto_delete
+
+ def test_queue_opts(self):
+ q = self.Queue('test_queue_opts', queue_opts={'auto_delete': False})
+ assert not q.queue.durable
+ assert not q.queue.auto_delete
+
+ q = self.Queue('test_queue_opts')
+ assert not q.queue.durable
+ assert q.queue.auto_delete