summaryrefslogtreecommitdiff
path: root/qpid/tests/src
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2013-08-13 15:06:54 +0000
committerGordon Sim <gsim@apache.org>2013-08-13 15:06:54 +0000
commitd30253ae61bb81090ba43b055094dbe5a6d7c98d (patch)
treeb63d2b8f0277a8297937e6cac6a35b9e49fc9738 /qpid/tests/src
parent144f3c698bdddf22509691a4f285305e9fd83291 (diff)
downloadqpid-python-d30253ae61bb81090ba43b055094dbe5a6d7c98d.tar.gz
QPID-4711: translate between structured content in AMQP 0-10 and 1.0
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1513537 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/tests/src')
-rw-r--r--qpid/tests/src/py/qpid_tests/broker_1_0/__init__.py3
-rw-r--r--qpid/tests/src/py/qpid_tests/broker_1_0/general.py10
-rw-r--r--qpid/tests/src/py/qpid_tests/broker_1_0/legacy_exchanges.py10
-rw-r--r--qpid/tests/src/py/qpid_tests/broker_1_0/selector.py10
-rw-r--r--qpid/tests/src/py/qpid_tests/broker_1_0/translation.py87
5 files changed, 95 insertions, 25 deletions
diff --git a/qpid/tests/src/py/qpid_tests/broker_1_0/__init__.py b/qpid/tests/src/py/qpid_tests/broker_1_0/__init__.py
index 8088ddd95f..5ebbb4c651 100644
--- a/qpid/tests/src/py/qpid_tests/broker_1_0/__init__.py
+++ b/qpid/tests/src/py/qpid_tests/broker_1_0/__init__.py
@@ -19,6 +19,7 @@
# under the License.
#
+from general import *
from legacy_exchanges import *
from selector import *
-from general import *
+from translation import *
diff --git a/qpid/tests/src/py/qpid_tests/broker_1_0/general.py b/qpid/tests/src/py/qpid_tests/broker_1_0/general.py
index 085acf8405..b3ff1df5a1 100644
--- a/qpid/tests/src/py/qpid_tests/broker_1_0/general.py
+++ b/qpid/tests/src/py/qpid_tests/broker_1_0/general.py
@@ -18,18 +18,12 @@
#
from qpid.tests.messaging.implementation import *
-from qpid.tests.messaging import Base
+from qpid.tests.messaging import VersionTest
-class GeneralTests (Base):
+class GeneralTests (VersionTest):
"""
Miscellaneous tests for core AMQP 1.0 messaging behaviour.
"""
- def setup_connection(self):
- return Connection.establish(self.broker, **self.connection_options())
-
- def setup_session(self):
- return self.conn.session()
-
def test_request_response(self):
snd_request = self.ssn.sender("#")
rcv_response = self.ssn.receiver("#")
diff --git a/qpid/tests/src/py/qpid_tests/broker_1_0/legacy_exchanges.py b/qpid/tests/src/py/qpid_tests/broker_1_0/legacy_exchanges.py
index d2b8c643bd..024a1da689 100644
--- a/qpid/tests/src/py/qpid_tests/broker_1_0/legacy_exchanges.py
+++ b/qpid/tests/src/py/qpid_tests/broker_1_0/legacy_exchanges.py
@@ -18,19 +18,13 @@
#
from qpid.tests.messaging.implementation import *
-from qpid.tests.messaging import Base
+from qpid.tests.messaging import VersionTest
-class LegacyExchangeTests (Base):
+class LegacyExchangeTests (VersionTest):
"""
Tests for the legacy (i.e. pre 1.0) AMQP exchanges and the filters
defined for them and registered for AMQP 1.0.
"""
- def setup_connection(self):
- return Connection.establish(self.broker, **self.connection_options())
-
- def setup_session(self):
- return self.conn.session()
-
def test_fanout(self):
msgs = [Message(content=s, subject = s) for s in ['a','b','c','d']]
diff --git a/qpid/tests/src/py/qpid_tests/broker_1_0/selector.py b/qpid/tests/src/py/qpid_tests/broker_1_0/selector.py
index 696fbf01c3..ac2bbd8db3 100644
--- a/qpid/tests/src/py/qpid_tests/broker_1_0/selector.py
+++ b/qpid/tests/src/py/qpid_tests/broker_1_0/selector.py
@@ -18,19 +18,13 @@
#
from qpid.tests.messaging.implementation import *
-from qpid.tests.messaging import Base
+from qpid.tests.messaging import VersionTest
-class SelectorTests (Base):
+class SelectorTests (VersionTest):
"""
Tests for the selector filter registered for AMQP 1.0 under the
apache namespace.
"""
- def setup_connection(self):
- return Connection.establish(self.broker, **self.connection_options())
-
- def setup_session(self):
- return self.conn.session()
-
def basic_selection_test(self, node):
properties = [(1, 'red','dog'), (2, 'black', 'cat'), (3, 'red', 'squirrel'), (4, 'grey', 'squirrel')]
msgs = [Message(content="%s.%s" % (colour, creature), properties={'sequence':sequence,'colour':colour}) for sequence, colour, creature in properties]
diff --git a/qpid/tests/src/py/qpid_tests/broker_1_0/translation.py b/qpid/tests/src/py/qpid_tests/broker_1_0/translation.py
new file mode 100644
index 0000000000..a6394fb8c5
--- /dev/null
+++ b/qpid/tests/src/py/qpid_tests/broker_1_0/translation.py
@@ -0,0 +1,87 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+from qpid.tests.messaging.implementation import *
+from qpid.tests.messaging import VersionTest
+
+class TranslationTests (VersionTest):
+ """
+ Testing translation of messages between 1.0 and 0-10
+ """
+ def send_receive_messages(self, msgs, send_version, receive_version, address):
+ rcon = self.create_connection(receive_version, True)
+ rcv = rcon.session().receiver(address)
+
+ scon = self.create_connection(send_version, True)
+ snd = scon.session().sender(rcv.source)
+
+ for m in msgs: snd.send(m)
+
+ for expected in msgs:
+ msg = rcv.fetch()
+ assert msg.content == expected.content, (msg.content, expected.content)
+ assert msg.subject == expected.subject, (msg.subject, expected.subject)
+ self.ssn.acknowledge(msg)
+ scon.close()
+ rcon.close()
+
+ def send_receive(self, send_version, receive_version, address):
+ self.send_receive_messages([Message(content=s, subject = s) for s in ['a','b','c','d']], send_version, receive_version, address)
+
+ def send_receive_map(self, send_version, receive_version, address):
+ self.send_receive_messages([Message(content={'s':'abc','i':10})], send_version, receive_version, address)
+
+ def send_receive_list(self, send_version, receive_version, address):
+ self.send_receive_messages([Message(content=['a', 1, 'c'])], send_version, receive_version, address)
+
+ def test_translation_queue_1(self):
+ self.send_receive("amqp0-10", "amqp1.0", '#')
+
+ def test_translation_queue_2(self):
+ self.send_receive("amqp1.0", "amqp0-10", '#')
+
+ def test_translation_exchange_1(self):
+ self.send_receive("amqp0-10", "amqp1.0", 'amq.fanout')
+
+ def test_translation_exchange_2(self):
+ self.send_receive("amqp1.0", "amqp0-10", 'amq.fanout')
+
+ def test_send_receive_queue_1(self):
+ self.send_receive("amqp1.0", "amqp1.0", '#')
+
+ def test_send_receive_queue_2(self):
+ self.send_receive("amqp0-10", "amqp0-10", '#')
+
+ def test_send_receive_exchange_1(self):
+ self.send_receive("amqp1.0", "amqp1.0", 'amq.fanout')
+
+ def test_send_receive_exchange_2(self):
+ self.send_receive("amqp0-10", "amqp0-10", 'amq.fanout')
+
+ def test_translate_map_1(self):
+ self.send_receive_map("amqp0-10", "amqp1.0", '#')
+
+ def test_translate_map_2(self):
+ self.send_receive_map("amqp1.0", "amqp0-10", '#')
+
+ def test_translate_list_1(self):
+ self.send_receive_list("amqp0-10", "amqp1.0", '#')
+
+ def test_translate_list_2(self):
+ self.send_receive_list("amqp1.0", "amqp0-10", '#')