diff options
author | Mario Rodriguez Molins <marrodmo@gmail.com> | 2019-11-22 19:19:03 +0100 |
---|---|---|
committer | Asif Saif Uddin <auvipy@gmail.com> | 2019-11-23 00:19:03 +0600 |
commit | 81101877a09e8f4442555c6c74b4836f113e4f51 (patch) | |
tree | bb4722de8e887c5633afda75d5976a26361a6b1d | |
parent | b8f933d3377454a9bb8fba2e295fc5343de38942 (diff) | |
download | kombu-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.py | 2 | ||||
-rw-r--r-- | t/unit/test_connection.py | 31 | ||||
-rw-r--r-- | t/unit/test_simple.py | 55 |
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 |