diff options
| author | Gordon Sim <gsim@apache.org> | 2013-08-13 15:06:54 +0000 |
|---|---|---|
| committer | Gordon Sim <gsim@apache.org> | 2013-08-13 15:06:54 +0000 |
| commit | d30253ae61bb81090ba43b055094dbe5a6d7c98d (patch) | |
| tree | b63d2b8f0277a8297937e6cac6a35b9e49fc9738 /qpid/tests/src | |
| parent | 144f3c698bdddf22509691a4f285305e9fd83291 (diff) | |
| download | qpid-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')
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", '#') |
