File pamqp3.patch of Package python-amqpstorm
From 6b552634d3e5f6021b13e0ab9c98869402cbb2b7 Mon Sep 17 00:00:00 2001
From: Erik Olof Gunnar Andersson <me@eandersson.net>
Date: Thu, 25 Jun 2020 00:16:57 -0700
Subject: [PATCH 1/2] Initial pamqp3 support
---
.travis.yml | 1 -
LICENSE | 2 +-
README.rst | 71 +------------------
amqpstorm/__init__.py | 2 +-
amqpstorm/basic.py | 67 ++++++++---------
amqpstorm/channel.py | 14 ++--
amqpstorm/channel0.py | 12 ++--
amqpstorm/compatibility.py | 45 ++----------
amqpstorm/connection.py | 3 +-
amqpstorm/exchange.py | 2 +-
amqpstorm/queue.py | 2 +-
amqpstorm/tests/functional/test_generic.py | 6 +-
.../tests/unit/basic/test_basic_exception.py | 4 +-
amqpstorm/tests/unit/basic/test_basic.py | 60 +++++++---------
.../unit/channel/test_channel_exception.py | 9 +--
.../tests/unit/channel/test_channel_frame.py | 24 +++----
.../channel/test_channel_message_handling.py | 46 ++++++------
amqpstorm/tests/unit/channel/test_channel.py | 22 +++---
.../unit/channel0/channel0test__frame.py | 2 +-
.../tests/unit/channel0/channel0test_.py | 2 +-
amqpstorm/tests/unit/test_compatiblity.py | 46 +-----------
.../tests/unit/connection/test_connection.py | 17 ++---
.../tests/unit/exchange/test_exchange.py | 2 +-
amqpstorm/tests/unit/queue/test_queue.py | 8 +--
amqpstorm/tests/unit/test_tx.py | 26 +++----
.../test_uri_connection_exception.py | 6 --
amqpstorm/tx.py | 8 +--
requirements.txt | 2 +-
setup.cfg | 2 +-
setup.py | 9 +--
30 files changed, 180 insertions(+), 342 deletions(-)
Index: AMQPStorm-2.10.7/LICENSE
===================================================================
--- AMQPStorm-2.10.7.orig/LICENSE
+++ AMQPStorm-2.10.7/LICENSE
@@ -1,6 +1,6 @@
The MIT License (MIT)
-Copyright (c) 2014-2020 Erik Olof Gunnar Andersson
+Copyright (c) 2014-2021 Erik Olof Gunnar Andersson
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Index: AMQPStorm-2.10.7/README.rst
===================================================================
--- AMQPStorm-2.10.7.orig/README.rst
+++ AMQPStorm-2.10.7/README.rst
@@ -137,5 +137,10 @@ Credits
=======
Special thanks to gmr (Gavin M. Roy) for creating pamqp, and in addition amqpstorm is heavily influenced by his pika and rabbitpy libraries.
+Version 3.0.0 Alpha 1
+---------------------
+- This version requires Python 3.6 or newer.
+- Upgraded to pamqp3.
+
.. |Version| image:: https://badge.fury.io/py/AMQPStorm.svg
:target: https://badge.fury.io/py/AMQPStorm
Index: AMQPStorm-2.10.7/amqpstorm/basic.py
===================================================================
--- AMQPStorm-2.10.7.orig/amqpstorm/basic.py
+++ AMQPStorm-2.10.7/amqpstorm/basic.py
@@ -5,7 +5,7 @@ import math
from pamqp import body as pamqp_body
from pamqp import header as pamqp_header
-from pamqp import specification
+from pamqp import commands
from amqpstorm import compatibility
from amqpstorm.base import BaseMessage
@@ -46,9 +46,9 @@ class Basic(Handler):
raise AMQPInvalidArgument('prefetch_size should be an integer')
elif not isinstance(global_, bool):
raise AMQPInvalidArgument('global_ should be a boolean')
- qos_frame = specification.Basic.Qos(prefetch_count=prefetch_count,
- prefetch_size=prefetch_size,
- global_=global_)
+ qos_frame = commands.Basic.Qos(prefetch_count=prefetch_count,
+ prefetch_size=prefetch_size,
+ global_=global_)
return self._channel.rpc_request(qos_frame)
def get(self, queue='', no_ack=False, to_dict=False, auto_decode=True,
@@ -85,7 +85,7 @@ class Basic(Handler):
)
else:
message_impl = Message
- get_frame = specification.Basic.Get(queue=queue,
+ get_frame = commands.Basic.Get(queue=queue,
no_ack=no_ack)
with self._channel.lock and self._channel.rpc.lock:
message = self._get_message(get_frame, auto_decode=auto_decode,
@@ -108,7 +108,7 @@ class Basic(Handler):
"""
if not isinstance(requeue, bool):
raise AMQPInvalidArgument('requeue should be a boolean')
- recover_frame = specification.Basic.Recover(requeue=requeue)
+ recover_frame = commands.Basic.Recover(requeue=requeue)
return self._channel.rpc_request(recover_frame)
def consume(self, callback=None, queue='', consumer_tag='',
@@ -164,7 +164,7 @@ class Basic(Handler):
"""
if not compatibility.is_string(consumer_tag):
raise AMQPInvalidArgument('consumer_tag should be a string')
- cancel_frame = specification.Basic.Cancel(consumer_tag=consumer_tag)
+ cancel_frame = commands.Basic.Cancel(consumer_tag=consumer_tag)
result = self._channel.rpc_request(cancel_frame)
self._channel.remove_consumer_tag(consumer_tag)
return result
@@ -191,11 +191,11 @@ class Basic(Handler):
properties, routing_key)
properties = properties or {}
body = self._handle_utf8_payload(body, properties)
- properties = specification.Basic.Properties(**properties)
- method_frame = specification.Basic.Publish(exchange=exchange,
- routing_key=routing_key,
- mandatory=mandatory,
- immediate=immediate)
+ properties = commands.Basic.Properties(**properties)
+ method_frame = commands.Basic.Publish(exchange=exchange,
+ routing_key=routing_key,
+ mandatory=mandatory,
+ immediate=immediate)
header_frame = pamqp_header.ContentHeader(body_size=len(body),
properties=properties)
@@ -225,8 +225,8 @@ class Basic(Handler):
raise AMQPInvalidArgument('delivery_tag should be an integer')
elif not isinstance(multiple, bool):
raise AMQPInvalidArgument('multiple should be a boolean')
- ack_frame = specification.Basic.Ack(delivery_tag=delivery_tag,
- multiple=multiple)
+ ack_frame = commands.Basic.Ack(delivery_tag=delivery_tag,
+ multiple=multiple)
self._channel.write_frame(ack_frame)
def nack(self, delivery_tag=0, multiple=False, requeue=True):
@@ -249,9 +249,9 @@ class Basic(Handler):
raise AMQPInvalidArgument('multiple should be a boolean')
elif not isinstance(requeue, bool):
raise AMQPInvalidArgument('requeue should be a boolean')
- nack_frame = specification.Basic.Nack(delivery_tag=delivery_tag,
- multiple=multiple,
- requeue=requeue)
+ nack_frame = commands.Basic.Nack(delivery_tag=delivery_tag,
+ multiple=multiple,
+ requeue=requeue)
self._channel.write_frame(nack_frame)
def reject(self, delivery_tag=0, requeue=True):
@@ -271,8 +271,8 @@ class Basic(Handler):
raise AMQPInvalidArgument('delivery_tag should be an integer')
elif not isinstance(requeue, bool):
raise AMQPInvalidArgument('requeue should be a boolean')
- reject_frame = specification.Basic.Reject(delivery_tag=delivery_tag,
- requeue=requeue)
+ reject_frame = commands.Basic.Reject(delivery_tag=delivery_tag,
+ requeue=requeue)
self._channel.write_frame(reject_frame)
def _consume_add_and_get_tag(self, consume_rpc_result):
@@ -299,12 +299,12 @@ class Basic(Handler):
:rtype: dict
"""
- consume_frame = specification.Basic.Consume(queue=queue,
- consumer_tag=consumer_tag,
- exclusive=exclusive,
- no_local=no_local,
- no_ack=no_ack,
- arguments=arguments)
+ consume_frame = commands.Basic.Consume(queue=queue,
+ consumer_tag=consumer_tag,
+ exclusive=exclusive,
+ no_local=no_local,
+ no_ack=no_ack,
+ arguments=arguments)
return self._channel.rpc_request(consume_frame)
@staticmethod
@@ -348,9 +348,7 @@ class Basic(Handler):
if 'content_encoding' not in properties:
properties['content_encoding'] = 'utf-8'
encoding = properties['content_encoding']
- if compatibility.is_unicode(body):
- body = body.encode(encoding)
- elif compatibility.PYTHON3 and isinstance(body, str):
+ if isinstance(body, str):
body = bytes(body, encoding=encoding)
return body
@@ -371,7 +369,7 @@ class Basic(Handler):
get_ok_frame = self._channel.rpc.get_request(message_uuid,
raw=True,
multiple=True)
- if isinstance(get_ok_frame, specification.Basic.GetEmpty):
+ if isinstance(get_ok_frame, commands.Basic.GetEmpty):
return None
content_header = self._channel.rpc.get_request(message_uuid,
raw=True,
@@ -399,7 +397,7 @@ class Basic(Handler):
result = self._channel.rpc.get_request(confirm_uuid, raw=True)
if mandatory:
self._channel.check_for_exceptions()
- if isinstance(result, specification.Basic.Ack):
+ if isinstance(result, commands.Basic.Ack):
return True
return False
Index: AMQPStorm-2.10.7/amqpstorm/channel.py
===================================================================
--- AMQPStorm-2.10.7.orig/amqpstorm/channel.py
+++ AMQPStorm-2.10.7/amqpstorm/channel.py
@@ -4,7 +4,7 @@ import logging
import threading
import time
-from pamqp import specification
+from pamqp import commands
from pamqp.header import ContentHeader
from amqpstorm import compatibility
@@ -197,7 +197,9 @@ class Channel(BaseChannel):
self.stop_consuming()
except AMQPChannelError:
self.remove_consumer_tag()
- self.rpc_request(specification.Channel.Close(
+ self.rpc_request(commands.Channel.Close(
+ class_id=0,
+ method_id=0,
reply_code=reply_code,
reply_text=reply_text),
connection_adapter=self._connection
@@ -251,7 +253,7 @@ class Channel(BaseChannel):
:return:
"""
self._confirming_deliveries = True
- confirm_frame = specification.Confirm.Select()
+ confirm_frame = commands.Confirm.Select()
return self.rpc_request(confirm_frame)
@property
@@ -284,7 +286,7 @@ class Channel(BaseChannel):
elif frame_in.name == 'Channel.Close':
self._close_channel(frame_in)
elif frame_in.name == 'Channel.Flow':
- self.write_frame(specification.Channel.FlowOk(frame_in.active))
+ self.write_frame(commands.Channel.FlowOk(frame_in.active))
else:
LOGGER.error(
'[Channel%d] Unhandled Frame: %s -- %s',
@@ -300,7 +302,7 @@ class Channel(BaseChannel):
self._exceptions = []
self._confirming_deliveries = False
self.set_state(self.OPENING)
- self.rpc_request(specification.Channel.Open())
+ self.rpc_request(commands.Channel.Open())
self.set_state(self.OPEN)
def process_data_events(self, to_tuple=False, auto_decode=True):
@@ -464,7 +466,7 @@ class Channel(BaseChannel):
:rtype: tuple,None
"""
basic_deliver = self._inbound.pop(0)
- if not isinstance(basic_deliver, specification.Basic.Deliver):
+ if not isinstance(basic_deliver, commands.Basic.Deliver):
LOGGER.warning(
'Received an out-of-order frame: %s was '
'expecting a Basic.Deliver frame',
@@ -508,7 +510,7 @@ class Channel(BaseChannel):
self.set_state(self.CLOSING)
if not self._connection.is_closed:
try:
- self.write_frame(specification.Channel.CloseOk())
+ self.write_frame(commands.Channel.CloseOk())
except AMQPError:
pass
self.remove_consumer_tag()
Index: AMQPStorm-2.10.7/amqpstorm/channel0.py
===================================================================
--- AMQPStorm-2.10.7.orig/amqpstorm/channel0.py
+++ AMQPStorm-2.10.7/amqpstorm/channel0.py
@@ -3,7 +3,7 @@
import logging
import platform
-from pamqp import specification
+from pamqp import commands
from pamqp.heartbeat import Heartbeat
from amqpstorm import __version__
@@ -64,7 +64,9 @@ class Channel0(object):
:return:
"""
- self._write_frame(specification.Connection.Close())
+ self._write_frame(commands.Connection.Close(
+ class_id=0, method_id=0, reply_code=0
+ ))
def send_heartbeat(self):
"""Send Heartbeat frame.
@@ -158,7 +160,7 @@ class Channel0(object):
)
self._connection.exceptions.append(exception)
return
- start_ok_frame = specification.Connection.StartOk(
+ start_ok_frame = commands.Connection.StartOk(
mechanism=mechanism,
client_properties=self._client_properties(),
response=credentials,
@@ -182,7 +184,7 @@ class Channel0(object):
self.max_frame_size, self.max_allowed_channels
)
- tune_ok_frame = specification.Connection.TuneOk(
+ tune_ok_frame = commands.Connection.TuneOk(
channel_max=self.max_allowed_channels,
frame_max=self.max_frame_size,
heartbeat=self._heartbeat)
@@ -193,7 +195,7 @@ class Channel0(object):
:return:
"""
- open_frame = specification.Connection.Open(
+ open_frame = commands.Connection.Open(
virtual_host=self._parameters['virtual_host']
)
self._write_frame(open_frame)
Index: AMQPStorm-2.10.7/amqpstorm/compatibility.py
===================================================================
--- AMQPStorm-2.10.7.orig/amqpstorm/compatibility.py
+++ AMQPStorm-2.10.7/amqpstorm/compatibility.py
@@ -1,7 +1,5 @@
"""Python 2/3 Compatibility layer."""
-import sys
-
try:
import ssl
except ImportError:
@@ -12,22 +10,12 @@ try:
except ImportError:
import json # noqa
-try:
- import urlparse # noqa
-except ImportError:
- import urllib.parse as urlparse # noqa
-try:
- from urllib import quote # noqa
-except ImportError:
- from urllib.parse import quote # noqa
+import urllib.parse as urlparse # noqa
+from urllib.parse import quote # noqa
-PYTHON3 = sys.version_info >= (3, 0, 0)
-if PYTHON3:
- RANGE = range
-else:
- RANGE = xrange
+RANGE = range
class DummyException(Exception):
@@ -90,11 +78,7 @@ def is_string(obj):
:param object obj:
:rtype: bool
"""
- if PYTHON3:
- str_type = (bytes, str)
- else:
- str_type = (bytes, str, unicode)
- return isinstance(obj, str_type)
+ return isinstance(obj, (bytes, str))
def is_integer(obj):
@@ -103,22 +87,7 @@ def is_integer(obj):
:param object obj:
:return:
"""
- if PYTHON3:
- return isinstance(obj, int)
- return isinstance(obj, (int, long))
-
-
-def is_unicode(obj):
- """Is this a unicode string.
-
- This always returns False if running Python 3.x.
-
- :param object obj:
- :rtype: bool
- """
- if PYTHON3:
- return False
- return isinstance(obj, unicode)
+ return isinstance(obj, int)
def try_utf8_decode(value):
@@ -129,9 +98,7 @@ def try_utf8_decode(value):
"""
if not value or not is_string(value):
return value
- elif PYTHON3 and not isinstance(value, bytes):
- return value
- elif not PYTHON3 and not isinstance(value, unicode):
+ elif not isinstance(value, bytes):
return value
try:
Index: AMQPStorm-2.10.7/amqpstorm/connection.py
===================================================================
--- AMQPStorm-2.10.7.orig/amqpstorm/connection.py
+++ AMQPStorm-2.10.7/amqpstorm/connection.py
@@ -8,7 +8,6 @@ from time import sleep
from pamqp import exceptions as pamqp_exception
from pamqp import frame as pamqp_frame
from pamqp import header as pamqp_header
-from pamqp import specification
from amqpstorm import compatibility
from amqpstorm.base import IDLE_WAIT
@@ -324,7 +323,7 @@ class Connection(Stateful):
return data_in[byte_count:], channel_id, frame_in
except pamqp_exception.UnmarshalingException:
pass
- except specification.AMQPFrameError as why:
+ except pamqp_exception.AMQPFrameError as why:
LOGGER.error('AMQPFrameError: %r', why, exc_info=True)
except ValueError as why:
LOGGER.error(why, exc_info=True)
Index: AMQPStorm-2.10.7/amqpstorm/exchange.py
===================================================================
--- AMQPStorm-2.10.7.orig/amqpstorm/exchange.py
+++ AMQPStorm-2.10.7/amqpstorm/exchange.py
@@ -2,7 +2,7 @@
import logging
-from pamqp.specification import Exchange as pamqp_exchange
+from pamqp.commands import Exchange as pamqp_exchange
from amqpstorm import compatibility
from amqpstorm.base import Handler
Index: AMQPStorm-2.10.7/amqpstorm/queue.py
===================================================================
--- AMQPStorm-2.10.7.orig/amqpstorm/queue.py
+++ AMQPStorm-2.10.7/amqpstorm/queue.py
@@ -2,7 +2,7 @@
import logging
-from pamqp.specification import Queue as pamqp_queue
+from pamqp.commands import Queue as pamqp_queue
from amqpstorm import compatibility
from amqpstorm.base import Handler
Index: AMQPStorm-2.10.7/amqpstorm/tests/functional/test_generic.py
===================================================================
--- AMQPStorm-2.10.7.orig/amqpstorm/tests/functional/test_generic.py
+++ AMQPStorm-2.10.7/amqpstorm/tests/functional/test_generic.py
@@ -175,7 +175,7 @@ class GenericTest(TestFunctionalFramewor
# Old way
result = payload.to_dict()
self.assertEqual(result['properties']['headers']['key'], 1234567890)
- self.assertEqual(result['properties']['headers']['alpha'], b'omega')
+ self.assertEqual(result['properties']['headers']['alpha'], 'omega')
self.assertIsInstance(result['properties']['app_id'], str)
self.assertIsInstance(result['properties']['correlation_id'], str)
self.assertEqual(result['properties']['app_id'], app_id)
@@ -197,7 +197,7 @@ class GenericTest(TestFunctionalFramewor
self.assertEqual(message.app_id, 'travis-ci')
# Assign Property app_id
- app_id = 'travis-ci-2'.encode('utf-8')
+ app_id = 'travis-ci-2'
message.app_id = app_id
# Check that it was set correctly.
@@ -213,7 +213,7 @@ class GenericTest(TestFunctionalFramewor
time.sleep(0.01)
payload = self.channel.basic.get(self.queue_name, no_ack=True)
- self.assertEqual(payload.app_id, app_id.decode('utf-8'))
+ self.assertEqual(payload.app_id, app_id)
self.assertEqual(payload.correlation_id, correlation_id)
self.assertIsInstance(payload.properties['app_id'], str)
self.assertIsInstance(payload.properties['correlation_id'], str)
Index: AMQPStorm-2.10.7/amqpstorm/tests/unit/basic/test_basic_exception.py
===================================================================
--- AMQPStorm-2.10.7.orig/amqpstorm/tests/unit/basic/test_basic_exception.py
+++ AMQPStorm-2.10.7/amqpstorm/tests/unit/basic/test_basic_exception.py
@@ -1,4 +1,4 @@
-from pamqp import specification
+from pamqp import commands
from pamqp.body import ContentBody
from amqpstorm import Channel
@@ -277,7 +277,7 @@ class BasicExceptionTests(TestFramework)
def test_basic_publish_confirms_raises_on_invalid_frame(self):
def on_publish_return_invalid_frame(*_):
- channel.rpc.on_frame(specification.Basic.Cancel())
+ channel.rpc.on_frame(commands.Basic.Cancel())
connection = FakeConnection(on_write=on_publish_return_invalid_frame)
channel = Channel(9, connection, 0.01)
Index: AMQPStorm-2.10.7/amqpstorm/tests/unit/basic/test_basic.py
===================================================================
--- AMQPStorm-2.10.7.orig/amqpstorm/tests/unit/basic/test_basic.py
+++ AMQPStorm-2.10.7/amqpstorm/tests/unit/basic/test_basic.py
@@ -4,7 +4,7 @@ import string
import sys
from unittest import mock
-from pamqp import specification
+from pamqp import commands
from pamqp.body import ContentBody
from pamqp.header import ContentHeader
@@ -15,13 +15,12 @@ from amqpstorm.compatibility import RANG
from amqpstorm.exception import AMQPChannelError
from amqpstorm.tests.utility import FakeConnection
from amqpstorm.tests.utility import TestFramework
-from amqpstorm.tests.utility import unittest
class BasicTests(TestFramework):
def test_basic_qos(self):
def on_qos_frame(*_):
- channel.rpc.on_frame(specification.Basic.QosOk())
+ channel.rpc.on_frame(commands.Basic.QosOk())
connection = FakeConnection(on_write=on_qos_frame)
channel = Channel(9, connection, 1)
@@ -35,7 +34,7 @@ class BasicTests(TestFramework):
message_len = len(message)
def on_get_frame(*_):
- channel.rpc.on_frame(specification.Basic.GetOk())
+ channel.rpc.on_frame(commands.Basic.GetOk())
channel.rpc.on_frame(ContentHeader(body_size=message_len))
channel.rpc.on_frame(ContentBody(value=message))
@@ -55,7 +54,7 @@ class BasicTests(TestFramework):
message_len = len(message)
def on_get_frame(*_):
- channel.rpc.on_frame(specification.Basic.GetOk())
+ channel.rpc.on_frame(commands.Basic.GetOk())
channel.rpc.on_frame(ContentHeader(body_size=message_len))
channel.rpc.on_frame(ContentBody(value=message))
@@ -72,7 +71,7 @@ class BasicTests(TestFramework):
def test_basic_get_empty(self):
def on_get_frame(*_):
- channel.rpc.on_frame(specification.Basic.GetEmpty())
+ channel.rpc.on_frame(commands.Basic.GetEmpty())
connection = FakeConnection(on_write=on_get_frame)
channel = Channel(9, connection, 1)
@@ -105,7 +104,7 @@ class BasicTests(TestFramework):
def test_basic_recover(self):
def on_recover_frame(*_):
- channel.rpc.on_frame(specification.Basic.RecoverOk())
+ channel.rpc.on_frame(commands.Basic.RecoverOk())
connection = FakeConnection(on_write=on_recover_frame)
channel = Channel(9, connection, 1)
@@ -118,7 +117,7 @@ class BasicTests(TestFramework):
tag = 'travis-ci'
def on_consume_frame(*_):
- channel.rpc.on_frame(specification.Basic.ConsumeOk(tag))
+ channel.rpc.on_frame(commands.Basic.ConsumeOk(tag))
connection = FakeConnection(on_write=on_consume_frame)
channel = Channel(9, connection, 1)
@@ -130,7 +129,7 @@ class BasicTests(TestFramework):
def test_basic_ack(self):
def on_write(channel, frame):
self.assertEqual(channel, 9)
- self.assertIsInstance(frame, specification.Basic.Ack)
+ self.assertIsInstance(frame, commands.Basic.Ack)
connection = FakeConnection(on_write=on_write)
channel = Channel(9, connection, 1)
@@ -142,7 +141,7 @@ class BasicTests(TestFramework):
def test_basic_nack(self):
def on_write(channel, frame):
self.assertEqual(channel, 9)
- self.assertIsInstance(frame, specification.Basic.Nack)
+ self.assertIsInstance(frame, commands.Basic.Nack)
connection = FakeConnection(on_write=on_write)
channel = Channel(9, connection, 1)
@@ -154,7 +153,7 @@ class BasicTests(TestFramework):
def test_basic_reject(self):
def on_write(channel, frame):
self.assertEqual(channel, 9)
- self.assertIsInstance(frame, specification.Basic.Reject)
+ self.assertIsInstance(frame, commands.Basic.Reject)
connection = FakeConnection(on_write=on_write)
channel = Channel(9, connection, 1)
@@ -188,7 +187,7 @@ class BasicTests(TestFramework):
self.assertEqual(channel_id, 9)
# Verify Classes
- self.assertIsInstance(basic_publish, specification.Basic.Publish)
+ self.assertIsInstance(basic_publish, commands.Basic.Publish)
self.assertIsInstance(content_header, ContentHeader)
self.assertIsInstance(content_body, ContentBody)
@@ -202,7 +201,7 @@ class BasicTests(TestFramework):
def test_basic_publish_confirms_ack(self):
def on_publish_return_ack(*_):
- channel.rpc.on_frame(specification.Basic.Ack())
+ channel.rpc.on_frame(commands.Basic.Ack())
connection = FakeConnection(on_write=on_publish_return_ack)
channel = Channel(9, connection, 1)
@@ -215,7 +214,7 @@ class BasicTests(TestFramework):
def test_basic_publish_confirms_nack(self):
def on_publish_return_nack(*_):
- channel.rpc.on_frame(specification.Basic.Nack())
+ channel.rpc.on_frame(commands.Basic.Nack())
connection = FakeConnection(on_write=on_publish_return_nack)
channel = Channel(9, connection, 1)
@@ -276,11 +275,11 @@ class BasicTests(TestFramework):
message = self.message.encode('utf-8')
message_len = len(message)
- get_frame = specification.Basic.Get(queue='travis-ci',
- no_ack=False)
+ get_frame = commands.Basic.Get(queue='travis-ci',
+ no_ack=False)
def on_get_frame(*_):
- channel.rpc.on_frame(specification.Basic.GetOk())
+ channel.rpc.on_frame(commands.Basic.GetOk())
channel.rpc.on_frame(ContentHeader(body_size=message_len))
channel.rpc.on_frame(ContentBody(value=message))
@@ -298,11 +297,11 @@ class BasicTests(TestFramework):
message = self.message.encode('utf-8')
message_len = len(message)
- get_frame = specification.Basic.Get(queue='travis-ci',
- no_ack=False)
+ get_frame = commands.Basic.Get(queue='travis-ci',
+ no_ack=False)
def on_get_frame(*_):
- channel.rpc.on_frame(specification.Basic.GetOk())
+ channel.rpc.on_frame(commands.Basic.GetOk())
channel.rpc.on_frame(ContentHeader(body_size=message_len))
channel.rpc.on_frame(ContentBody(value=message))
@@ -317,11 +316,11 @@ class BasicTests(TestFramework):
self.assertEqual(result.body.encode('utf-8'), message)
def test_basic_get_message_empty_queue(self):
- get_frame = specification.Basic.Get(queue='travis-ci',
- no_ack=False)
+ get_frame = commands.Basic.Get(queue='travis-ci',
+ no_ack=False)
def on_get_frame(*_):
- channel.rpc.on_frame(specification.Basic.GetEmpty())
+ channel.rpc.on_frame(commands.Basic.GetEmpty())
connection = FakeConnection(on_write=on_get_frame)
channel = Channel(9, connection, 1)
@@ -354,7 +353,6 @@ class BasicTests(TestFramework):
self.assertEqual(basic._get_content_body(uuid, 10), b'')
- @unittest.skipIf(sys.version_info[0] == 2, 'No bytes decoding in Python 2')
def test_basic_py3_utf_8_payload(self):
message = 'Hellå World!'
basic = Basic(None)
@@ -362,15 +360,6 @@ class BasicTests(TestFramework):
self.assertEqual(payload, b'Hell\xc3\xa5 World!')
- @unittest.skipIf(sys.version_info[0] == 3, 'No unicode obj in Python 3')
- def test_basic_py2_utf_8_payload(self):
- message = u'Hellå World!'
- basic = Basic(None)
- properties = {}
- payload = basic._handle_utf8_payload(message, properties)
-
- self.assertEqual(payload, 'Hell\xc3\xa5 World!')
-
def test_basic_content_in_properties(self):
basic = Basic(None)
properties = {
@@ -400,14 +389,14 @@ class BasicTests(TestFramework):
tag = 'travis-ci'
def on_publish_return_ack(_, frame):
- self.assertIsInstance(frame, specification.Basic.Consume)
+ self.assertIsInstance(frame, commands.Basic.Consume)
self.assertEqual(frame.arguments, {})
self.assertEqual(frame.consumer_tag, tag)
self.assertEqual(frame.exclusive, True)
self.assertEqual(frame.no_ack, True)
self.assertEqual(frame.exclusive, True)
self.assertEqual(frame.queue, '')
- channel.rpc.on_frame(specification.Basic.ConsumeOk(tag))
+ channel.rpc.on_frame(commands.Basic.ConsumeOk(tag))
connection = FakeConnection(on_write=on_publish_return_ack)
channel = Channel(9, connection, 1)
Index: AMQPStorm-2.10.7/amqpstorm/tests/unit/channel/test_channel_exception.py
===================================================================
--- AMQPStorm-2.10.7.orig/amqpstorm/tests/unit/channel/test_channel_exception.py
+++ AMQPStorm-2.10.7/amqpstorm/tests/unit/channel/test_channel_exception.py
@@ -1,5 +1,5 @@
from unittest import mock
-from pamqp import specification
+from pamqp import commands
import amqpstorm
from amqpstorm import AMQPChannelError
@@ -189,9 +189,10 @@ class ChannelExceptionTests(TestFramewor
channel = Channel(0, FakeConnection(), 360)
channel.set_state(channel.OPEN)
- basic_return = specification.Basic.Return(
+ basic_return = commands.Basic.Return(
reply_code=500,
- reply_text='Error'
+ reply_text='Error',
+ routing_key='',
)
channel._basic_return(basic_return)
@@ -211,7 +212,7 @@ class ChannelExceptionTests(TestFramewor
channel.set_state(channel.OPEN)
channel._consumer_tags = [4, 5, 6]
- close_frame = specification.Channel.Close(
+ close_frame = commands.Channel.Close(
reply_code=500,
reply_text='travis-ci'
)
Index: AMQPStorm-2.10.7/amqpstorm/tests/unit/channel/test_channel_frame.py
===================================================================
--- AMQPStorm-2.10.7.orig/amqpstorm/tests/unit/channel/test_channel_frame.py
+++ AMQPStorm-2.10.7/amqpstorm/tests/unit/channel/test_channel_frame.py
@@ -1,6 +1,6 @@
from unittest import mock
-from pamqp import ContentHeader
-from pamqp import specification
+from pamqp.header import ContentHeader
+from pamqp import commands
from pamqp.body import ContentBody
import amqpstorm
@@ -21,7 +21,7 @@ class ChannelFrameTests(TestFramework):
message = self.message.encode('utf-8')
message_len = len(message)
- deliver = specification.Basic.Deliver()
+ deliver = commands.Basic.Deliver()
header = ContentHeader(body_size=message_len)
body = ContentBody(value=message)
@@ -38,7 +38,7 @@ class ChannelFrameTests(TestFramework):
lazy=True)
channel = Channel(0, connection, rpc_timeout=1)
- channel.on_frame(specification.Basic.Cancel('travis-ci'))
+ channel.on_frame(commands.Basic.Cancel('travis-ci'))
self.assertEqual(
self.get_last_log(),
@@ -50,7 +50,7 @@ class ChannelFrameTests(TestFramework):
channel = Channel(0, mock.Mock(name='Connection'), rpc_timeout=1)
channel.add_consumer_tag(tag)
- channel.on_frame(specification.Basic.CancelOk(tag))
+ channel.on_frame(commands.Basic.CancelOk(tag))
self.assertFalse(channel.consumer_tags)
@@ -58,7 +58,7 @@ class ChannelFrameTests(TestFramework):
tag = 'travis-ci'
channel = Channel(0, mock.Mock(name='Connection'), rpc_timeout=1)
- channel.on_frame(specification.Basic.ConsumeOk(tag))
+ channel.on_frame(commands.Basic.ConsumeOk(tag))
self.assertEqual(channel.consumer_tags[0], tag)
@@ -70,7 +70,7 @@ class ChannelFrameTests(TestFramework):
channel.set_state(channel.OPEN)
channel.on_frame(
- specification.Basic.Return(
+ commands.Basic.Return(
reply_code=500,
reply_text='travis-ci',
exchange='exchange',
@@ -91,7 +91,7 @@ class ChannelFrameTests(TestFramework):
channel.set_state(channel.OPEN)
channel.on_frame(
- specification.Channel.Close(
+ commands.Channel.Close(
reply_code=500,
reply_text='travis-ci'
)
@@ -109,7 +109,7 @@ class ChannelFrameTests(TestFramework):
channel.set_state(channel.OPEN)
channel.on_frame(
- specification.Channel.Close(
+ commands.Channel.Close(
reply_code=500,
reply_text='travis-ci'
)
@@ -132,7 +132,7 @@ class ChannelFrameTests(TestFramework):
connection.write_frame = raise_on_write
channel.on_frame(
- specification.Channel.Close(
+ commands.Channel.Close(
reply_code=500,
reply_text='travis-ci'
)
@@ -150,11 +150,11 @@ class ChannelFrameTests(TestFramework):
channel = Channel(0, connection, rpc_timeout=1)
channel.set_state(channel.OPEN)
- channel.on_frame(specification.Channel.Flow())
+ channel.on_frame(commands.Channel.Flow())
self.assertIsInstance(
connection.get_last_frame(),
- specification.Channel.FlowOk
+ commands.Channel.FlowOk
)
def test_channel_unhandled_frame(self):
Index: AMQPStorm-2.10.7/amqpstorm/tests/unit/channel/test_channel_message_handling.py
===================================================================
--- AMQPStorm-2.10.7.orig/amqpstorm/tests/unit/channel/test_channel_message_handling.py
+++ AMQPStorm-2.10.7/amqpstorm/tests/unit/channel/test_channel_message_handling.py
@@ -1,8 +1,8 @@
import threading
from unittest import mock
-from pamqp import ContentHeader
-from pamqp import specification
+from pamqp.header import ContentHeader
+from pamqp import commands
from pamqp.body import ContentBody
from amqpstorm import AMQPChannelError
@@ -19,7 +19,7 @@ class ChannelBuildMessageTests(TestFrame
message = self.message.encode('utf-8')
message_len = len(message)
- deliver = specification.Basic.Deliver()
+ deliver = commands.Basic.Deliver()
header = ContentHeader(body_size=message_len)
body = ContentBody(value=message)
@@ -36,7 +36,7 @@ class ChannelBuildMessageTests(TestFrame
message = self.message.encode('utf-8')
message_len = len(message)
- deliver = specification.Basic.Deliver()
+ deliver = commands.Basic.Deliver()
header = ContentHeader(body_size=message_len)
body = ContentBody(value=message)
@@ -52,7 +52,7 @@ class ChannelBuildMessageTests(TestFrame
message = self.message
message_len = len(message)
- deliver = specification.Basic.Deliver()
+ deliver = commands.Basic.Deliver()
header = ContentHeader(body_size=message_len)
channel._inbound = [deliver, deliver, header]
@@ -68,7 +68,7 @@ class ChannelBuildMessageTests(TestFrame
message = self.message
message_len = len(message)
- deliver = specification.Basic.Deliver()
+ deliver = commands.Basic.Deliver()
header = ContentHeader(body_size=message_len)
body = ContentBody(value=message)
@@ -82,20 +82,20 @@ class ChannelBuildMessageTests(TestFrame
def test_channel_build_message_headers(self):
channel = Channel(0, mock.Mock(name='Connection'), 360)
- deliver = specification.Basic.Deliver()
+ deliver = commands.Basic.Deliver()
header = ContentHeader(body_size=10)
channel._inbound = [deliver, header]
result = channel._build_message_headers()
- self.assertIsInstance(result[0], specification.Basic.Deliver)
+ self.assertIsInstance(result[0], commands.Basic.Deliver)
self.assertIsInstance(result[1], ContentHeader)
self.assertEqual(result[1].body_size, 10)
def test_channel_build_message_headers_out_of_order(self):
channel = Channel(0, mock.Mock(name='Connection'), 360)
- deliver = specification.Basic.Deliver()
+ deliver = commands.Basic.Deliver()
header = ContentHeader(body_size=10)
channel._inbound = [header, deliver]
@@ -128,7 +128,7 @@ class ChannelBuildMessageTests(TestFrame
channel._inbound = []
def add_inbound():
- channel._inbound.append(ContentBody())
+ channel._inbound.append(ContentBody(None))
threading.Timer(function=add_inbound, interval=0.1).start()
@@ -209,7 +209,7 @@ class ChannelBuildMessageTests(TestFrame
channel._inbound.append(ContentHeader(body_size=message_len))
channel._inbound.append(ContentBody(value=message))
- deliver = specification.Basic.Deliver()
+ deliver = commands.Basic.Deliver()
channel._inbound = [deliver]
self.assertTrue(channel._inbound)
@@ -228,7 +228,7 @@ class ChannelBuildMessageTests(TestFrame
message = self.message.encode('utf-8')
message_len = len(message)
- deliver = specification.Basic.Deliver()
+ deliver = commands.Basic.Deliver()
header = ContentHeader(body_size=message_len)
body = ContentBody(value=message)
@@ -248,7 +248,7 @@ class ChannelBuildMessageTests(TestFrame
message = self.message.encode('utf-8')
message_len = len(message)
- deliver = specification.Basic.Deliver()
+ deliver = commands.Basic.Deliver()
header = ContentHeader(body_size=message_len)
body = ContentBody(value=message)
@@ -269,7 +269,7 @@ class ChannelBuildMessageTests(TestFrame
message = self.message.encode('utf-8')
message_len = len(message)
- deliver = specification.Basic.Deliver()
+ deliver = commands.Basic.Deliver()
header = ContentHeader(body_size=message_len)
body = ContentBody(value=message)
@@ -292,7 +292,7 @@ class ChannelBuildMessageTests(TestFrame
message = self.message.encode('utf-8')
message_len = len(message)
- deliver = specification.Basic.Deliver()
+ deliver = commands.Basic.Deliver()
header = ContentHeader(body_size=message_len)
body = ContentBody(value=message)
@@ -317,7 +317,7 @@ class ChannelBuildMessageTests(TestFrame
message = self.message.encode('utf-8')
message_len = len(message)
- deliver = specification.Basic.Deliver()
+ deliver = commands.Basic.Deliver()
header = ContentHeader(body_size=message_len)
body = ContentBody(value=message)
@@ -343,7 +343,7 @@ class ChannelProcessDataEventTests(TestF
message = self.message.encode('utf-8')
message_len = len(message)
- deliver = specification.Basic.Deliver(consumer_tag='travis-ci')
+ deliver = commands.Basic.Deliver(consumer_tag='travis-ci')
header = ContentHeader(body_size=message_len)
body = ContentBody(value=message)
@@ -368,7 +368,7 @@ class ChannelProcessDataEventTests(TestF
message = self.message.encode('utf-8')
message_len = len(message)
- deliver = specification.Basic.Deliver(consumer_tag='travis-ci')
+ deliver = commands.Basic.Deliver(consumer_tag='travis-ci')
header = ContentHeader(body_size=message_len)
body = ContentBody(value=message)
@@ -402,7 +402,7 @@ class ChannelStartConsumingTests(TestFra
message = self.message.encode('utf-8')
message_len = len(message)
- deliver = specification.Basic.Deliver(consumer_tag='travis-ci')
+ deliver = commands.Basic.Deliver(consumer_tag='travis-ci')
header = ContentHeader(body_size=message_len)
body = ContentBody(value=message)
@@ -431,7 +431,7 @@ class ChannelStartConsumingTests(TestFra
message_len = len(message)
def add_inbound():
- deliver = specification.Basic.Deliver(consumer_tag='travis-ci')
+ deliver = commands.Basic.Deliver(consumer_tag='travis-ci')
header = ContentHeader(body_size=message_len)
body = ContentBody(value=message)
@@ -466,11 +466,11 @@ class ChannelStartConsumingTests(TestFra
message = self.message.encode('utf-8')
message_len = len(message)
- deliver_one = specification.Basic.Deliver(
+ deliver_one = commands.Basic.Deliver(
consumer_tag='travis-ci-1')
- deliver_two = specification.Basic.Deliver(
+ deliver_two = commands.Basic.Deliver(
consumer_tag='travis-ci-2')
- deliver_three = specification.Basic.Deliver(
+ deliver_three = commands.Basic.Deliver(
consumer_tag='travis-ci-3')
header = ContentHeader(body_size=message_len)
body = ContentBody(value=message)
Index: AMQPStorm-2.10.7/amqpstorm/tests/unit/channel/test_channel.py
===================================================================
--- AMQPStorm-2.10.7.orig/amqpstorm/tests/unit/channel/test_channel.py
+++ AMQPStorm-2.10.7/amqpstorm/tests/unit/channel/test_channel.py
@@ -1,5 +1,5 @@
from unittest import mock
-from pamqp import specification
+from pamqp import commands
from amqpstorm import Channel
from amqpstorm.basic import Basic
@@ -46,8 +46,8 @@ class ChannelTests(TestFramework):
def test_channel_open(self):
def on_open_ok(_, frame_out):
- self.assertIsInstance(frame_out, specification.Channel.Open)
- channel.rpc.on_frame(specification.Channel.OpenOk())
+ self.assertIsInstance(frame_out, commands.Channel.Open)
+ channel.rpc.on_frame(commands.Channel.OpenOk())
channel = Channel(0, FakeConnection(on_write=on_open_ok), 360)
@@ -58,10 +58,10 @@ class ChannelTests(TestFramework):
def test_channel_close(self):
def on_close_ok(_, frame_out):
- if isinstance(frame_out, specification.Basic.Cancel):
- channel.rpc.on_frame(specification.Basic.CancelOk())
+ if isinstance(frame_out, commands.Basic.Cancel):
+ channel.rpc.on_frame(commands.Basic.CancelOk())
return
- channel.rpc.on_frame(specification.Channel.CloseOk())
+ channel.rpc.on_frame(commands.Channel.CloseOk())
channel = Channel(0, FakeConnection(on_write=on_close_ok), 360)
@@ -80,9 +80,9 @@ class ChannelTests(TestFramework):
def test_channel_close_gracefully_with_queued_error(self):
def on_close_ok(_, frame_out):
- if isinstance(frame_out, specification.Basic.Cancel):
+ if isinstance(frame_out, commands.Basic.Cancel):
raise AMQPChannelError('travis-ci')
- channel.rpc.on_frame(specification.Channel.CloseOk())
+ channel.rpc.on_frame(commands.Channel.CloseOk())
channel = Channel(0, FakeConnection(on_write=on_close_ok), 360)
@@ -126,7 +126,7 @@ class ChannelTests(TestFramework):
def test_channel_confirm_deliveries(self):
def on_select_ok(*_):
- channel.rpc.on_frame(specification.Confirm.SelectOk())
+ channel.rpc.on_frame(commands.Confirm.SelectOk())
connection = FakeConnection(on_write=on_select_ok)
channel = Channel(0, connection, 0.01)
@@ -144,8 +144,8 @@ class ChannelTests(TestFramework):
channel.set_state(channel.OPEN)
channel._consumer_tags = [4, 5, 6]
- close_frame = specification.Channel.Close(reply_code=200,
- reply_text='travis-ci')
+ close_frame = commands.Channel.Close(reply_code=200,
+ reply_text='travis-ci')
# Close Channel.
channel._close_channel(close_frame)
Index: AMQPStorm-2.10.7/amqpstorm/tests/unit/channel0/test_channel0_frame.py
===================================================================
--- AMQPStorm-2.10.7.orig/amqpstorm/tests/unit/channel0/test_channel0_frame.py
+++ AMQPStorm-2.10.7/amqpstorm/tests/unit/channel0/test_channel0_frame.py
@@ -1,5 +1,5 @@
from pamqp.heartbeat import Heartbeat
-from pamqp.specification import Connection
+from pamqp.commands import Connection
import amqpstorm
from amqpstorm import AMQPConnectionError
Index: AMQPStorm-2.10.7/amqpstorm/tests/unit/channel0/test_channel0.py
===================================================================
--- AMQPStorm-2.10.7.orig/amqpstorm/tests/unit/channel0/test_channel0.py
+++ AMQPStorm-2.10.7/amqpstorm/tests/unit/channel0/test_channel0.py
@@ -1,7 +1,7 @@
import platform
from pamqp.heartbeat import Heartbeat
-from pamqp.specification import Connection
+from pamqp.commands import Connection
import amqpstorm
from amqpstorm import AMQPConnectionError
Index: AMQPStorm-2.10.7/amqpstorm/tests/unit/test_compatibility.py
===================================================================
--- AMQPStorm-2.10.7.orig/amqpstorm/tests/unit/test_compatibility.py
+++ AMQPStorm-2.10.7/amqpstorm/tests/unit/test_compatibility.py
@@ -21,11 +21,6 @@ class CompatibilityTests(TestFramework):
x = ''
self.assertFalse(compatibility.is_integer(x))
- @unittest.skipIf(sys.version_info[0] == 3, 'No long obj in Python 3')
- def test_compatibility_long_integer(self):
- x = long(100)
- self.assertTrue(compatibility.is_integer(x))
-
def test_compatibility_normal_string(self):
x = ''
self.assertTrue(compatibility.is_string(x))
@@ -34,34 +29,10 @@ class CompatibilityTests(TestFramework):
x = b''
self.assertTrue(compatibility.is_string(x))
- @unittest.skipIf(sys.version_info[0] == 3, 'No unicode obj in Python 3')
- def test_compatibility_unicode_string(self):
- x = u'Mor, lilla mor, vem är väl som du'
- self.assertTrue(compatibility.is_string(x))
-
def test_compatibility_is_not_string(self):
x = 100
self.assertFalse(compatibility.is_string(x))
- @unittest.skipIf(sys.version_info[0] == 3, 'No unicode obj in Python 3')
- def test_compatibility_is_unicode(self):
- x = u'Mor, lilla mor, vem är väl som du'
- self.assertTrue(compatibility.is_unicode(x))
-
- def test_compatibility_is_not_unicode(self):
- x = ''
- self.assertFalse(compatibility.is_unicode(x))
-
- @unittest.skipIf(sys.version_info[0] == 3, 'No unicode obj in Python 3')
- def test_compatibility_py2_try_utf8_decode(self):
- x = unicode('hello world')
- self.assertEqual(str(x), compatibility.try_utf8_decode(x))
-
- @unittest.skipIf(sys.version_info[0] == 2, 'No bytes decoding in Python 2')
- def test_compatibility_py3_try_utf8_decode(self):
- x = bytes('hello world', 'utf-8')
- self.assertEqual(x.decode('utf-8'), compatibility.try_utf8_decode(x))
-
def test_compatibility_fail_silently_on_utf_16(self):
x = 'hello'.encode('utf-16')
self.assertEqual(compatibility.try_utf8_decode(x), x)
@@ -78,20 +49,7 @@ class CompatibilityTests(TestFramework):
x = dict(hello='world')
self.assertEqual(x, compatibility.try_utf8_decode(x))
- @unittest.skipIf(sys.version_info[0] == 3, 'Python 2.x test')
- def test_compatibility_python_2_x(self):
- self.assertFalse(compatibility.PYTHON3)
-
- @unittest.skipIf(sys.version_info[0] == 2, 'Python 3.x test')
- def test_compatibility_python_3_x(self):
- self.assertTrue(compatibility.PYTHON3)
-
- @unittest.skipIf(sys.version_info[0] == 3, 'Python 2.x test')
- def test_compatibility_python_2_x_range(self):
- self.assertEqual(compatibility.RANGE, xrange)
-
- @unittest.skipIf(sys.version_info[0] == 2, 'Python 3.x test')
- def test_compatibility_python_3_x_range(self):
+ def test_compatibility_python_range(self):
self.assertEqual(compatibility.RANGE, range)
def test_compatibility_ssl_is_set(self):
@@ -201,7 +159,7 @@ class CompatibilitySslTests(unittest.Tes
importlib.reload(compatibility)
def test_compatibility_only_tls_v1_supported(self):
- """This tests mimics the behavior of Python 2.7.8 or earlier that
+ """This test mimics the behavior of earlier versions of Python that
only supported TLS v1 and SSLv23.
"""
restore_tls_v1_2 = sys.modules['ssl'].PROTOCOL_TLSv1_2
Index: AMQPStorm-2.10.7/amqpstorm/tests/unit/connection/test_connection.py
===================================================================
--- AMQPStorm-2.10.7.orig/amqpstorm/tests/unit/connection/test_connection.py
+++ AMQPStorm-2.10.7/amqpstorm/tests/unit/connection/test_connection.py
@@ -2,9 +2,10 @@ import socket
import threading
from unittest import mock
+from pamqp import exceptions as pamqp_exception
from pamqp import frame as pamqp_frame
-from pamqp import specification
-from pamqp.specification import Basic as spec_basic
+from pamqp import commands
+from pamqp.commands import Basic as spec_basic
from amqpstorm import Channel
from amqpstorm import Connection
@@ -81,7 +82,7 @@ class ConnectionTests(TestFramework):
def test_connection_basic_read_buffer(self):
connection = Connection('127.0.0.1', 'guest', 'guest', lazy=True)
- cancel_ok_frame = spec_basic.CancelOk().marshal()
+ cancel_ok_frame = spec_basic.CancelOk(consumer_tag='').marshal()
self.assertEqual(connection._read_buffer(cancel_ok_frame), b'\x00')
@@ -125,7 +126,7 @@ class ConnectionTests(TestFramework):
self.assertEqual(data_in, b'')
self.assertEqual(channel_id, 0)
- self.assertIsInstance(frame_in, specification.Connection.Tune)
+ self.assertIsInstance(frame_in, commands.Connection.Tune)
def test_connection_handle_amqp_frame_none_returns_none(self):
connection = Connection('127.0.0.1', 'guest', 'guest', lazy=True)
@@ -139,7 +140,7 @@ class ConnectionTests(TestFramework):
connection = Connection('127.0.0.1', 'guest', 'guest', lazy=True)
def throw_error(*_):
- raise specification.AMQPFrameError()
+ raise pamqp_exception.AMQPFrameError()
restore_func = pamqp_frame.unmarshal
try:
@@ -302,7 +303,7 @@ class ConnectionTests(TestFramework):
index + 1, connection, 360)
def on_write(frame_out):
- self.assertIsInstance(frame_out, specification.Connection.Close)
+ self.assertIsInstance(frame_out, commands.Connection.Close)
connection._channel0._close_connection_ok()
connection._channel0._write_frame = on_write
@@ -424,8 +425,8 @@ class ConnectionTests(TestFramework):
connection.set_state(connection.OPEN)
def on_open_ok(_, frame_out):
- self.assertIsInstance(frame_out, specification.Channel.Open)
- connection._channels[1].on_frame(specification.Channel.OpenOk())
+ self.assertIsInstance(frame_out, commands.Channel.Open)
+ connection._channels[1].on_frame(commands.Channel.OpenOk())
connection.write_frame = on_open_ok
Index: AMQPStorm-2.10.7/amqpstorm/tests/unit/exchange/test_exchange.py
===================================================================
--- AMQPStorm-2.10.7.orig/amqpstorm/tests/unit/exchange/test_exchange.py
+++ AMQPStorm-2.10.7/amqpstorm/tests/unit/exchange/test_exchange.py
@@ -1,4 +1,4 @@
-from pamqp.specification import Exchange as pamqp_exchange
+from pamqp.commands import Exchange as pamqp_exchange
from amqpstorm.channel import Channel
from amqpstorm.channel import Exchange
Index: AMQPStorm-2.10.7/amqpstorm/tests/unit/test_tx.py
===================================================================
--- AMQPStorm-2.10.7.orig/amqpstorm/tests/unit/test_tx.py
+++ AMQPStorm-2.10.7/amqpstorm/tests/unit/test_tx.py
@@ -1,4 +1,4 @@
-from pamqp import specification
+from pamqp import commands
from amqpstorm.channel import Channel
from amqpstorm.tests.utility import FakeConnection
@@ -9,7 +9,7 @@ from amqpstorm.tx import Tx
class TxTests(TestFramework):
def test_tx_select(self):
def on_tx_select(*_):
- channel.rpc.on_frame(specification.Tx.SelectOk())
+ channel.rpc.on_frame(commands.Tx.SelectOk())
connection = FakeConnection(on_write=on_tx_select)
channel = Channel(0, connection, 0.01)
@@ -21,7 +21,7 @@ class TxTests(TestFramework):
def test_tx_commit(self):
def on_tx_commit(*_):
- channel.rpc.on_frame(specification.Tx.CommitOk())
+ channel.rpc.on_frame(commands.Tx.CommitOk())
connection = FakeConnection(on_write=on_tx_commit)
channel = Channel(0, connection, 0.01)
@@ -33,7 +33,7 @@ class TxTests(TestFramework):
def test_tx_rollback(self):
def on_tx_rollback(*_):
- channel.rpc.on_frame(specification.Tx.RollbackOk())
+ channel.rpc.on_frame(commands.Tx.RollbackOk())
connection = FakeConnection(on_write=on_tx_rollback)
channel = Channel(0, connection, 0.01)
@@ -48,11 +48,11 @@ class TxTests(TestFramework):
def on_tx(*_):
if not self._active_transaction:
- channel.rpc.on_frame(specification.Tx.SelectOk())
+ channel.rpc.on_frame(commands.Tx.SelectOk())
self._active_transaction = True
return
self._active_transaction = False
- channel.rpc.on_frame(specification.Tx.CommitOk())
+ channel.rpc.on_frame(commands.Tx.CommitOk())
connection = FakeConnection(on_write=on_tx)
channel = Channel(0, connection, 0.01)
@@ -68,11 +68,11 @@ class TxTests(TestFramework):
def on_tx(*_):
if not self._active_transaction:
- channel.rpc.on_frame(specification.Tx.SelectOk())
+ channel.rpc.on_frame(commands.Tx.SelectOk())
self._active_transaction = True
return
self._active_transaction = False
- channel.rpc.on_frame(specification.Tx.CommitOk())
+ channel.rpc.on_frame(commands.Tx.CommitOk())
connection = FakeConnection(on_write=on_tx)
channel = Channel(0, connection, 0.01)
@@ -86,10 +86,10 @@ class TxTests(TestFramework):
def test_tx_with_statement_when_raises(self):
def on_tx(_, frame):
- if isinstance(frame, specification.Tx.Select):
- channel.rpc.on_frame(specification.Tx.SelectOk())
+ if isinstance(frame, commands.Tx.Select):
+ channel.rpc.on_frame(commands.Tx.SelectOk())
return
- channel.rpc.on_frame(specification.Tx.CommitOk())
+ channel.rpc.on_frame(commands.Tx.CommitOk())
connection = FakeConnection(on_write=on_tx)
channel = Channel(0, connection, 0.01)
@@ -111,11 +111,11 @@ class TxTests(TestFramework):
def on_tx(*_):
if not self._active_transaction:
- channel.rpc.on_frame(specification.Tx.SelectOk())
+ channel.rpc.on_frame(commands.Tx.SelectOk())
self._active_transaction = True
return
self._active_transaction = False
- channel.rpc.on_frame(specification.Tx.RollbackOk())
+ channel.rpc.on_frame(commands.Tx.RollbackOk())
connection = FakeConnection(on_write=on_tx)
channel = Channel(0, connection, 0.01)
Index: AMQPStorm-2.10.7/amqpstorm/tests/unit/uri_connection/test_uri_connection_exception.py
===================================================================
--- AMQPStorm-2.10.7.orig/amqpstorm/tests/unit/uri_connection/test_uri_connection_exception.py
+++ AMQPStorm-2.10.7/amqpstorm/tests/unit/uri_connection/test_uri_connection_exception.py
@@ -6,18 +6,12 @@ from amqpstorm import AMQPConnectionErro
from amqpstorm import UriConnection
from amqpstorm import compatibility
from amqpstorm.tests.utility import TestFramework
-from amqpstorm.tests.utility import unittest
class UriConnectionExceptionTests(TestFramework):
- @unittest.skipIf(sys.version_info < (3, 3), 'Python 3.x test')
def test_uri_py3_raises_on_invalid_uri(self):
self.assertRaises(ValueError, UriConnection, 'amqp://a:b', {}, True)
- @unittest.skipIf(sys.version_info[0] == 3, 'Python 2.x test')
- def test_uri_py2_raises_on_invalid_uri(self):
- self.assertRaises(ValueError, UriConnection, 'amqp://a:b', {}, True)
-
def test_uri_raises_on_invalid_object(self):
self.assertRaises(AttributeError, UriConnection, None)
self.assertRaises(AttributeError, UriConnection, {})
Index: AMQPStorm-2.10.7/amqpstorm/tx.py
===================================================================
--- AMQPStorm-2.10.7.orig/amqpstorm/tx.py
+++ AMQPStorm-2.10.7/amqpstorm/tx.py
@@ -2,7 +2,7 @@
import logging
-from pamqp import specification
+from pamqp import commands
from amqpstorm.base import Handler
@@ -48,7 +48,7 @@ class Tx(Handler):
:return:
"""
self._tx_active = True
- return self._channel.rpc_request(specification.Tx.Select())
+ return self._channel.rpc_request(commands.Tx.Select())
def commit(self):
"""Commit the current transaction.
@@ -62,7 +62,7 @@ class Tx(Handler):
:return:
"""
self._tx_active = False
- return self._channel.rpc_request(specification.Tx.Commit())
+ return self._channel.rpc_request(commands.Tx.Commit())
def rollback(self):
"""Abandon the current transaction.
@@ -79,4 +79,4 @@ class Tx(Handler):
:return:
"""
self._tx_active = False
- return self._channel.rpc_request(specification.Tx.Rollback())
+ return self._channel.rpc_request(commands.Tx.Rollback())
Index: AMQPStorm-2.10.7/setup.cfg
===================================================================
--- AMQPStorm-2.10.7.orig/setup.cfg
+++ AMQPStorm-2.10.7/setup.cfg
@@ -2,7 +2,7 @@
verbosity = 2
[bdist_wheel]
-universal = 1
+universal = 0
[metadata]
description-file = README.rst
Index: AMQPStorm-2.10.7/setup.py
===================================================================
--- AMQPStorm-2.10.7.orig/setup.py
+++ AMQPStorm-2.10.7/setup.py
@@ -22,7 +22,7 @@ def get_version(rel_path):
setup(
name='AMQPStorm',
- python_requires='>=2.7',
+ python_requires='>=3.6',
version=get_version('amqpstorm/__init__.py'),
description='Thread-safe Python RabbitMQ Client & Management library.',
long_description=open('README.rst').read(),
@@ -32,7 +32,7 @@ setup(
packages=find_packages(),
license='MIT License',
url='https://www.amqpstorm.io',
- install_requires=['pamqp>=2.0.0,<3.0'],
+ install_requires=['pamqp>=3.0'],
extras_require={
'management': ['requests>2'],
'pool': ['amqpstorm-pool']
Index: AMQPStorm-2.10.7/CHANGELOG.rst
===================================================================
--- AMQPStorm-2.10.7.orig/CHANGELOG.rst
+++ AMQPStorm-2.10.7/CHANGELOG.rst
@@ -50,6 +50,11 @@ Version 2.8.5
-------------
- Fixed a potential deadlock when opening a channel with a broken connection [#97] - Thanks mehdigmira.
+Version 3.0.0 Alpha 1
+---------------------
+- This version requires Python 3.6 or newer.
+- Upgraded to pamqp3.
+
Version 2.8.4
-------------
- Fixed a bug in Message.create where it would mutate the properties dict [#92] - Thanks Killerama.