Esempio n. 1
0
    def test_exchange_publish(self):
        exchange_name = factory.getRandomString()
        message_content = factory.getRandomString()
        exchange = RabbitExchange(RabbitSession(), exchange_name)
        self.addCleanup(exchange._session.disconnect)

        rabbitbase = RabbitBase(RabbitSession(), exchange_name)
        self.addCleanup(rabbitbase._session.disconnect)
        channel = rabbitbase.channel
        queue_name = channel.queue_declare(auto_delete=True)[0]
        channel.queue_bind(exchange=exchange_name, queue=queue_name)
        exchange.publish(message_content)
        message = self.basic_get(channel, queue_name, timeout=2)
        self.assertEqual(message_content, message.body)
Esempio n. 2
0
    def test_rabbit_queue_binds_queue(self):
        exchange_name = factory.getRandomString()
        message_content = factory.getRandomString()
        queue = RabbitQueue(RabbitSession(), exchange_name)
        self.addCleanup(queue._session.disconnect)

        # Publish to queue.name.
        base = RabbitBase(RabbitSession(), exchange_name)
        self.addCleanup(base._session.disconnect)
        channel = base.channel
        msg = amqp.Message(message_content)
        channel.basic_publish(
            exchange=exchange_name, routing_key='', msg=msg)
        message = channel.basic_get(queue.name)
        self.assertEqual(message_content, message.body)
Esempio n. 3
0
 def test_connection_raises_NoRabbit_if_cannot_connect(self):
     # Attempt to connect to a RabbitMQ on the local "discard"
     # service.  The connection will be refused.
     self.patch(settings, 'RABBITMQ_HOST', 'localhost:9')
     session = RabbitSession()
     with ExpectedException(NoRabbit):
         session.connection
Esempio n. 4
0
 def test_base_channel_creates_exchange(self):
     exchange_name = factory.getRandomString()
     rabbitbase = RabbitBase(RabbitSession(), exchange_name)
     self.addCleanup(rabbitbase._session.disconnect)
     rabbitbase.channel
     self.assertIn(
         exchange_name,
         run_rabbit_command(self.rabbit, 'list_exchanges'))
Esempio n. 5
0
    def test_connection_propagates_exceptions(self):

        def fail(*args, **kwargs):
            raise socket.error("Connection not refused, but failed anyway.")

        self.patch(amqp, 'Connection', fail)
        session = RabbitSession()
        with ExpectedException(socket.error):
            session.connection
Esempio n. 6
0
 def test_connection_gets_connection(self):
     session = RabbitSession()
     self.addCleanup(session.disconnect)
     # Referencing the connection property causes a connection to be
     # created.
     connection = session.connection
     self.assertIsNotNone(session._connection)
     # The same connection is returned every time.
     self.assertIs(connection, session.connection)
Esempio n. 7
0
 def test_base_channel(self):
     rabbitbase = RabbitBase(RabbitSession(), factory.getRandomString())
     self.addCleanup(rabbitbase._session.disconnect)
     # Referencing the channel property causes an open channel to be
     # created.
     channel = rabbitbase.channel
     self.assertTrue(channel.is_open)
     self.assertIsNotNone(rabbitbase._session._connection)
     # The same channel is returned every time.
     self.assertIs(channel, rabbitbase.channel)
Esempio n. 8
0
 def test_disconnect(self):
     session = RabbitSession()
     session.disconnect()
     self.assertIsNone(session._connection)
Esempio n. 9
0
 def test_base_has_exchange_name(self):
     exchange_name = factory.getRandomString()
     rabbitbase = RabbitBase(RabbitSession(), exchange_name)
     self.assertEqual(exchange_name, rabbitbase.exchange_name)
Esempio n. 10
0
 def test_rabbitbase_contains_session(self):
     exchange_name = factory.getRandomString()
     rabbitbase = RabbitBase(RabbitSession(), exchange_name)
     self.assertIsInstance(rabbitbase._session, RabbitSession)