|  |  | @@ -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() |