|
From: <ba...@us...> - 2008-09-11 22:38:06
|
Revision: 958
http://omc.svn.sourceforge.net/omc/?rev=958&view=rev
Author: bartw
Date: 2008-09-11 22:38:15 +0000 (Thu, 11 Sep 2008)
Log Message:
-----------
more method tests, rigged test scripts to honor command line options
Modified Paths:
--------------
cmpi-bindings/trunk/test/python/TestAtomProvider_Test.py
cmpi-bindings/trunk/test/python/TestMethod.mof
cmpi-bindings/trunk/test/python/TestMethod.py
cmpi-bindings/trunk/test/python/TestMethod_Test.py
cmpi-bindings/trunk/test/python/lib/wbem_connection.py
cmpi-bindings/trunk/test/python/test_assoc.py
Modified: cmpi-bindings/trunk/test/python/TestAtomProvider_Test.py
===================================================================
--- cmpi-bindings/trunk/test/python/TestAtomProvider_Test.py 2008-09-11 22:16:48 UTC (rev 957)
+++ cmpi-bindings/trunk/test/python/TestAtomProvider_Test.py 2008-09-11 22:38:15 UTC (rev 958)
@@ -15,7 +15,11 @@
import unittest
import math
from lib import wbem_connection
+from optparse import OptionParser
+conn = None
+globalParser = None
+
_tolerance = .04
_atoms = {'Hydrogen': 1,
@@ -200,17 +204,17 @@
time = pywbem.CIMDateTime.now()
def setUp(self):
+ global conn
self.inst_paths = []
self.instance = None
- #wconn = wbem_connection.wbem_connection()
- self.conn = pywbem.PegasusUDSConnection()
- self.conn = pywbem.SFCBUDSConnection()
+ if conn is None:
+ conn = wbem_connection.WBEMConnFromOptions(globalParser)
unittest.TestCase.setUp(self)
def tearDown(self):
for ipath in self.inst_paths:
try:
- self.conn.DeleteInstance(ipath)
+ conn.DeleteInstance(ipath)
except pywbem.CIMError,arg:
pass
unittest.TestCase.tearDown(self)
@@ -231,7 +235,7 @@
# namespace='Interop'))
#
# try:
- # self.conn.CreateInstance(reginst)
+ # conn.CreateInstance(reginst)
# except pywbem.CIMError, arg:
# self.fail("Could not REGISTER %s:%s" % (reginst.classname, str(arg)))
# restart_gmond()
@@ -241,19 +245,19 @@
#def test_7_deregister(self):
# """ Test Deregister Provider """
- # self.conn.default_namespace = 'Interop'
- # reglist = self.conn.EnumerateInstanceNames('OpenWBEM_PyProviderRegistration')
+ # conn.default_namespace = 'Interop'
+ # reglist = conn.EnumerateInstanceNames('OpenWBEM_PyProviderRegistration')
# for inst_name in reglist:
# if inst_name['InstanceID'] == 'TestAtomProvider':
# try:
- # self.conn.DeleteInstance(inst_name)
+ # conn.DeleteInstance(inst_name)
# except pywbem.CIMError, arg:
# self.fail("Could not DEREGISTER Class")
# restart_gmond()
# try:
- # self.conn.GetInstance(inst_name)
+ # conn.GetInstance(inst_name)
# except pywbem.CIMError, arg:
# self.failUnlessEqual(arg[0], pywbem.CIM_ERR_NOT_FOUND,
# 'Unexpected exception on GetInstance: %s' % str(arg))
@@ -314,7 +318,7 @@
pywbem.Uint8(number)]
try:
- cipath = self.conn.CreateInstance(new_instance)
+ cipath = conn.CreateInstance(new_instance)
new_instance.path = cipath
self.inst_paths.append(cipath)
@@ -332,12 +336,12 @@
self.fail('%s: CreateInstance Failed.' % str(msg))
continue
try:
- ci = self.conn.GetInstance(rval.path)
+ ci = conn.GetInstance(rval.path)
except pywbem.CIMError,arg:
self.fail('GetInstance failed for instance just created')
continue
- _compare_values(self.conn, ci, self.time)
+ _compare_values(conn, ci, self.time)
def test_3_enum_instances(self):
@@ -349,20 +353,20 @@
self.fail('%s: CreateInstance Failed.' % str(msg))
continue
try:
- ci = self.conn.GetInstance(rval.path)
+ ci = conn.GetInstance(rval.path)
insts.append(ci)
except pywbem.CIMError,arg:
self.fail('GetInstance failed for instance just created')
continue
try:
- ta_list = self.conn.EnumerateInstances('Test_Atom')
+ ta_list = conn.EnumerateInstances('Test_Atom')
except pywbem.CIMError, arg:
self.fail('EnumerateInstances Failed: %s' % str(arg))
raise
try:
- paths = self.conn.EnumerateInstanceNames('Test_Atom')
+ paths = conn.EnumerateInstanceNames('Test_Atom')
except pywbem.CIMError, arg:
self.fail('EnumerateInstanceNames Failed: %s' % str(arg))
@@ -374,7 +378,7 @@
for rci in ta_list:
rci.path.host = None
if rci.path == ci.path:
- _compare_values(self.conn, rci, self.time)
+ _compare_values(conn, rci, self.time)
break
else:
self.fail('Did not get a created instance back from EnumerateInstance')
@@ -390,20 +394,20 @@
self.fail('%s: CreateInstance Failed.' % str(msg))
continue
try:
- ci = self.conn.GetInstance(rval.path)
+ ci = conn.GetInstance(rval.path)
insts.append(ci)
except pywbem.CIMError,arg:
self.fail('GetInstance failed for instance just created')
continue
try:
- ta_list = self.conn.EnumerateInstanceNames('Test_Atom')
+ ta_list = conn.EnumerateInstanceNames('Test_Atom')
except pywbem.CIMError, arg:
self.fail('EnumerateInstanceNames Failed: %s' % str(arg))
raise
try:
- instances = self.conn.EnumerateInstances('Test_Atom')
+ instances = conn.EnumerateInstances('Test_Atom')
except pywbem.CIMError, arg:
self.fail('EnumerateInstances Failed: %s' % str(arg))
@@ -428,7 +432,7 @@
'sint32Propa', 'sint32Prop']
keybindings = {'Name': 'Carbon'}
try:
- inst = get_instance(self.conn, keybindings, propertylist)
+ inst = get_instance(conn, keybindings, propertylist)
except pywbem.CIMError, arg:
raise arg
@@ -449,7 +453,7 @@
'sint64Propa', 'sint64prop', 'boolProp']
keybindings = {'Name': 'Boron'}
- mod_instance = get_instance(self.conn, keybindings, propertylist)
+ mod_instance = get_instance(conn, keybindings, propertylist)
weight = _atomic_weights['Boron']
new_time = pywbem.CIMDateTime.now()
@@ -468,11 +472,11 @@
mod_instance['Name'] = 'Boron'
try:
- self.conn.ModifyInstance(mod_instance, PropertyList=propertylist)
+ conn.ModifyInstance(mod_instance, PropertyList=propertylist)
except pywbem.CIMError, arg:
self.fail(arg)
- mod_instance = get_instance(self.conn, keybindings, propertylist)
+ mod_instance = get_instance(conn, keybindings, propertylist)
for prop in mod_instance.properties.keys():
if prop == 'uint64Prop' or prop == 'sint64Prop':
self.assertEqual(mod_instance[prop],2,"Values NOT EQUAL")
@@ -504,23 +508,23 @@
self.fail('%s: CreateInstance Failed.' % str(msg))
continue
try:
- ci = self.conn.GetInstance(rval.path)
+ ci = conn.GetInstance(rval.path)
insts.append(ci)
except pywbem.CIMError,arg:
self.fail('GetInstance failed for instance just created')
continue
- del_instances = get_instance_names(self.conn)
+ del_instances = get_instance_names(conn)
for inst in del_instances:
try:
- self.conn.DeleteInstance(inst)
+ conn.DeleteInstance(inst)
except pywbem.CIMError, arg:
self.fail('DeleteInstance Failed: %s' % str(arg))
break
else:
for inst in del_instances:
try:
- self.conn.DeleteInstance(inst)
+ conn.DeleteInstance(inst)
except pywbem.CIMError, arg:
self.failUnlessEqual(arg[0], pywbem.CIM_ERR_NOT_FOUND,
'Unexpected exception on delete: %s' % str(arg))
@@ -531,5 +535,11 @@
return TestAtomProvider
if __name__ == "__main__":
+ p = OptionParser()
+ wbem_connection.getWBEMConnParserOptions(p)
+ options, arguments = p.parse_args()
+ globalParser = p
+
suite = unittest.makeSuite(TestAtomProvider)
unittest.TextTestRunner(verbosity=2).run(suite)
+
Modified: cmpi-bindings/trunk/test/python/TestMethod.mof
===================================================================
--- cmpi-bindings/trunk/test/python/TestMethod.mof 2008-09-11 22:16:48 UTC (rev 957)
+++ cmpi-bindings/trunk/test/python/TestMethod.mof 2008-09-11 22:38:15 UTC (rev 958)
@@ -260,5 +260,9 @@
[in, required, EmbeddedInstance("Test_Method")] string insts[]
);
+ [ Description("Retrieve instances of Test_Method as an instance list output parameter") ]
+ sint32 getObjects(
+ [in(false), out, required, EmbeddedInstance("Test_Method")] string insts[]
+ );
};
Modified: cmpi-bindings/trunk/test/python/TestMethod.py
===================================================================
--- cmpi-bindings/trunk/test/python/TestMethod.py 2008-09-11 22:16:48 UTC (rev 957)
+++ cmpi-bindings/trunk/test/python/TestMethod.py 2008-09-11 22:38:15 UTC (rev 958)
@@ -720,6 +720,20 @@
rval = pywbem.Sint32(0)
return (rval, out_params)
+ def cim_method_getobjects(self, env, object_name):
+ logger = env.get_logger()
+ logger.log_debug('Entering %s.cim_method_getobjects()' \
+ % self.__class__.__name__)
+
+ insts = []
+ for kn, val in g_insts.items():
+ inst = pywbem.CIMInstance('TestMethod',
+ properties={'id':kn, 'p_str':val[0], 'p_sint32':val[1]})
+ insts.append(inst)
+
+ out_params = [pywbem.CIMParameter('insts', 'instance', value=insts)]
+ rval = pywbem.Sint32(0)
+ return (rval, out_params)
## end of class TestMethodProvider
Modified: cmpi-bindings/trunk/test/python/TestMethod_Test.py
===================================================================
--- cmpi-bindings/trunk/test/python/TestMethod_Test.py 2008-09-11 22:16:48 UTC (rev 957)
+++ cmpi-bindings/trunk/test/python/TestMethod_Test.py 2008-09-11 22:38:15 UTC (rev 958)
@@ -15,6 +15,7 @@
import sys
real_tolerance = 0.01
+conn = None
#This test requires the usage of elementtree
@@ -157,11 +158,8 @@
def setUp(self):
unittest.TestCase.setUp(self)
- #wconn = wbem_connection.wbem_connection()
- #self.conn = wconn._WBEMConnFromOptions(_g_opts)
- self.conn = pywbem.PegasusUDSConnection()
- self.conn = pywbem.SFCBUDSConnection()
- self.conn.debug = True
+ self.conn = conn
+ self.conn.debug = True
for iname in self.conn.EnumerateInstanceNames('Test_Method'):
self.conn.DeleteInstance(iname)
self._verbose = _g_opts.verbose
@@ -510,6 +508,7 @@
properties={'p_str':'str2', 'p_sint32':pywbem.Sint32(2)})
inst2.update(iname2)
+
self.conn.DeleteInstance(iname)
rv, outs = self.conn.InvokeMethod('createObjects', 'Test_Method',
insts=[inst, inst2])
@@ -518,6 +517,14 @@
ninst = self.conn.GetInstance(iname2)
self.assertEquals(ninst['p_str'], 'str2')
self.assertEquals(ninst['p_sint32'], 2)
+
+ try:
+ rv, outs = self.conn.InvokeMethod('getObjects', 'Test_Method')
+ except:
+ raise
+ insts = outs['insts']
+ self.assertEquals(len(insts), 2)
+
def get_unit_test():
@@ -537,6 +544,7 @@
help='Indicate the level of debugging statements to display (default=2)',
default=2)
_g_opts, _g_args = parser.parse_args()
+ conn = wbem_connection.WBEMConnFromOptions(parser)
suite = unittest.makeSuite(TestMethods)
unittest.TextTestRunner(verbosity=_g_opts.dbglevel).run(suite)
Modified: cmpi-bindings/trunk/test/python/lib/wbem_connection.py
===================================================================
--- cmpi-bindings/trunk/test/python/lib/wbem_connection.py 2008-09-11 22:16:48 UTC (rev 957)
+++ cmpi-bindings/trunk/test/python/lib/wbem_connection.py 2008-09-11 22:38:15 UTC (rev 958)
@@ -4,10 +4,10 @@
from getpass import getpass
def getWBEMConnParserOptions(parser):
- parser.add_option('-u', '--url', default='https://localhost', help='Specify the URL to the CIMOM')
+ parser.add_option('-u', '--url', default='/tmp/sfcbHttpSocket', help='Specify the URL to the CIMOM')
parser.add_option('-n', '--namespace', default='root/cimv2', help='Specify the namespace the test runs against')
- parser.add_option('', '--user', default='', help='Specify the user name used when connection to the CIMOM')
- parser.add_option('', '--password', default='', help='Specify the password for the user')
+ parser.add_option('', '--user', default=None, help='Specify the user name used when connection to the CIMOM')
+ parser.add_option('', '--password', default=None, help='Specify the password for the user')
@@ -19,7 +19,11 @@
pw = options.password
if options.user and not pw:
pw = getpass('\nEnter password for %s: ' % options.user)
- wconn = pywbem.WBEMConnection(options.url, (options.user, pw))
+ options.password = pw
+ creds = None
+ if options.user:
+ creds = (options.user, pw)
+ wconn = pywbem.WBEMConnection(options.url, creds)
if options.namespace:
wconn.default_namespace = options.namespace
return wconn
Modified: cmpi-bindings/trunk/test/python/test_assoc.py
===================================================================
--- cmpi-bindings/trunk/test/python/test_assoc.py 2008-09-11 22:16:48 UTC (rev 957)
+++ cmpi-bindings/trunk/test/python/test_assoc.py 2008-09-11 22:38:15 UTC (rev 958)
@@ -14,10 +14,12 @@
import grp
from lib import ProviderSanityTest as PST
+from lib import wbem_connection
from socket import getfqdn
_globalVerbose = False
+conn = None
def isObjPathMatch( op1, op2 ):
op1.host = None
@@ -47,28 +49,7 @@
return _local_op1_str == _local_op2_str
-class WBEMConn:
-
- # Borgness
- _shared_state = {}
- conn = None
-
- def __init__(self, options=None):
- # Borgness
- self.__dict__ = WBEMConn._shared_state
- if options:
- proto = 'http'
- if options.secure:
- proto = 'https'
- url = '%s://%s' % (proto, options.host)
- self.conn = pywbem.WBEMConnection(
- url,
- (options.user, options.password),
- default_namespace = options.namespace)
- self.conn = pywbem.PegasusUDSConnection()
- self.conn = pywbem.SFCBUDSConnection()
-
class TestAssociations(unittest.TestCase):
@@ -81,8 +62,8 @@
def setUp(self):
unittest.TestCase.setUp(self)
- self._conn = WBEMConn().conn
self._verbose = _globalVerbose
+ self._conn = conn
self._dbgPrint()
def tearDown(self):
@@ -1177,6 +1158,7 @@
if __name__ == '__main__':
parser = optparse.OptionParser()
+ wbem_connection.getWBEMConnParserOptions(parser)
parser.add_option('--level',
'-l',
action='store',
@@ -1184,22 +1166,12 @@
dest='dbglevel',
help='Indicate the level of debugging statements to display (default=2)',
default=2)
- parser.add_option('', '--host', default='localhost',
- help='Specify the hosting machine of the CIMOM (default=localhost)')
- parser.add_option('-s', '--secure', action='store_true', default=False,
- help='Use the HTTPS protocol. Default is HTTP')
- parser.add_option('-n', '--namespace', default='root/cimv2',
- help='Specify the namespace the test runs against (default=root/cimv2)')
- parser.add_option('', '--user', default='',
- help='Specify the user name used when connection to the CIMOM')
- parser.add_option('', '--password', default='',
- help='Specify the password for the user')
parser.add_option('--verbose', '', action='store_true', default=False,
help='Show verbose output')
options, arguments = parser.parse_args()
_globalVerbose = options.verbose
- wconn = WBEMConn(options)
+ conn = wbem_connection.WBEMConnFromOptions(parser)
suite = unittest.makeSuite(TestAssociations)
unittest.TextTestRunner(verbosity=options.dbglevel).run(suite)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|