summaryrefslogtreecommitdiff
path: root/python/qmf2/tests/basic_method.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/qmf2/tests/basic_method.py')
-rw-r--r--python/qmf2/tests/basic_method.py117
1 files changed, 81 insertions, 36 deletions
diff --git a/python/qmf2/tests/basic_method.py b/python/qmf2/tests/basic_method.py
index a1847efee9..745fa5d83c 100644
--- a/python/qmf2/tests/basic_method.py
+++ b/python/qmf2/tests/basic_method.py
@@ -148,7 +148,8 @@ class _agentApp(Thread):
raise Exception("Unexpected method call parameters")
if mc.get_name() == "set_meth":
- obj = self.agent.get_object(mc.get_object_id())
+ obj = self.agent.get_object(mc.get_object_id(),
+ mc.get_schema_id())
if obj is None:
error_info = QmfData.create({"code": -2,
"description":
@@ -164,7 +165,8 @@ class _agentApp(Thread):
self.agent.method_response(wi.get_handle(),
{"code" : 0})
elif mc.get_name() == "a_method":
- obj = self.agent.get_object(mc.get_object_id())
+ obj = self.agent.get_object(mc.get_object_id(),
+ mc.get_schema_id())
if obj is None:
error_info = QmfData.create({"code": -3,
"description":
@@ -246,38 +248,82 @@ class BaseTest(unittest.TestCase):
agent = self.console.find_agent(aname, timeout=3)
self.assertTrue(agent and agent.get_name() == aname)
- query = QmfQuery.create_predicate(QmfQuery.TARGET_OBJECT,
- [QmfQuery.AND,
- [QmfQuery.EXISTS, [QmfQuery.QUOTE, SchemaClassId.KEY_PACKAGE]],
- [QmfQuery.EQ, SchemaClassId.KEY_PACKAGE, [QmfQuery.QUOTE, "MyPackage"]]])
+ query = QmfQuery.create_wildcard(QmfQuery.TARGET_SCHEMA_ID)
+
+ sid_list = self.console.do_query(agent, query)
+ self.assertTrue(sid_list and len(sid_list) == 1)
+ for sid in sid_list:
+ t_params = {QmfData.KEY_SCHEMA_ID: sid}
+ query = QmfQuery.create_wildcard(QmfQuery.TARGET_OBJECT,
+ _target_params=t_params)
+ obj_list = self.console.do_query(agent, query)
+ self.assertTrue(len(obj_list) == 2)
+ for obj in obj_list:
+ mr = obj.invoke_method( "set_meth", {"arg_int": -99,
+ "arg_str": "Now set!"},
+ _timeout=3)
+ self.assertTrue(isinstance(mr, qmf2.console.MethodResult))
+ self.assertTrue(mr.succeeded())
+ self.assertTrue(mr.get_argument("code") == 0)
+
+ self.assertTrue(obj.get_value("method_call_count") == 0)
+ self.assertTrue(obj.get_value("set_string") == "UNSET")
+ self.assertTrue(obj.get_value("set_int") == 0)
+
+ obj.refresh()
+
+ self.assertTrue(obj.get_value("method_call_count") == 1)
+ self.assertTrue(obj.get_value("set_string") == "Now set!")
+ self.assertTrue(obj.get_value("set_int") == -99)
- obj_list = self.console.do_query(agent, query)
- self.assertTrue(len(obj_list) == 2)
- for obj in obj_list:
- mr = obj.invoke_method( "set_meth", {"arg_int": -99,
- "arg_str": "Now set!"},
- _timeout=3)
- self.assertTrue(isinstance(mr, qmf2.console.MethodResult))
- self.assertTrue(mr.succeeded())
- self.assertTrue(mr.get_argument("code") == 0)
+ self.console.destroy(10)
- self.assertTrue(obj.get_value("method_call_count") == 0)
- self.assertTrue(obj.get_value("set_string") == "UNSET")
- self.assertTrue(obj.get_value("set_int") == 0)
- obj.refresh()
+ def test_bad_method_schema(self):
+ # create console
+ # find agents
+ # synchronous query for all objects with schema
+ # invalid method call on each object
+ # - should throw a ValueError
+ self.notifier = _testNotifier()
+ self.console = qmf2.console.Console(notifier=self.notifier,
+ agent_timeout=3)
+ self.conn = qpid.messaging.Connection(self.broker.host,
+ self.broker.port,
+ self.broker.user,
+ self.broker.password)
+ self.conn.connect()
+ self.console.add_connection(self.conn)
- self.assertTrue(obj.get_value("method_call_count") == 1)
- self.assertTrue(obj.get_value("set_string") == "Now set!")
- self.assertTrue(obj.get_value("set_int") == -99)
+ for aname in ["agent1", "agent2"]:
+ agent = self.console.find_agent(aname, timeout=3)
+ self.assertTrue(agent and agent.get_name() == aname)
+ query = QmfQuery.create_wildcard(QmfQuery.TARGET_SCHEMA_ID)
+
+ sid_list = self.console.do_query(agent, query)
+ self.assertTrue(sid_list and len(sid_list) == 1)
+ for sid in sid_list:
+
+ t_params = {QmfData.KEY_SCHEMA_ID: sid}
+ query = QmfQuery.create_predicate(QmfQuery.TARGET_OBJECT,
+ [QmfQuery.TRUE],
+ _target_params=t_params)
+
+ obj_list = self.console.do_query(agent, query)
+ self.assertTrue(len(obj_list) == 2)
+ for obj in obj_list:
+ self.failUnlessRaises(ValueError,
+ obj.invoke_method,
+ "unknown_meth",
+ {"arg1": -99, "arg2": "Now set!"},
+ _timeout=3)
self.console.destroy(10)
-
- def test_bad_method(self):
+ def test_bad_method_no_schema(self):
# create console
# find agents
- # synchronous query for all objects in schema
+ # synchronous query for all objects with no schema
# invalid method call on each object
# - should throw a ValueError
self.notifier = _testNotifier()
@@ -294,21 +340,20 @@ class BaseTest(unittest.TestCase):
agent = self.console.find_agent(aname, timeout=3)
self.assertTrue(agent and agent.get_name() == aname)
- query = QmfQuery.create_predicate(QmfQuery.TARGET_OBJECT,
- [QmfQuery.AND,
- [QmfQuery.EXISTS, [QmfQuery.QUOTE, SchemaClassId.KEY_PACKAGE]],
- [QmfQuery.EQ, [QmfQuery.UNQUOTE, SchemaClassId.KEY_PACKAGE], [QmfQuery.QUOTE, "MyPackage"]]])
+ query = QmfQuery.create_wildcard(QmfQuery.TARGET_OBJECT)
obj_list = self.console.do_query(agent, query)
- self.assertTrue(len(obj_list) == 2)
+ self.assertTrue(len(obj_list) == 1)
for obj in obj_list:
- self.failUnlessRaises(ValueError,
- obj.invoke_method,
- "unknown_meth",
- {"arg1": -99, "arg2": "Now set!"},
- _timeout=3)
- self.console.destroy(10)
+ self.assertTrue(obj.get_schema_class_id() == None)
+ mr = obj.invoke_method("unknown_meth",
+ {"arg1": -99, "arg2": "Now set!"},
+ _timeout=3)
+ self.assertTrue(isinstance(mr, qmf2.console.MethodResult))
+ self.assertFalse(mr.succeeded())
+ self.assertTrue(isinstance(mr.get_exception(), QmfData))
+ self.console.destroy(10)
def test_managed_obj(self):
# create console