#!/usr/bin/env python ############################################################################ # David W. Robertson, LBNL # See LBNLCopyright for copyright notice! ########################################################################### import sys, ConfigParser, unittest import StringIO from ZSI import wsdl2python from ZSI.wstools.WSDLTools import WSDLReader import utils """ Unittest for the wsdl2python class """ class Wsdl2pythonTest(unittest.TestCase): """Test case for wsdl2python.WriteServiceModule """ def __init__(self, methodName='runTest'): unittest.TestCase.__init__(self, methodName) def setUp(self): global configLoader # not thread safe self.path = configLoader.nameGenerator.next() print self.path sys.stdout.flush() self.testdiff = utils.TestDiff(self) def tearDown(self): self.testdiff.close() def __str__(self): teststr = unittest.TestCase.__str__(self) if hasattr(self, "path"): return "%s: %s" % (teststr, self.path ) else: return "%s" % (teststr) def test_Xmethods_services(self): try: wsdl = utils.setUpWsdl(self.path) except: self.path = self.path + ": load failed, unable to start" raise codegen = wsdl2python.WriteServiceModule(wsdl) f_types, f_services = codegen.get_module_names() hasSchema = len(codegen._wa.getSchemaDict()) if hasSchema: strFile = StringIO.StringIO() self.testdiff.setDiffFile(f_types + ".py") try: codegen.write_service_types(f_types, strFile) except: self.path = self.path + ": write_service_types" raise if strFile.closed: print "trouble" self.testdiff.failUnlessEqual(strFile) strFile.close() strFile = StringIO.StringIO() self.testdiff.setDiffFile(f_services + ".py") try: signatures = codegen.write_services(f_types, f_services, strFile, hasSchema) except: self.path = self.path + ": write_services" raise self.testdiff.failUnlessEqual(strFile) strFile.close() def makeTestSuite(section=None): global configLoader suite = unittest.TestSuite() configLoader = utils.MatchTestLoader(False, "config.py", "Wsdl2pythonTest") if not section: found = configLoader.setSection(sys.argv) if not found: configLoader.setSection("services_by_http") else: configLoader.setSection(section) suite.addTest(configLoader.loadTestsFromConfig(Wsdl2pythonTest)) return suite def foo(): loader = utils.MatchTestLoader(False, "config.py", "makeTestSuite") unittest.main(defaultTest="makeTestSuite", testLoader=loader) if __name__ == "__main__" : foo()