summaryrefslogtreecommitdiff
path: root/qpid/python/qmf2/tests
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/python/qmf2/tests')
-rw-r--r--qpid/python/qmf2/tests/basic_method.py50
-rw-r--r--qpid/python/qmf2/tests/basic_query.py5
-rw-r--r--qpid/python/qmf2/tests/events.py2
-rw-r--r--qpid/python/qmf2/tests/obj_gets.py102
4 files changed, 126 insertions, 33 deletions
diff --git a/qpid/python/qmf2/tests/basic_method.py b/qpid/python/qmf2/tests/basic_method.py
index 745fa5d83c..be2bdff9ab 100644
--- a/qpid/python/qmf2/tests/basic_method.py
+++ b/qpid/python/qmf2/tests/basic_method.py
@@ -84,9 +84,8 @@ class _agentApp(Thread):
# instantiate managed data objects matching the schema
- _obj1 = QmfAgentData( self.agent, _schema=_schema )
- _obj1.set_value("index1", 100)
- _obj1.set_value("index2", "a name" )
+ _obj1 = QmfAgentData( self.agent, _schema=_schema,
+ _values={"index1":100, "index2":"a name"})
_obj1.set_value("set_string", "UNSET")
_obj1.set_value("set_int", 0)
_obj1.set_value("query_count", 0)
@@ -153,7 +152,8 @@ class _agentApp(Thread):
if obj is None:
error_info = QmfData.create({"code": -2,
"description":
- "Bad Object Id."})
+ "Bad Object Id."},
+ _object_id="_error")
self.agent.method_response(wi.get_handle(),
_error=error_info)
else:
@@ -170,13 +170,15 @@ class _agentApp(Thread):
if obj is None:
error_info = QmfData.create({"code": -3,
"description":
- "Unknown object id."})
+ "Unknown object id."},
+ _object_id="_error")
self.agent.method_response(wi.get_handle(),
_error=error_info)
elif obj.get_object_id() != "01545":
- error_info = QmfData.create({"code": -4,
- "description":
- "Unexpected id."})
+ error_info = QmfData.create( {"code": -4,
+ "description":
+ "Unexpected id."},
+ _object_id="_error")
self.agent.method_response(wi.get_handle(),
_error=error_info)
else:
@@ -187,15 +189,18 @@ class _agentApp(Thread):
self.agent.method_response(wi.get_handle(),
{"code" : 0})
else:
- error_info = QmfData.create({"code": -5,
- "description":
- "Bad Args."})
+ error_info = QmfData.create(
+ {"code": -5,
+ "description":
+ "Bad Args."},
+ _object_id="_error")
self.agent.method_response(wi.get_handle(),
_error=error_info)
else:
- error_info = QmfData.create({"code": -1,
+ error_info = QmfData.create( {"code": -1,
"description":
- "Unknown method call."})
+ "Unknown method call."},
+ _object_id="_error")
self.agent.method_response(wi.get_handle(), _error=error_info)
self.agent.release_workitem(wi)
@@ -284,7 +289,7 @@ class BaseTest(unittest.TestCase):
# find agents
# synchronous query for all objects with schema
# invalid method call on each object
- # - should throw a ValueError
+ # - should throw a ValueError - NOT YET.
self.notifier = _testNotifier()
self.console = qmf2.console.Console(notifier=self.notifier,
agent_timeout=3)
@@ -313,11 +318,18 @@ class BaseTest(unittest.TestCase):
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)
+ mr = obj.invoke_method("unknown_method",
+ {"arg1": -99, "arg2": "Now set!"},
+ _timeout=3)
+ # self.failUnlessRaises(ValueError,
+ # 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_bad_method_no_schema(self):
diff --git a/qpid/python/qmf2/tests/basic_query.py b/qpid/python/qmf2/tests/basic_query.py
index 0f45348d9f..dd321cb4bb 100644
--- a/qpid/python/qmf2/tests/basic_query.py
+++ b/qpid/python/qmf2/tests/basic_query.py
@@ -84,9 +84,8 @@ class _agentApp(Thread):
# instantiate managed data objects matching the schema
- _obj1 = QmfAgentData( self.agent, _schema=_schema )
- _obj1.set_value("index1", 100)
- _obj1.set_value("index2", "a name" )
+ _obj1 = QmfAgentData( self.agent, _schema=_schema,
+ _values={"index1":100, "index2":"a name"})
_obj1.set_value("set_string", "UNSET")
_obj1.set_value("set_int", 0)
_obj1.set_value("query_count", 0)
diff --git a/qpid/python/qmf2/tests/events.py b/qpid/python/qmf2/tests/events.py
index 9a96fbd9a4..e55dc8572e 100644
--- a/qpid/python/qmf2/tests/events.py
+++ b/qpid/python/qmf2/tests/events.py
@@ -114,7 +114,7 @@ class _agentApp(Thread):
QmfEvent.SEV_WARNING,
{"prop-1": counter,
"prop-2": str(datetime.datetime.utcnow())},
- _schema=self.schema)
+ _schema_id=self.schema.get_class_id())
counter += 1
self.agent.raise_event(event)
wi = self.agent.get_next_workitem(timeout=0)
diff --git a/qpid/python/qmf2/tests/obj_gets.py b/qpid/python/qmf2/tests/obj_gets.py
index 43f2da5da2..5b1446bb3a 100644
--- a/qpid/python/qmf2/tests/obj_gets.py
+++ b/qpid/python/qmf2/tests/obj_gets.py
@@ -74,14 +74,16 @@ class _agentApp(Thread):
self.agent.register_object_class(_schema)
- _obj = QmfAgentData( self.agent, _schema=_schema )
- _obj.set_value("key", "p1c1_key1")
+ _obj = QmfAgentData( self.agent,
+ _values={"key":"p1c1_key1"},
+ _schema=_schema)
_obj.set_value("count1", 0)
_obj.set_value("count2", 0)
self.agent.add_object( _obj )
- _obj = QmfAgentData( self.agent, _schema=_schema )
- _obj.set_value("key", "p1c1_key2")
+ _obj = QmfAgentData( self.agent,
+ _values={"key":"p1c1_key2"},
+ _schema=_schema )
_obj.set_value("count1", 9)
_obj.set_value("count2", 10)
self.agent.add_object( _obj )
@@ -97,8 +99,9 @@ class _agentApp(Thread):
self.agent.register_object_class(_schema)
- _obj = QmfAgentData( self.agent, _schema=_schema )
- _obj.set_value("name", "p1c2_name1")
+ _obj = QmfAgentData( self.agent,
+ _values={"name":"p1c2_name1"},
+ _schema=_schema )
_obj.set_value("string1", "a data string")
self.agent.add_object( _obj )
@@ -114,13 +117,15 @@ class _agentApp(Thread):
self.agent.register_object_class(_schema)
- _obj = QmfAgentData( self.agent, _schema=_schema )
- _obj.set_value("key", "p2c1_key1")
+ _obj = QmfAgentData( self.agent,
+ _values={"key":"p2c1_key1"},
+ _schema=_schema )
_obj.set_value("counter", 0)
self.agent.add_object( _obj )
- _obj = QmfAgentData( self.agent, _schema=_schema )
- _obj.set_value("key", "p2c1_key2")
+ _obj = QmfAgentData( self.agent,
+ _values={"key":"p2c1_key2"},
+ _schema=_schema )
_obj.set_value("counter", 2112)
self.agent.add_object( _obj )
@@ -515,3 +520,80 @@ class BaseTest(unittest.TestCase):
self.console.destroy(10)
+
+ def test_wildcard_schema_id(self):
+ # create console
+ # find all agents
+ # synchronous query for all described objects by:
+ # oid & wildcard schema_id
+ # wildcard schema_id
+ # verify known object ids are returned
+ 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)
+
+ for agent_app in self.agents:
+ aname = agent_app.agent.get_name()
+ agent = self.console.find_agent(aname, timeout=3)
+ self.assertTrue(agent and agent.get_name() == aname)
+
+ wild_schema_id = SchemaClassId("package1", "class1")
+ objs = self.console.get_objects(_schema_id=wild_schema_id, _timeout=5)
+ self.assertTrue(len(objs) == (self.agent_count * 2))
+ for obj in objs:
+ self.assertTrue(obj.get_schema_class_id().get_package_name() == "package1")
+ self.assertTrue(obj.get_schema_class_id().get_class_name() == "class1")
+
+ wild_schema_id = SchemaClassId("package1", "class2")
+ objs = self.console.get_objects(_schema_id=wild_schema_id, _timeout=5)
+ self.assertTrue(len(objs) == self.agent_count)
+ for obj in objs:
+ self.assertTrue(obj.get_schema_class_id().get_package_name() == "package1")
+ self.assertTrue(obj.get_schema_class_id().get_class_name() == "class2")
+ self.assertTrue(obj.get_object_id() == "p1c2_name1")
+
+ wild_schema_id = SchemaClassId("package2", "class1")
+ objs = self.console.get_objects(_schema_id=wild_schema_id, _timeout=5)
+ self.assertTrue(len(objs) == (self.agent_count * 2))
+ for obj in objs:
+ self.assertTrue(obj.get_schema_class_id().get_package_name() == "package2")
+ self.assertTrue(obj.get_schema_class_id().get_class_name() == "class1")
+
+ wild_schema_id = SchemaClassId("package1", "class1")
+ objs = self.console.get_objects(_schema_id=wild_schema_id,
+ _object_id="p1c1_key2", _timeout=5)
+ self.assertTrue(len(objs) == self.agent_count)
+ for obj in objs:
+ self.assertTrue(obj.get_schema_class_id().get_package_name() == "package1")
+ self.assertTrue(obj.get_schema_class_id().get_class_name() == "class1")
+ self.assertTrue(obj.get_object_id() == "p1c1_key2")
+
+ # should fail
+ objs = self.console.get_objects(_schema_id=wild_schema_id,
+ _object_id="does not exist",
+ _timeout=5)
+ self.assertTrue(objs == None)
+
+ wild_schema_id = SchemaClassId("package2", "class1")
+ objs = self.console.get_objects(_schema_id=wild_schema_id,
+ _object_id="p2c1_key2", _timeout=5)
+ self.assertTrue(len(objs) == self.agent_count)
+ for obj in objs:
+ self.assertTrue(obj.get_schema_class_id().get_package_name() == "package2")
+ self.assertTrue(obj.get_schema_class_id().get_class_name() == "class1")
+ self.assertTrue(obj.get_object_id() == "p2c1_key2")
+
+ # should fail
+ wild_schema_id = SchemaClassId("package1", "bad-class")
+ objs = self.console.get_objects(_schema_id=wild_schema_id,
+ _object_id="p1c1_key2", _timeout=5)
+ self.assertTrue(objs == None)
+
+ self.console.destroy(10)
+