diff --git a/CHANGELOG.md b/CHANGELOG.md index 690db17363e3625f36471bc652a655ce8cf6df3b..b85395cf0c0082ea66abc1fd75977454ff434e25 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # v1.2.5 -* _TBA_ +* bugfix: fixed `log_frames` in `Cluster` # v1.2.4 diff --git a/coolamqp/__init__.py b/coolamqp/__init__.py index dd3dbb692c9141738ee10353dcd00b6c64a8bc69..09964d630dd1cc3c4cf540190af0598b98ad2409 100644 --- a/coolamqp/__init__.py +++ b/coolamqp/__init__.py @@ -1 +1 @@ -__version__ = '1.2.5_a1' +__version__ = '1.2.5' diff --git a/coolamqp/clustering/cluster.py b/coolamqp/clustering/cluster.py index 598e5f1687c73de22dc87711826695cb9f5e74d8..9cfe3a37e35254370bf3e76052a0e975451d8444 100644 --- a/coolamqp/clustering/cluster.py +++ b/coolamqp/clustering/cluster.py @@ -83,6 +83,10 @@ class Cluster(object): self.log_frames = log_frames self.on_blocked = on_blocked self.connected = False + self.listener = None + self.attache_group = None + self.events = None + self.snr = None # type: SingleNodeReconnector if on_fail is not None: def decorated(): @@ -265,7 +269,7 @@ class Cluster(object): raise NotImplementedError( u'Sorry, this functionality is not yet implemented!') - def start(self, wait=True, timeout=10.0, log_frames=None): # type: (bool, float, bool) -> None + def start(self, wait=True, timeout=10.0): # type: (bool, float, bool) -> None """ Connect to broker. Initialize Cluster. @@ -277,7 +281,6 @@ class Cluster(object): ConnectionDead error will be raised :raise RuntimeError: called more than once :raise ConnectionDead: failed to connect within timeout - :param log_frames: whether to keep a log of sent/received frames in self.log_frames """ try: @@ -295,7 +298,7 @@ class Cluster(object): self.snr = SingleNodeReconnector(self.node, self.attache_group, self.listener, self.extra_properties, - log_frames, self.name) + self.log_frames, self.name) self.snr.on_fail.add(lambda: self.events.put_nowait(ConnectionLost())) if self.on_fail is not None: self.snr.on_fail.add(self.on_fail) diff --git a/docker-compose.yml b/docker-compose.yml index e525a5de27db5e9653e0fae2840627b7485a95ad..812b4ef3071816f7789796478b2bf24b26c0e096 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.2' services: amqp: image: rabbitmq - tests: + unittest: build: context: . dockerfile: tests/Dockerfile diff --git a/tests/Dockerfile b/tests/Dockerfile index f61ab622b61833268cba8c850e55affe056e7db3..e0ad63d4ba3c85ccbb0db798d43af5f069da7618 100644 --- a/tests/Dockerfile +++ b/tests/Dockerfile @@ -16,5 +16,5 @@ ENV AMQP_HOST=amqp # for those pesky builds on Windows RUN chmod -R ugo-x /coolamqp -CMD python setup.py test +CMD ["python", "setup.py", "test"] diff --git a/tests/test_clustering/test_log_frames.py b/tests/test_clustering/test_log_frames.py new file mode 100644 index 0000000000000000000000000000000000000000..02c4c6c518180b448f4c8a844304522558ff78a8 --- /dev/null +++ b/tests/test_clustering/test_log_frames.py @@ -0,0 +1,35 @@ +# coding=UTF-8 +""" +Test things +""" +from __future__ import print_function, absolute_import, division + +import logging +import os +import time +import unittest + +from coolamqp.clustering import Cluster +from coolamqp.objects import NodeDefinition, FrameLogger + +NODE = NodeDefinition(os.environ.get('AMQP_HOST', '127.0.0.1'), 'guest', 'guest', heartbeat=20) +logging.basicConfig(level=logging.DEBUG) + + +class TestLogFrames(unittest.TestCase): + def test_log_frames_works(self): + class LogFrames(FrameLogger): + def __init__(self): + self.received_frames = 0 + + def on_frame(self, timestamp, frame, direction): + self.received_frames += 1 + + frame_logger = LogFrames() + self.c = Cluster([NODE], log_frames=frame_logger) + self.c.start() + self.assertGreaterEqual(frame_logger.received_frames, 3) + + def tearDown(self): + self.c.shutdown() + diff --git a/tests/test_clustering/test_things.py b/tests/test_clustering/test_things.py index 3369eb20d324948fdcdc5d654dda2d16911ff759..5c7878a29269826096d66d9dd6c734dbb89ff458 100644 --- a/tests/test_clustering/test_things.py +++ b/tests/test_clustering/test_things.py @@ -63,4 +63,4 @@ class TestConnecting(unittest.TestCase): def test_amqpconnstring_port(self): node = NodeDefinition('amqp://lol:lol@lol:4123/vhost') - self.assertEquals(node.port, 4123) + self.assertEqual(node.port, 4123)