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