summaryrefslogtreecommitdiff
path: root/qpid/python
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2008-03-11 12:24:46 +0000
committerGordon Sim <gsim@apache.org>2008-03-11 12:24:46 +0000
commitaab8bdfcf3d279758124fc01213f33563a73040f (patch)
tree4ddcb26b28832819ea723860340f684445c30fb4 /qpid/python
parentbab481852390d5d23a9d4db2177250762e98f84c (diff)
downloadqpid-python-aab8bdfcf3d279758124fc01213f33563a73040f.tar.gz
Fixed broker to take application headers from final format message-properties struct
Fixed headers exchange to recognise x-match even if sent as a string other than 32 bit sized Converted remaining python exchange tests git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@635898 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/python')
-rw-r--r--qpid/python/cpp_failing_0-10.txt8
-rw-r--r--qpid/python/tests_0-10/exchange.py37
2 files changed, 20 insertions, 25 deletions
diff --git a/qpid/python/cpp_failing_0-10.txt b/qpid/python/cpp_failing_0-10.txt
index 8930f6e05b..8b0e11b3f0 100644
--- a/qpid/python/cpp_failing_0-10.txt
+++ b/qpid/python/cpp_failing_0-10.txt
@@ -10,14 +10,6 @@ tests_0-10.alternate_exchange.AlternateExchangeTests.test_delete_while_used_by_e
tests_0-10.alternate_exchange.AlternateExchangeTests.test_delete_while_used_by_queue
tests_0-10.alternate_exchange.AlternateExchangeTests.test_queue_delete
tests_0-10.alternate_exchange.AlternateExchangeTests.test_unroutable
-tests_0-10.exchange.DeclareMethodPassiveFieldNotFoundRuleTests.test
-tests_0-10.exchange.ExchangeTests.testHeadersBindNoMatchArg
-tests_0-10.exchange.HeadersExchangeTests.testMatchAll
-tests_0-10.exchange.HeadersExchangeTests.testMatchAny
-tests_0-10.exchange.MiscellaneousErrorsTests.testDifferentDeclaredType
-tests_0-10.exchange.MiscellaneousErrorsTests.testTypeNotKnown
-tests_0-10.exchange.RecommendedTypesRuleTests.testHeaders
-tests_0-10.exchange.RequiredInstancesRuleTests.testAmqMatch
tests_0-10.dtx.DtxTests.test_bad_resume
tests_0-10.dtx.DtxTests.test_end
tests_0-10.dtx.DtxTests.test_end_suspend_and_fail
diff --git a/qpid/python/tests_0-10/exchange.py b/qpid/python/tests_0-10/exchange.py
index 151807b045..be4f72c74c 100644
--- a/qpid/python/tests_0-10/exchange.py
+++ b/qpid/python/tests_0-10/exchange.py
@@ -27,6 +27,7 @@ import Queue, logging, traceback
from qpid.testlib import TestBase010
from qpid.datatypes import Message
from qpid.client import Closed
+from qpid.session import SessionException
class TestHelper(TestBase010):
@@ -48,6 +49,11 @@ class TestHelper(TestBase010):
def createMessage(self, key="", body=""):
return Message(self.session.delivery_properties(routing_key=key), body)
+ def getApplicationHeaders(self, msg):
+ for h in msg.headers:
+ if hasattr(h, 'application_headers'): return getattr(h, 'application_headers')
+ return None
+
def assertPublishGet(self, queue, exchange="", routing_key="", properties=None):
"""
Publish to exchange and assert queue.get() returns the same message.
@@ -59,7 +65,7 @@ class TestHelper(TestBase010):
msg = queue.get(timeout=1)
self.assertEqual(body, msg.body)
if (properties):
- self.assertEqual(properties, msg.content['application_headers'])
+ self.assertEqual(properties, self.getApplicationHeaders(msg))
def assertPublishConsume(self, queue="", exchange="", routing_key="", properties=None):
"""
@@ -294,8 +300,8 @@ class DeclareMethodPassiveFieldNotFoundRuleTests(TestHelper):
try:
self.session.exchange_declare(exchange="humpty_dumpty", passive=True)
self.fail("Expected 404 for passive declaration of unknown exchange.")
- except Closed, e:
- self.assertChannelException(404, e.args[0])
+ except SessionException, e:
+ self.assertEquals(404, e.args[0].error_code)
class DeclareMethodDurableFieldSupportRuleTests(TestHelper):
@@ -352,7 +358,8 @@ class HeadersExchangeTests(TestHelper):
self.assertPublishGet(self.q, exchange="amq.match", properties=headers)
def myBasicPublish(self, headers):
- self.session.message_transfer(destination="amq.match", content=Content("foobar", properties={'application_headers':headers}))
+ mp=self.session.message_properties(application_headers=headers)
+ self.session.message_transfer(destination="amq.match", message=Message(mp, "foobar"))
def testMatchAll(self):
self.session.exchange_bind(queue="q", exchange="amq.match", arguments={ 'x-match':'all', "name":"fred", "age":3})
@@ -386,21 +393,17 @@ class MiscellaneousErrorsTests(TestHelper):
try:
self.session.exchange_declare(exchange="test_type_not_known_exchange", type="invalid_type")
self.fail("Expected 503 for declaration of unknown exchange type.")
- except Closed, e:
- self.assertConnectionException(503, e.args[0])
+ except SessionException, e:
+ self.assertEquals(503, e.args[0].error_code)
def testDifferentDeclaredType(self):
- self.session.exchange_declare(exchange="test_different_declared_type_exchange", type="direct")
+ self.exchange_declare(exchange="test_different_declared_type_exchange", type="direct")
try:
- self.session.exchange_declare(exchange="test_different_declared_type_exchange", type="topic")
+ session = self.conn.session("alternate", 2)
+ session.exchange_declare(exchange="test_different_declared_type_exchange", type="topic")
self.fail("Expected 530 for redeclaration of exchange with different type.")
- except Closed, e:
- self.assertConnectionException(530, e.args[0])
- #cleanup
- other = self.connect()
- c2 = other.channel(1)
- c2.session_open()
- c2.exchange_delete(exchange="test_different_declared_type_exchange")
+ except SessionException, e:
+ self.assertEquals(530, e.args[0].error_code)
class ExchangeTests(TestHelper):
def testHeadersBindNoMatchArg(self):
@@ -408,5 +411,5 @@ class ExchangeTests(TestHelper):
try:
self.session.exchange_bind(queue="q", exchange="amq.match", arguments={"name":"fred" , "age":3} )
self.fail("Expected failure for missing x-match arg.")
- except Closed, e:
- self.assertConnectionException(541, e.args[0])
+ except SessionException, e:
+ self.assertEquals(541, e.args[0].error_code)