summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/qpid/client.py2
-rw-r--r--python/qpid/reference.py2
-rw-r--r--python/tests/message.py11
3 files changed, 9 insertions, 6 deletions
diff --git a/python/qpid/client.py b/python/qpid/client.py
index e14166c885..f6a540c7ec 100644
--- a/python/qpid/client.py
+++ b/python/qpid/client.py
@@ -111,6 +111,8 @@ class ClientDelegate(Delegate):
self.client.started.set()
def message_transfer(self, ch, msg):
+ if isinstance(msg.body, ReferenceId):
+ msg.reference = ch.references.get(msg.body.id)
self.client.queue(msg.destination).put(msg)
def message_open(self, ch, msg):
diff --git a/python/qpid/reference.py b/python/qpid/reference.py
index d357560390..48ecb67656 100644
--- a/python/qpid/reference.py
+++ b/python/qpid/reference.py
@@ -111,7 +111,7 @@ class References:
self.get(id).close()
self.lock.acquire()
try:
- del map[id]
+ self.map.pop(id)
finally:
self.lock.release()
diff --git a/python/tests/message.py b/python/tests/message.py
index bab596974a..8da9978792 100644
--- a/python/tests/message.py
+++ b/python/tests/message.py
@@ -455,7 +455,8 @@ class MessageTests(TestBase):
msg = queue.get(timeout=1)
self.assertTrue(isinstance(msg.body, ReferenceId))
- self.assertEquals(data, ch2.references.get(msg.body.id).get_complete())
+ self.assertTrue(msg.reference)
+ self.assertEquals(data, msg.reference.get_complete())
def test_reference_completion(self):
"""
@@ -539,15 +540,15 @@ class MessageTests(TestBase):
#inline or by reference in any combination
if isinstance(msg1.body, ReferenceId):
- self.assertEquals("second message", channel.references.get(msg1.body.id).get_complete())
+ self.assertEquals("second message", msg1.reference.get_complete())
if isinstance(msg2.body, ReferenceId):
if msg1.body != msg2.body:
- self.assertEquals("second message", channel.references.get(msg2.body.id).get_complete())
+ self.assertEquals("second message", msg2.reference.get_complete())
#else ok, as same ref as msg1
else:
self.assertEquals("second message", msg1.body)
if isinstance(msg2.body, ReferenceId):
- self.assertEquals("second message", channel.references.get(msg2.body.id).get_complete())
+ self.assertEquals("second message", msg2.reference.get_complete())
else:
self.assertEquals("second message", msg2.body)
@@ -644,7 +645,7 @@ class MessageTests(TestBase):
def assertDataEquals(self, channel, msg, expected):
if isinstance(msg.body, ReferenceId):
- data = channel.references.get(msg.body.id).get_complete()
+ data = msg.reference.get_complete()
else:
data = msg.body
self.assertEquals(expected, data)