diff options
Diffstat (limited to 'python/qpid')
| -rw-r--r-- | python/qpid/spec.py | 18 | ||||
| -rw-r--r-- | python/qpid/testlib.py | 6 |
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) |
