From cf473286581aaf4ea97d01872112cf32b0a3d811 Mon Sep 17 00:00:00 2001
From: Piotr Maslanka <piotr.maslanka@henrietta.com.pl>
Date: Tue, 10 Jan 2017 04:33:01 +0100
Subject: [PATCH] tests

---
 coolamqp/clustering/single.py     |  6 ++++++
 tests/test_clustering/__init__.py |  8 ++++++++
 tests/test_clustering/test_a.py   | 34 +++++++++++++++++++++++++++++++
 3 files changed, 48 insertions(+)
 create mode 100644 tests/test_clustering/__init__.py
 create mode 100644 tests/test_clustering/test_a.py

diff --git a/coolamqp/clustering/single.py b/coolamqp/clustering/single.py
index a15b5c6..05ed0e9 100644
--- a/coolamqp/clustering/single.py
+++ b/coolamqp/clustering/single.py
@@ -19,6 +19,8 @@ class SingleNodeReconnector(object):
         self.attache_group = attache_group
         self.connection = None
 
+        self.terminating = False
+
     def is_connected(self):
         return self.connection is not None
 
@@ -32,11 +34,15 @@ class SingleNodeReconnector(object):
         self.connection.add_finalizer(self.on_fail)
 
     def on_fail(self):
+        if self.terminating:
+            return
+
         self.connection = None
         self.connect()
 
     def shutdown(self):
         """Close this connection"""
+        self.terminating = True
         if self.connection is not None:
             self.connection.send(None)
             self.connection = None
diff --git a/tests/test_clustering/__init__.py b/tests/test_clustering/__init__.py
new file mode 100644
index 0000000..1c762b1
--- /dev/null
+++ b/tests/test_clustering/__init__.py
@@ -0,0 +1,8 @@
+# coding=UTF-8
+from __future__ import print_function, absolute_import, division
+import six
+import logging
+
+logger = logging.getLogger(__name__)
+
+
diff --git a/tests/test_clustering/test_a.py b/tests/test_clustering/test_a.py
new file mode 100644
index 0000000..bd1007f
--- /dev/null
+++ b/tests/test_clustering/test_a.py
@@ -0,0 +1,34 @@
+# coding=UTF-8
+"""
+Test things
+"""
+from __future__ import print_function, absolute_import, division
+import six
+import unittest
+import time, logging, threading
+from coolamqp.objects import Message, MessageProperties, NodeDefinition, Queue
+from coolamqp.clustering import Cluster
+
+import time
+
+
+NODE = NodeDefinition('127.0.0.1', 'user', 'user', heartbeat=20)
+logging.basicConfig(level=logging.DEBUG)
+
+
+class TestA(unittest.TestCase):
+    def test_link(self):
+        """Connect and disconnect"""
+        c = Cluster([NODE])
+        c.start()
+        c.shutdown()
+
+    def test_consume(self):
+        c = Cluster([NODE])
+        c.start()
+        con, fut = c.consume(Queue(u'hello', exclusive=True))
+#        fut.result()
+        con.cancel()
+        c.shutdown()
+
+
-- 
GitLab