Ejemplo n.º 1
0
class TestPublishResource(object):
    def setup_class(self):
        self.resource = PublishResource(publisher=mock.Mock())

    def test_on_post_req_key_error(self):
        with pytest.raises(falcon.errors.HTTPBadRequest):
            self.resource.on_post(req=mock.Mock(
                content_length=1, context={'mock': 'mock'}), resp=mock.Mock())

    def test_on_post_success(self):
        response = mock.Mock()
        self.resource.on_post(req=mock.Mock(
            content_length=1, context={'payload': 'mock'}), resp=response)

        assert response.status == '201 Created'
        assert "/result/" in response.location
Ejemplo n.º 2
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()))
Ejemplo n.º 3
0
 def setup_class(self):
     self.resource = PublishResource(publisher=mock.Mock())