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. |