From d6244abb990bb45cf0ca29ec8102686af125684c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Ma=C5=9Blanka?= <piotr.maslanka@henrietta.com.pl> Date: Thu, 9 Jul 2020 16:27:55 +0200 Subject: [PATCH] v1.2.5 - fixed log_frames --- CHANGELOG.md | 2 +- coolamqp/__init__.py | 2 +- coolamqp/clustering/cluster.py | 9 ++++-- docker-compose.yml | 2 +- tests/Dockerfile | 2 +- tests/test_clustering/test_log_frames.py | 35 ++++++++++++++++++++++++ tests/test_clustering/test_things.py | 2 +- 7 files changed, 46 insertions(+), 8 deletions(-) create mode 100644 tests/test_clustering/test_log_frames.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 690db17..b85395c 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 dd3dbb6..09964d6 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 598e5f1..9cfe3a3 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 e525a5d..812b4ef 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 f61ab62..e0ad63d 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 0000000..02c4c6c --- /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 3369eb2..5c7878a 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) -- GitLab