diff options
author | Rafael H. Schloming <rhs@apache.org> | 2009-08-11 15:40:19 +0000 |
---|---|---|
committer | Rafael H. Schloming <rhs@apache.org> | 2009-08-11 15:40:19 +0000 |
commit | d22ac4bbbd52fc8cbf80f864c49c904b0b24a529 (patch) | |
tree | 1f140400747e507d88d69695046e13a5efcf0e52 /python/qpid/generator.py | |
parent | 0fc88ad654ed1dabf14c489ed5920b440a7fc6a2 (diff) | |
download | qpid-python-d22ac4bbbd52fc8cbf80f864c49c904b0b24a529.tar.gz |
- removed old and redundent tests
- removed old test harness in favor of qpid-python-test
- modified qpid-python-test to support "skipped" tests, these are
tests that failed due to an anticipated environmental reason such
as the broker is not running or it is the wrong version
- modified the qpid-python-test harness to exit with appropriate
error codes based on the test results
- modified the python clients to report version mismatches rather
than framing errors
- made qpid_config provide variables for 0-8, 0-9, and 0-10 versions
of the spec
- modified the 0-10 client to directly codegen classes
- added new 0-10 framing layer based on push parsing rather than pull
parsing
- added numerous framing tests
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@803168 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'python/qpid/generator.py')
-rw-r--r-- | python/qpid/generator.py | 48 |
1 files changed, 22 insertions, 26 deletions
diff --git a/python/qpid/generator.py b/python/qpid/generator.py index 729425d6a3..02d11e5005 100644 --- a/python/qpid/generator.py +++ b/python/qpid/generator.py @@ -19,42 +19,38 @@ import sys -from spec010 import Control +from ops import * -def METHOD(module, inst): - method = lambda self, *args, **kwargs: self.invoke(inst, args, kwargs) +def METHOD(module, op): + method = lambda self, *args, **kwargs: self.invoke(op, args, kwargs) if sys.version_info[:2] > (2, 3): - method.__name__ = str(inst.pyname) - method.__doc__ = str(inst.pydoc) + method.__name__ = op.__name__ + method.__doc__ = op.__doc__ method.__module__ = module return method -def generate(spec, module, predicate=lambda x: True): - dict = {"spec": spec} +def generate(module, operations): + dict = {} - for name, enum in spec.enums.items(): - dict[name] = enum + for name, enum in ENUMS.items(): + if isinstance(name, basestring): + dict[name] = enum - for name, st in spec.structs_by_name.items(): - dict[name] = METHOD(module, st) + for name, op in COMPOUND.items(): + if isinstance(name, basestring): + dict[name] = METHOD(module, op) - for st in spec.structs.values(): - dict[st.name] = METHOD(module, st) - - for name, inst in spec.instructions.items(): - if predicate(inst): - dict[name] = METHOD(module, inst) + for name, op in operations.items(): + if isinstance(name, basestring): + dict[name] = METHOD(module, op) return dict -def invoker(name, spec, predicate=lambda x: True): - return type("%s_%s_%s" % (name, spec.major, spec.minor), - (), generate(spec, invoker.__module__, predicate)) +def invoker(name, operations): + return type(name, (), generate(invoker.__module__, operations)) -def command_invoker(spec): - is_command = lambda cmd: cmd.track == spec["track.command"].value - return invoker("CommandInvoker", spec, is_command) +def command_invoker(): + return invoker("CommandInvoker", COMMANDS) -def control_invoker(spec): - is_control = lambda inst: isinstance(inst, Control) - return invoker("ControlInvoker", spec, is_control) +def control_invoker(): + return invoker("ControlInvoker", CONTROLS) |