summaryrefslogtreecommitdiff
path: root/python/qpid
diff options
context:
space:
mode:
Diffstat (limited to 'python/qpid')
-rw-r--r--python/qpid/spec.py18
-rw-r--r--python/qpid/testlib.py6
2 files changed, 13 insertions, 11 deletions
diff --git a/python/qpid/spec.py b/python/qpid/spec.py
index bb0e7eb58c..f8e37737e2 100644
--- a/python/qpid/spec.py
+++ b/python/qpid/spec.py
@@ -309,8 +309,10 @@ def load(specfile, *errata):
for nd in root["constant"]:
const = Constant(spec, pythonize(nd["@name"]), int(nd["@value"]),
nd.get("@class"), get_docs(nd))
- spec.constants.add(const)
-
+ try:
+ spec.constants.add(const)
+ except ValueError, e:
+ print "Warning:", e
# domains are typedefs
for nd in root["domain"]:
spec.domains.add(Domain(spec, nd.index(), pythonize(nd["@name"]),
@@ -320,18 +322,20 @@ def load(specfile, *errata):
# classes
for c_nd in root["class"]:
cname = pythonize(c_nd["@name"])
- if root == spec_root:
+ if spec.classes.byname.has_key(cname):
+ klass = spec.classes.byname[cname]
+ else:
klass = Class(spec, cname, int(c_nd["@index"]), c_nd["@handler"],
get_docs(c_nd))
spec.classes.add(klass)
- else:
- klass = spec.classes.byname[cname]
added_methods = []
load_fields(c_nd, klass.fields, spec.domains.byname)
for m_nd in c_nd["method"]:
mname = pythonize(m_nd["@name"])
- if root == spec_root:
+ if klass.methods.byname.has_key(mname):
+ meth = klass.methods.byname[mname]
+ else:
meth = Method(klass, mname,
int(m_nd["@index"]),
m_nd.get_bool("@content", False),
@@ -341,8 +345,6 @@ def load(specfile, *errata):
get_docs(m_nd))
klass.methods.add(meth)
added_methods.append(meth)
- else:
- meth = klass.methods.byname[mname]
load_fields(m_nd, meth.fields, spec.domains.byname)
# resolve the responses
for m in added_methods:
diff --git a/python/qpid/testlib.py b/python/qpid/testlib.py
index 48a6755d25..fa904ff029 100644
--- a/python/qpid/testlib.py
+++ b/python/qpid/testlib.py
@@ -99,7 +99,7 @@ Options:
self.specfile = "0-8"
self.errata = []
try:
- opts, self.tests = getopt(args, "s:b:h?dvi:I:", ["help", "spec", "server", "verbose", "ignore", "ignore-file"])
+ opts, self.tests = getopt(args, "s:e:b:h?dvi:I:", ["help", "spec", "errata=", "server", "verbose", "ignore", "ignore-file"])
except GetoptError, e:
self._die(str(e))
for opt, value in opts:
@@ -278,14 +278,14 @@ class TestBase(unittest.TestCase):
self.assertPublishGet(self.consume(queue), exchange, routing_key, properties)
def assertChannelException(self, expectedCode, message):
- if not isinstance(message, Message): self.fail("expected channel_close method")
+ if not isinstance(message, Message): self.fail("expected channel_close method, got %s" % (message))
self.assertEqual("channel", message.method.klass.name)
self.assertEqual("close", message.method.name)
self.assertEqual(expectedCode, message.reply_code)
def assertConnectionException(self, expectedCode, message):
- if not isinstance(message, Message): self.fail("expected connection_close method")
+ if not isinstance(message, Message): self.fail("expected connection_close method, got %s" % (message))
self.assertEqual("connection", message.method.klass.name)
self.assertEqual("close", message.method.name)
self.assertEqual(expectedCode, message.reply_code)