Beispiel #1
0
 def configure(self):
     self.consumer = MagicMock()
     self.ctx.Message.return_value = self.message = NonCallableMagicMock()
     self.agent = ConsumerAgent(self.consumer, sentinel.broker,
                                sentinel.bindings)
     self.agent.acknowledge = MagicMock()
     self.agent._process = MagicMock()
Beispiel #2
0
 def configure(self):
     self.binding = {
         'queue': sentinel.queue,
         'exchange': sentinel.exchange,
         'routing_key': sentinel.routing_key,
     }
     self.agent = ConsumerAgent(sentinel.consumer, sentinel.broker,
                                sentinel.bindings)
     self.agent.declare_exchange = MagicMock()
Beispiel #3
0
 def configure(self):
     self.kwargs = {
         'queue': sentinel.queue,
         'exchange': sentinel.exchange,
         'routing_key': sentinel.routing_key,
         'method_frame': sentinel.method_frame
     }
     self.agent = ConsumerAgent(sentinel.consumer, sentinel.broker,
                                sentinel.bindings)
     self.agent.channel = MagicMock()
Beispiel #4
0
 def configure(self):
     self.consumer = MagicMock()
     self.consumer.process.side_effect = self.exc
     self.message = NonCallableMagicMock()
     self.agent = ConsumerAgent(self.consumer, sentinel.broker,
                                sentinel.bindings)
     self.agent.reject = MagicMock()
     self.agent.stop = MagicMock()
     self.agent._record_exception = MagicMock()
     self.agent.processing_failure = MagicMock()
     self.agent.reconnect = MagicMock()
Beispiel #5
0
 def configure(self):
     self.bindings = (
         {
             'queue': sentinel.queue1,
             'exchange': sentinel.exchange1,
             'routing_key': sentinel.routing_key1,
         },
         {
             'queue': sentinel.queue2,
             'exchange': sentinel.exchange2,
             'routing_key': sentinel.routing_key2,
         },
     )
     self.agent = ConsumerAgent(sentinel.consumer, sentinel.broker,
                                self.bindings)
     self.agent.create_binding = MagicMock()
Beispiel #6
0
 def configure(self):
     self.consumer = MagicMock()
     self.message = NonCallableMagicMock()
     self.agent = ConsumerAgent(self.consumer, sentinel.broker,
                                sentinel.bindings)
Beispiel #7
0
 def configure(self):
     self.broker = MagicMock()
     self.broker.connect.return_value = sentinel.connection
     self.agent = ConsumerAgent(sentinel.consumer, self.broker,
                                sentinel.bindings)
Beispiel #8
0
 def configure(self):
     self.agent = ConsumerAgent(sentinel.consumer, sentinel.broker,
                                sentinel.bindings)
     self.agent.add_on_cancel_callback = MagicMock()
     self.agent.channel = MagicMock()
     self.agent.channel.basic_consume.return_value = sentinel.consumer_tag
Beispiel #9
0
 def execute(self):
     self.agent = ConsumerAgent(sentinel.consumer, sentinel.broker,
                                sentinel.bindings, False, sentinel.config)
Beispiel #10
0
 def configure(self):
     self.agent = ConsumerAgent(sentinel.consumer, sentinel.broker,
                                sentinel.bindings)
     self.agent.add_on_connection_close_callback = MagicMock()
     self.agent.open_channel = MagicMock()
Beispiel #11
0
 def should_have_default_config(self):
     agent = ConsumerAgent(sentinel.consumer, sentinel.broker,
                           sentinel.bindings)
     self.assertEqual(agent.config, {})
Beispiel #12
0
 def configure(self):
     self.options = {'durable': True, 'arguments': {'x-ha-policy': 'all'}}
     config = {'queues': {sentinel.queue: self.options}}
     self.agent = ConsumerAgent(sentinel.consumer, sentinel.broker,
                                sentinel.bindings, False, config)
     self.agent.channel = MagicMock()
Beispiel #13
0
 def configure(self):
     self.options = {'exchange_type': 'topic', 'durable': True}
     config = {'exchanges': {sentinel.exchange: self.options}}
     self.agent = ConsumerAgent(sentinel.consumer, sentinel.broker,
                                sentinel.bindings, False, config)
     self.agent.channel = MagicMock()
Beispiel #14
0
 def configure(self):
     self.agent = ConsumerAgent(sentinel.consumer, sentinel.broker,
                                sentinel.bindings)
     self.agent.add_on_channel_close_callback = MagicMock()
     self.agent.create_bindings = MagicMock()
Beispiel #15
0
 def configure(self):
     self.message = MagicMock()
     self.message.delivery_tag = sentinel.delivery_tag
     self.agent = ConsumerAgent(sentinel.consumer, sentinel.broker,
                                sentinel.bindings)
     self.agent.channel = MagicMock()
Beispiel #16
0
 def configure(self):
     self.agent = ConsumerAgent(sentinel.consumer, sentinel.broker,
                                sentinel.bindings)
     self.agent._consumer_tags = {'your.queue': sentinel.consumer_tag}
Beispiel #17
0
 def configure(self):
     self.agent = ConsumerAgent(sentinel.consumer, sentinel.broker,
                                sentinel.bindings)
     self.agent.connect = MagicMock()
     self.agent.connection = MagicMock()
Beispiel #18
0
 def configure(self):
     self.agent = ConsumerAgent(sentinel.consumer, sentinel.broker,
                                sentinel.bindings)
     self.agent.is_consuming_from = MagicMock(return_value=True)
     self.agent.start_consuming = MagicMock()
Beispiel #19
0
def consumer_agent_from_config(config,
                               name,
                               broker='default',
                               section='rabbitmq'):
    """
    Create a :class:`pikachewie.agent.ConsumerAgent` from the given `config`.

    The `config` dict should have a structure similar to the following
    example::

        {
            'rabbitmq': {
                'brokers': {
                    'default': {
                        'nodes': {
                            'rabbit1': {
                                'host': 'rabbit1.example.com',
                                'port': 5672,
                            },
                            'rabbit2': {
                                'host': 'rabbit2.example.com',
                                'port': 5672,
                            },
                        },
                        'virtual_host': '/integration',
                        'heartbeat_interval': 60,
                    },
                },
                'consumers': {
                    'message_logger': {
                        'class': 'my.consumers.LoggingConsumer',
                        'arguments': {
                            'level': 'debug',
                        },
                        'bindings': [
                            {
                                'exchange': 'message',
                                'queue': 'text',
                                'routing_key': 'example.text.#',
                            },
                        ],
                    },
                },
                'exchanges': {
                    'message': {
                        'exchange_type': 'topic',
                        'durable': True,
                        'auto_delete': False,
                    },
                },
                'queues': {
                    'text': {
                        'durable': True,
                        'exclusive': False,
                        'arguments': {
                            'x-dead-letter-exchange': 'dead.letters',
                            'x-dead-letter-routing-key': 'omg.such.rejection',
                            'x-ha-policy': 'all',
                            'x-message-ttl': 1800000
                        },
                    },
                },
            },
        }

    """
    consumer_config = config[section]['consumers'][name]
    consumer = consumer_from_config(consumer_config)
    broker = broker_from_config(config[section]['brokers'][broker])
    no_ack = consumer_config.get('no_ack', False)

    return ConsumerAgent(consumer, broker, consumer_config['bindings'], no_ack,
                         config['rabbitmq'])
Beispiel #20
0
 def execute(self):
     self.agent = ConsumerAgent(self.consumer, self.broker, self.bindings)