summaryrefslogtreecommitdiff
path: root/python/qpid/spec.py
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2007-06-05 15:54:22 +0000
committerGordon Sim <gsim@apache.org>2007-06-05 15:54:22 +0000
commitdd86a8562275d411ba6af54b6651154b6abc08ef (patch)
treee7bd5e5ed838f041857e2f77461ad3f5759448e7 /python/qpid/spec.py
parentabf98a7ed4bd2d08d88b7f4f5d753b2e6d6dceb2 (diff)
downloadqpid-python-dd86a8562275d411ba6af54b6651154b6abc08ef.tar.gz
Some tests and fixes for dtx preview.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@544522 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'python/qpid/spec.py')
-rw-r--r--python/qpid/spec.py18
1 files changed, 10 insertions, 8 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: