diff --git a/Vagrantfile b/Vagrantfile
index b7cb361c657375c721139198c257d3c9ea54c19b..ec0bd057a6a0dbe0de91f37ad10e7352b1618317 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 967d021222173dba1f4fca289f2d5c66d289bfbc..b3da1879fc12eeab52665da9b6a8922dd7a517c2 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 0000000000000000000000000000000000000000..08936ac03b31b58cc36364f9f7186954545a5264
--- /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 039ba81f7dc7c9f08b99f974b5fb58b585e95e37..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 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 ffc926b23d08b4cea7292e27de462526a6ed63b1..251c49420f95b58af46c9e2c987da76878f5de9b 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)