From 980e464a5fd31f9b3d0a3f704f813e9aa3454580 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Ma=C5=9Blanka?= <piotr.maslanka@henrietta.com.pl> Date: Thu, 22 Dec 2016 13:59:06 +0100 Subject: [PATCH] masz --- coolamqp/orders.py | 13 ++++++------- tests/test_basics.py | 13 +++++++------ tests/test_failures.py | 24 ++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 13 deletions(-) create mode 100644 tests/test_failures.py diff --git a/coolamqp/orders.py b/coolamqp/orders.py index abbee28..e652534 100644 --- a/coolamqp/orders.py +++ b/coolamqp/orders.py @@ -106,17 +106,16 @@ class CancelQueue(Order): self.queue = queue -class AcknowledgeMessage(Order): - """ACK a message""" + +class _AcksAndNacks(Order): + """related to acking and nacking""" def __init__(self, connect_id, delivery_tag, on_completed): Order.__init__(self, on_completed=on_completed) self.connect_id = connect_id self.delivery_tag = delivery_tag +class AcknowledgeMessage(_AcksAndNacks): + """ACK a message""" -class NAcknowledgeMessage(Order): +class NAcknowledgeMessage(_AcksAndNacks): """NACK a message""" - def __init__(self, connect_id, delivery_tag, on_completed): - Order.__init__(self, on_completed=on_completed) - self.connect_id = connect_id - self.delivery_tag = delivery_tag diff --git a/tests/test_basics.py b/tests/test_basics.py index d67ffec..623ed3b 100644 --- a/tests/test_basics.py +++ b/tests/test_basics.py @@ -1,6 +1,7 @@ #coding=UTF-8 from __future__ import absolute_import, division, print_function import unittest +import six from coolamqp import Cluster, ClusterNode, Queue, MessageReceived, ConnectionUp, \ ConnectionDown, ConsumerCancelled, Message @@ -19,7 +20,7 @@ class TestBasics(unittest.TestCase): myq = Queue('myqueue', exclusive=True) self.amqp.consume(myq) - self.amqp.send(Message(b'what the fuck'), '', routing_key='myqueue') + self.amqp.send(Message('what the fuck'), '', routing_key='myqueue') p = self.amqp.drain(wait=4) self.assertIsInstance(p, MessageReceived) @@ -34,16 +35,16 @@ class TestBasics(unittest.TestCase): myq = Queue('myqueue', exclusive=True) self.amqp.consume(myq) - self.amqp.send(Message(b'what the fuck'), '', routing_key='myqueue') + self.amqp.send(Message('what the fuck'), '', routing_key='myqueue') p = self.amqp.drain(wait=4) self.assertIsInstance(p, MessageReceived) - self.assertEquals(p.message.body, b'what the fuck') + self.assertEquals(p.message.body, 'what the fuck') p.message.nack() p = self.amqp.drain(wait=4) self.assertIsInstance(p, MessageReceived) - self.assertEquals(p.message.body, b'what the fuck') + self.assertEquals(six.binary_type(p.message.body), 'what the fuck') self.amqp.delete_queue(myq) @@ -51,11 +52,11 @@ class TestBasics(unittest.TestCase): myq = Queue('myqueue', exclusive=True) self.amqp.consume(myq) - self.amqp.send(Message(b'what the fuck'), '', routing_key='myqueue') + self.amqp.send(Message('what the fuck'), '', routing_key='myqueue') p = self.amqp.drain(wait=10) self.assertIsInstance(p, MessageReceived) - self.assertEquals(p.message.body, b'what the fuck') + self.assertEquals(p.message.body, 'what the fuck') def test_consumer_cancelled_on_queue_deletion(self): myq = Queue('myqueue', exclusive=True) diff --git a/tests/test_failures.py b/tests/test_failures.py new file mode 100644 index 0000000..2347f66 --- /dev/null +++ b/tests/test_failures.py @@ -0,0 +1,24 @@ +#coding=UTF-8 +from __future__ import absolute_import, division, print_function + +import unittest +import os +from coolamqp import Cluster, ClusterNode, Queue, MessageReceived, ConnectionUp, \ + ConnectionDown, ConsumerCancelled, Message + + +class TestFailures(unittest.TestCase): + + def setUp(self): + self.amqp = Cluster([ClusterNode('127.0.0.1', 'guest', 'guest')]) + self.amqp.start() + self.assertIsInstance(self.amqp.drain(1), ConnectionUp) + + def tearDown(self): + self.amqp.shutdown() + + def test_connection_down_and_up(self): + """are messages generated at all? does it reconnect?""" + os.system("sudo service rabbitmq-server restart") + self.assertIsInstance(self.amqp.drain(wait=4), ConnectionDown) + self.assertIsInstance(self.amqp.drain(wait=6), ConnectionUp) -- GitLab