| 
				
				
				
				 | 
			
			 | 
			@@ -1,6 +1,8 @@ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			#!/usr/bin/env python | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			############################################################################ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			# David W. Robertson, LBNL | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			# See Copyright for copyright notice! | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			# See LBNLCopyright for copyright notice! | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			########################################################################### | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			import sys, ConfigParser, unittest | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			import StringIO | 
		
		
	
	
		
			
				| 
				
				
				
					
				
				 | 
			
			 | 
			@@ -12,36 +14,25 @@ import utils | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			Unittest for the wsdl2python class | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			""" | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			def setUpWsdl(path): | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if path[:7] == 'http://': | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        wsdl = WSDLReader().loadFromURL(path) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    else: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        wsdl = WSDLReader().loadFromFile(path) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    return wsdl | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			class Wsdl2pythonTest(unittest.TestCase): | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    """Test case for wsdl2python.WriteServiceModule | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    """ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    def __init__(self, methodName='runTest'): | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        global configLoader | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        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) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        self.wsdl = configLoader.nameGenerator.next() | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    def tearDown(self): | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if self.wsdl is not None: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            del self.wsdl | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        self.testdiff.close() | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    def __str__(self): | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        teststr = unittest.TestCase.__str__(self) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if hasattr(self, "path"): | 
		
		
	
	
		
			
				| 
				
				
				
					
				
				 | 
			
			 | 
			@@ -50,51 +41,53 @@ class Wsdl2pythonTest(unittest.TestCase): | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            return "%s" % (teststr) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    def do_diffs(self, choice): | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        self.failUnless(self.wsdl is not None, "Unable to start, load failed") | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        codegen = wsdl2python.WriteServiceModule(self.wsdl) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    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() | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        strFile = StringIO.StringIO() | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if choice == "service_types": | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            self.testdiff.setDiffFile(f_types + ".py") | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        self.testdiff.setDiffFile(f_types + ".py") | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        try: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            codegen.write_service_types(f_types, strFile) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        else: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            self.testdiff.setDiffFile(f_services + ".py") | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            codegen.write_services(f_types, f_services, strFile) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        except: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            self.path = self.path + ": write_service_types" | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            raise | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        self.testdiff.failUnlessEqual(strFile) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        strFile.close() | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    def test_Xmethods_service_types(self): | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            # add exception for url not found | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        self.do_diffs("service_types") | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    def test_Xmethods_services(self): | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        self.do_diffs("services") | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        strFile = StringIO.StringIO() | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        self.testdiff.setDiffFile(f_services + ".py") | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        try: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            codegen.write_services(f_types, f_services, strFile) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        except: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            self.path = self.path + ": write_services" | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            raise | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        self.testdiff.failUnlessEqual(strFile) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        strFile.close() | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			def makeTestSuite(topLevel=False, config=None): | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			def makeTestSuite(section=None): | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    global configLoader | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    suite = unittest.TestSuite() | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if not hasattr(sys.modules[__name__], "configLoader"): | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if not config: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            configLoader = utils.MatchTestLoader(False, "config.py", | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                                         "Wsdl2pythonTest") | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        else: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            configLoader = config | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    configLoader.testMethodPrefix = "test" | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    suite.addTest(configLoader.loadTestsFromConfig(Wsdl2pythonTest, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                                                   "services_by_http", | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                                                   valueFunc = setUpWsdl)) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    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 main(): | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    global configLoader | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    configLoader = utils.MatchTestLoader(False, "config.py", "makeTestSuite") | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    unittest.main(defaultTest="makeTestSuite", testLoader=configLoader) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    loader = utils.MatchTestLoader(False, "config.py", "makeTestSuite") | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    unittest.main(defaultTest="makeTestSuite", testLoader=loader) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                   | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			if __name__ == "__main__" : main() |