summaryrefslogtreecommitdiff
path: root/cpp/bindings/qmf/tests/python_agent.py
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/bindings/qmf/tests/python_agent.py')
-rw-r--r--cpp/bindings/qmf/tests/python_agent.py31
1 files changed, 23 insertions, 8 deletions
diff --git a/cpp/bindings/qmf/tests/python_agent.py b/cpp/bindings/qmf/tests/python_agent.py
index 1003ce875a..e22c80a813 100644
--- a/cpp/bindings/qmf/tests/python_agent.py
+++ b/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)