From b2fecb5d2bb8cbca23eba6a8016282a4f492d1b9 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:35:00 +0100
Subject: [PATCH] +tests

---
 Vagrantfile           |  6 +++---
 setup.py              |  4 ++--
 tests/README.md       |  3 +++
 tests/__init__.py     |  8 --------
 tests/test_cluster.py | 41 ++++++++++++++++++++++++++++++++++++-----
 5 files changed, 44 insertions(+), 18 deletions(-)
 create mode 100644 tests/README.md

diff --git a/Vagrantfile b/Vagrantfile
index b7cb361..ec0bd05 100644
--- a/Vagrantfile
+++ b/Vagrantfile
@@ -13,9 +13,9 @@ Vagrant.configure("2") do |config|
 
      /usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management
      service rabbitmq-server restart
-     rabbitmqctl add_user guest guest
-     rabbitmqctl set_permissions -p / guest ".*" ".*" ".*"
-     rabbitmqctl set_user_tags guest administrator
+     rabbitmqctl add_user user user
+     rabbitmqctl set_permissions -p / user ".*" ".*" ".*"
+     rabbitmqctl set_user_tags user administrator
 
      # Install deps
      pip install -r /vagrant/requirements.txt
diff --git a/setup.py b/setup.py
index 967d021..b3da187 100644
--- a/setup.py
+++ b/setup.py
@@ -4,7 +4,7 @@ from distutils.core import setup
 
 setup(name='CoolAMQP',
       version='0.6',
-      description='The AMQP client library',
+      description='The angry AMQP client library',
       author=u'DMS Serwis s.c.',
       author_email='piotrm@smok.co',
       url='https://github.com/smok-serwis/coolamqp',
@@ -12,7 +12,7 @@ setup(name='CoolAMQP',
       keywords=['amqp', 'pyamqp', 'rabbitmq', 'client', 'network', 'ha', 'high availability'],
       packages=['coolamqp', 'coolamqp.backends'],
       license='MIT License',
-      long_description='''The Python AMQP client library that makes you forget about all the nasty corner cases about AMQP reconnection''',
+      long_description='''The Python AMQP client library that makes you STOP FUCKING WITH AMQP RECONNECTION''',
       requires=[
             "amqp",
             "six"
diff --git a/tests/README.md b/tests/README.md
new file mode 100644
index 0000000..08936ac
--- /dev/null
+++ b/tests/README.md
@@ -0,0 +1,3 @@
+Tests work using either Travis CI or Vagrant.
+
+If you want to debug things, you have RabbitMQ management enabled on Vagrant. Go to http://127.0.0.1:15672 and log in with **user** / **user**
diff --git a/tests/__init__.py b/tests/__init__.py
index 039ba81..e69de29 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -1,8 +0,0 @@
-"""
-Fucking all tests are integration, because why fuck you.
-How the fuck do you unit test a fucking NETWORK CLIENT LIBRARY?
-Are you going to FUCKING MOCK AN ENTIRE AMQP BROKER? Fuck you.
-
-You can run them either using fucking Travis CI or fucking Vagrant, it does not
-fucking matter.
-"""
diff --git a/tests/test_cluster.py b/tests/test_cluster.py
index ffc926b..251c494 100644
--- a/tests/test_cluster.py
+++ b/tests/test_cluster.py
@@ -2,12 +2,43 @@
 from __future__ import absolute_import, division, print_function
 import unittest
 
+from coolamqp import Cluster, ClusterNode, Queue, MessageReceived, ConnectionUp, \
+    ConnectionDown, ConsumerCancelled, Message
 
-from coolamqp import Cluster, ClusterNode
 
 class MyTestCase(unittest.TestCase):
-    def test_connect(self):
-        amqp = Cluster([ClusterNode('127.0.0.1', 'guest', 'guest')])
-        amqp.start()
-        amqp.shutdown()
+    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_send_and_receive(self):
+        myq = Queue('myqueue', exclusive=True)
+
+        self.amqp.consume(myq)
+        self.amqp.send(Message(b'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')
+
+#    def test_consumer_cancelled_on_queue_deletion(self):
+#        myq = Queue('myqueue', exclusive=True)
+#
+#        self.amqp.consume(myq)
+#        self.amqp.delete_queue(myq)
+#
+#        self.assertIsInstance(self.amqp.drain(wait=10), ConsumerCancelled)
+
+    def test_consumer_cancelled_on_consumer_cancel(self):
+        myq = Queue('myqueue', exclusive=True)
+
+        self.amqp.consume(myq)
+        self.amqp.cancel(myq)
+
+        self.assertIsInstance(self.amqp.drain(wait=10), ConsumerCancelled)
+
+        self.amqp.delete_queue(myq)
-- 
GitLab