Пример #1
0
class TestRabbitMQPublisher(object):

    @mock.patch('qpaca.backend.rabbitmq.InfluxDB')
    @mock.patch('qpaca.backend.rabbitmq.RabbitMQPublisher._connect')
    def setup_class(self, mock1, mock2):
        self.publisher = RabbitMQPublisher()

    @mock.patch('qpaca.backend.rabbitmq.InfluxDB')
    @mock.patch('qpaca.backend.rabbitmq.RabbitMQPublisher._connect')
    def test_call_create_monitor(self, mocked_class, mocked_function):
        RabbitMQPublisher()
        assert mocked_class.called

    @mock.patch('qpaca.backend.rabbitmq.RabbitMQPublisher._connect')
    def test_call_connect(self, mocked_function):
        RabbitMQPublisher()
        assert mocked_function.called

    @mock.patch('qpaca.backend.rabbitmq.RabbitMQPublisher._create_exchange')
    def test_call_create_exchange(self, mocked_function):
        self.publisher.start()
        assert mocked_function.called

    @mock.patch('qpaca.backend.rabbitmq.RabbitMQPublisher._create_exchange')
    @mock.patch('qpaca.backend.rabbitmq.RabbitMQPublisher._create_producer')
    def test_call_create_producer(self, mocked_exchange, mocked_producer):
        self.publisher.start()
        assert self.publisher._create_producer.called

    def test_call_producer_publish(self):
        self.publisher.config = {'publish': {}}
        self.publisher._producer = mock.Mock()
        self.publisher.publish(None)
        assert self.publisher._producer.publish.called

    @mock.patch('kombu.Exchange')
    def test_create_exchange(self, mocked_exchange):
        self.publisher.config = {'exchange': {}}
        exchange = self.publisher._create_exchange()
        assert exchange is not None

    @mock.patch('kombu.Connection')
    def test_connect(self, mocked_connection):
        self.publisher.config = {'connection': {}}
        connection = self.publisher._connect()
        assert connection is not None
Пример #2
0
class TestRabbitMQPublisher(object):
    @mock.patch('qpaca.backend.rabbitmq.InfluxDB')
    @mock.patch('qpaca.backend.rabbitmq.RabbitMQPublisher._connect')
    def setup_class(self, mock1, mock2):
        self.publisher = RabbitMQPublisher()

    @mock.patch('qpaca.backend.rabbitmq.InfluxDB')
    @mock.patch('qpaca.backend.rabbitmq.RabbitMQPublisher._connect')
    def test_call_create_monitor(self, mocked_class, mocked_function):
        RabbitMQPublisher()
        assert mocked_class.called

    @mock.patch('qpaca.backend.rabbitmq.RabbitMQPublisher._connect')
    def test_call_connect(self, mocked_function):
        RabbitMQPublisher()
        assert mocked_function.called

    @mock.patch('qpaca.backend.rabbitmq.RabbitMQPublisher._create_exchange')
    def test_call_create_exchange(self, mocked_function):
        self.publisher.start()
        assert mocked_function.called

    @mock.patch('qpaca.backend.rabbitmq.RabbitMQPublisher._create_exchange')
    @mock.patch('qpaca.backend.rabbitmq.RabbitMQPublisher._create_producer')
    def test_call_create_producer(self, mocked_exchange, mocked_producer):
        self.publisher.start()
        assert self.publisher._create_producer.called

    def test_call_producer_publish(self):
        self.publisher.config = {'publish': {}}
        self.publisher._producer = mock.Mock()
        self.publisher.publish(None)
        assert self.publisher._producer.publish.called

    @mock.patch('kombu.Exchange')
    def test_create_exchange(self, mocked_exchange):
        self.publisher.config = {'exchange': {}}
        exchange = self.publisher._create_exchange()
        assert exchange is not None

    @mock.patch('kombu.Connection')
    def test_connect(self, mocked_connection):
        self.publisher.config = {'connection': {}}
        connection = self.publisher._connect()
        assert connection is not None
Пример #3
0
 def setup_class(self, mock1, mock2):
     self.publisher = RabbitMQPublisher()
Пример #4
0
"""
It is just a example using HTTP falcon library. You can create and expose
a Publisher API using RPC or anything else. You can also create your own
falcon Resource.

You can run it using:
    gunicorn -b 0.0.0.0:8000 example.publisher:app

If you want to start more publishers using different routing_keys,
you can just create different routes like:

    app.add_route('/publish/routing_key1', PublishResource(backend=RabbitMQPublisher(config1)))
    app.add_route('/publish/routing_key2', PublishResource(backend=RabbitMQPublisher(config2)))
""" # NOQA

import falcon

from qpaca.middleware import JSONTranslator, RequireJSON
from qpaca.resource import PublishResource
from qpaca.backend.rabbitmq import RabbitMQPublisher

app = falcon.API(middleware=[
    RequireJSON(),
    JSONTranslator(),
])

# Routes
app.add_route('/publish/', PublishResource(publisher=RabbitMQPublisher()))
Пример #5
0
 def setup_class(self, mock1, mock2):
     self.publisher = RabbitMQPublisher()
Пример #6
0
 def test_call_connect(self, mocked_function):
     RabbitMQPublisher()
     assert mocked_function.called
Пример #7
0
 def test_call_create_monitor(self, mocked_class, mocked_function):
     RabbitMQPublisher()
     assert mocked_class.called