diff options
| author | Kenneth Anthony Giusti <kgiusti@apache.org> | 2010-04-27 18:45:31 +0000 |
|---|---|---|
| committer | Kenneth Anthony Giusti <kgiusti@apache.org> | 2010-04-27 18:45:31 +0000 |
| commit | ecfada63d7d14f442e0c6590b272e6d4de6e87b1 (patch) | |
| tree | d77ac115de872934426fbe1856039a4f2e55b408 /qpid/cpp/bindings/qmf/tests/python_agent.py | |
| parent | 93e0f5c0349f42f454d596955ab84d563c55befb (diff) | |
| download | qpid-python-ecfada63d7d14f442e0c6590b272e6d4de6e87b1.tar.gz | |
QPID-2556: add tests for maps and lists in method args and events.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@938600 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/bindings/qmf/tests/python_agent.py')
| -rw-r--r-- | qpid/cpp/bindings/qmf/tests/python_agent.py | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/qpid/cpp/bindings/qmf/tests/python_agent.py b/qpid/cpp/bindings/qmf/tests/python_agent.py index 1003ce875a..e22c80a813 100644 --- a/qpid/cpp/bindings/qmf/tests/python_agent.py +++ b/qpid/cpp/bindings/qmf/tests/python_agent.py @@ -58,9 +58,11 @@ class Model: _method.add_argument(qmf.SchemaArgument("test", qmf.TYPE_SSTR, {"dir":qmf.DIR_IN})) self.parent_class.add_method(_method) - _method = qmf.SchemaMethod("set_map", {"desc":"Set the map value in the object"}) - _method.add_argument(qmf.SchemaArgument("value", qmf.TYPE_MAP, {"dir":qmf.DIR_IN})) - _method.add_argument(qmf.SchemaArgument("output", qmf.TYPE_MAP, {"dir":qmf.DIR_OUT})) + _method = qmf.SchemaMethod("test_map_list", {"desc":"A method call that accepts map and list arguments."}) + _method.add_argument(qmf.SchemaArgument("inMap", qmf.TYPE_MAP, {"dir":qmf.DIR_IN})) + _method.add_argument(qmf.SchemaArgument("inList", qmf.TYPE_LIST, {"dir":qmf.DIR_IN})) + _method.add_argument(qmf.SchemaArgument("outMap", qmf.TYPE_MAP, {"dir":qmf.DIR_OUT})) + _method.add_argument(qmf.SchemaArgument("outList", qmf.TYPE_LIST, {"dir":qmf.DIR_OUT})) self.parent_class.add_method(_method) _method = qmf.SchemaMethod("set_short_string", {"desc":"Set the short string value in the object"}) @@ -86,7 +88,8 @@ class Model: self.event_class = qmf.SchemaEventClass("org.apache.qpid.qmf", "test_event", qmf.SEV_NOTICE) self.event_class.add_argument(qmf.SchemaArgument("uint32val", qmf.TYPE_UINT32)) self.event_class.add_argument(qmf.SchemaArgument("strval", qmf.TYPE_LSTR)) - + self.event_class.add_argument(qmf.SchemaArgument("mapval", qmf.TYPE_MAP)) + self.event_class.add_argument(qmf.SchemaArgument("listval", qmf.TYPE_LIST)) def register(self, agent): agent.register_class(self.parent_class) @@ -122,10 +125,20 @@ class App(qmf.AgentHandler): if name == "echo": self._agent.method_response(context, 0, "OK", args) - elif name == "set_map": - map = args['value'] - map['added'] = "Added Text" - args['output'] = map + elif name == "test_map_list": + # build the output map from the input map, accessing each key, + # value to ensure they are encoded/decoded + outMap = {} + for key,value in args['inMap'].items(): + outMap[key] = value + + # same deal for the output list + outList = [] + for value in args['inList']: + outList.append(value) + + args['outMap'] = outMap + args['outList'] = outList self._agent.method_response(context, 0, "OK", args) elif name == "set_numerics": @@ -149,6 +162,8 @@ class App(qmf.AgentHandler): event = qmf.QmfEvent(self._model.event_class) event.uint32val = self._parent.get_attr("uint32val") event.strval = "Unused" + event.mapval = self._parent.get_attr("mapval") + event.listval = self._parent["listval"] self._agent.raise_event(event) |
