configuration file.main
@@ -1,156 +1,20 @@ | |||
#!/usr/bin/env python | |||
import unittest, sys | |||
from ConfigParser import ConfigParser | |||
from ZSI.wstools.WSDLTools import WSDLReader | |||
from test_wsdl import WSDLToolsTestCase, NETWORK, STANDALONE | |||
CONFIG = None | |||
class HomeLandSecurityTestCase(WSDLToolsTestCase): | |||
def test(self): | |||
self.option = 'homelandsecurity' | |||
self.loadFromConfig(CONFIG) | |||
class Rtf2htmlTestCase(WSDLToolsTestCase): | |||
def test(self): | |||
self.option = 'rtf2html' | |||
self.loadFromConfig(CONFIG) | |||
class AmazonTestCase(WSDLToolsTestCase): | |||
def test(self): | |||
self.option = 'amazon' | |||
self.loadFromConfig(CONFIG) | |||
class AirportTestCase(WSDLToolsTestCase): | |||
def test(self): | |||
self.option = 'airport' | |||
self.loadFromConfig(CONFIG) | |||
class OGSITestCase(WSDLToolsTestCase): | |||
def test(self): | |||
self.option = 'ogsi' | |||
self.loadFromConfig(CONFIG) | |||
class BooksTestCase(WSDLToolsTestCase): | |||
def test(self): | |||
self.option = 'books' | |||
self.loadFromConfig(CONFIG) | |||
class DistanceTestCase(WSDLToolsTestCase): | |||
def test(self): | |||
self.option = 'distance' | |||
self.loadFromConfig(CONFIG) | |||
class FreeDBTestCase(WSDLToolsTestCase): | |||
def test(self): | |||
self.option = 'freedb' | |||
self.loadFromConfig(CONFIG) | |||
class GlobalWeatherTestCase(WSDLToolsTestCase): | |||
def test(self): | |||
self.option = 'globalweather' | |||
self.loadFromConfig(CONFIG) | |||
class IHaddockTestCase(WSDLToolsTestCase): | |||
def test(self): | |||
self.option = 'IHaddock' | |||
self.loadFromConfig(CONFIG) | |||
class Ip2geoTestCase(WSDLToolsTestCase): | |||
def test(self): | |||
self.option = 'ip2geo' | |||
self.loadFromConfig(CONFIG) | |||
class MagicTestCase(WSDLToolsTestCase): | |||
def test(self): | |||
self.option = 'magic' | |||
self.loadFromConfig(CONFIG) | |||
class QueryTestCase(WSDLToolsTestCase): | |||
def test(self): | |||
self.option = 'query' | |||
self.loadFromConfig(CONFIG) | |||
class RateInfoTestCase(WSDLToolsTestCase): | |||
def test(self): | |||
self.option = 'RateInfo' | |||
self.loadFromConfig(CONFIG) | |||
class SHA1EncryptTestCase(WSDLToolsTestCase): | |||
def test(self): | |||
self.option = 'SHA1Encrypt' | |||
self.loadFromConfig(CONFIG) | |||
class SiteInspectTestCase(WSDLToolsTestCase): | |||
def test(self): | |||
self.option = 'siteInspect' | |||
self.loadFromConfig(CONFIG) | |||
class SolveSystemsTestCase(WSDLToolsTestCase): | |||
def test(self): | |||
self.option = 'SolveSystem' | |||
self.loadFromConfig(CONFIG) | |||
class TemperatureServiceTestCase(WSDLToolsTestCase): | |||
def test(self): | |||
self.option = 'TemperatureService' | |||
self.loadFromConfig(CONFIG) | |||
class USweatherTestCase(WSDLToolsTestCase): | |||
def test(self): | |||
self.option = 'usweather' | |||
self.loadFromConfig(CONFIG) | |||
class Zip2geoTestCase(WSDLToolsTestCase): | |||
def test(self): | |||
self.option = 'zip2geo' | |||
self.loadFromConfig(CONFIG) | |||
CASES = [AirportTestCase, | |||
AmazonTestCase, | |||
BooksTestCase, | |||
DistanceTestCase, | |||
FreeDBTestCase, | |||
GlobalWeatherTestCase, | |||
HomeLandSecurityTestCase, | |||
IHaddockTestCase, | |||
Ip2geoTestCase, | |||
MagicTestCase, | |||
OGSITestCase, | |||
QueryTestCase, | |||
RateInfoTestCase, | |||
Rtf2htmlTestCase, | |||
SHA1EncryptTestCase, | |||
SiteInspectTestCase, | |||
SolveSystemsTestCase, | |||
TemperatureServiceTestCase, | |||
USweatherTestCase, | |||
WSDLToolsTestCase, | |||
Zip2geoTestCase] | |||
def makeNetworkSuite(): | |||
return getSuite(NETWORK) | |||
def makeStandAloneSuite(): | |||
return getSuite(STANDALONE) | |||
def getSuite(section): | |||
tests = [] | |||
############################################################################ | |||
# Joshua R. Boverhof, David W. Robertson, LBNL | |||
# See LBNLCopyright for copyright notice! | |||
########################################################################### | |||
import unittest | |||
import test_wsdl | |||
import utils | |||
def makeTestSuite(): | |||
suite = unittest.TestSuite() | |||
loader = unittest.TestLoader() | |||
WSDLToolsTestCase.section = section | |||
for case in CASES: | |||
#case.section = section | |||
test = loader.loadTestsFromTestCase(case) | |||
tests.append(test) | |||
suite.addTests(tests) | |||
suite.addTest(test_wsdl.makeTestSuite("services_by_file")) | |||
return suite | |||
def main(): | |||
global CONFIG | |||
from test_wstools import CONFIG_FILE | |||
CONFIG = ConfigParser() | |||
CONFIG.read(CONFIG_FILE) | |||
unittest.TestProgram(defaultTest='makeStandAloneSuite') | |||
loader = utils.MatchTestLoader(True, None, "makeTestSuite") | |||
unittest.main(defaultTest="makeTestSuite", testLoader=loader) | |||
if __name__ == "__main__" : main() | |||
@@ -1,49 +1,37 @@ | |||
#!/usr/bin/env python | |||
import unittest, sys | |||
from ConfigParser import NoOptionError | |||
from ZSI.wstools.WSDLTools import WSDLReader | |||
from ZSI.wstools.Utility import DOM | |||
CONFIG = None | |||
NETWORK = 'services_by_http' | |||
STANDALONE = 'services_by_file' | |||
############################################################################ | |||
# Joshua R. Boverhof, David W. Robertson, LBNL | |||
# See LBNLCopyright for copyright notice! | |||
########################################################################### | |||
import sys, unittest | |||
from ZSI.wstools.Utility import DOM | |||
import utils | |||
class WSDLToolsTestCase(unittest.TestCase): | |||
def __init__(self, methodName='runTest'): | |||
unittest.TestCase.__init__(self, methodName) | |||
def setUp(self): | |||
pass | |||
def tearDown(self): | |||
if self.wsdl: | |||
self.wsdlServices() | |||
self.wsdlMessages() | |||
self.wsdlPortTypes() | |||
self.wsdlBindings() | |||
self.wsdlImports() | |||
self.wsdlExtensions() | |||
self.wsdlTypes() | |||
def loadFromConfig(self, config=CONFIG): | |||
self.wsdl = None | |||
try: | |||
path = config.get(self.section, self.option) | |||
except NoOptionError, ex: | |||
pass | |||
else: | |||
if path[:7] == 'http://': | |||
self.loadFromURL(url=path) | |||
else: | |||
self.loadFromFile(file=path) | |||
def loadFromFile(self, file): | |||
self.wsdl = WSDLReader().loadFromFile(file) | |||
global configLoader | |||
# not thread safe | |||
self.path = configLoader.nameGenerator.next() | |||
print self.path | |||
sys.stdout.flush() | |||
def loadFromURL(self, url): | |||
self.wsdl = WSDLReader().loadFromURL(url) | |||
def __str__(self): | |||
teststr = unittest.TestCase.__str__(self) | |||
if hasattr(self, "path"): | |||
return "%s: %s" % (teststr, self.path ) | |||
else: | |||
return "%s" % (teststr) | |||
def checkWSDLCollection(self, tag_name, component, key='name'): | |||
if self.wsdl is None: | |||
return | |||
definition = self.wsdl.document.documentElement | |||
version = DOM.WSDLUriToVersion(definition.namespaceURI) | |||
nspname = DOM.GetWSDLUri(version) | |||
@@ -57,39 +45,63 @@ class WSDLToolsTestCase(unittest.TestCase): | |||
name = DOM.getAttr(cnode, key) | |||
component[name] | |||
def wsdlServices(self): | |||
self.checkWSDLCollection('service', self.wsdl.services) | |||
def wsdlTestAll(self): | |||
try: | |||
self.wsdl = utils.setUpWsdl(self.path) | |||
except: | |||
self.path = self.path + ": load failed, unable to start" | |||
raise | |||
try: | |||
self.checkWSDLCollection('service', self.wsdl.services) | |||
except: | |||
self.path = self.path + ": wsdl.services" | |||
raise | |||
def wsdlMessages(self): | |||
self.checkWSDLCollection('message', self.wsdl.messages) | |||
try: | |||
self.checkWSDLCollection('message', self.wsdl.messages) | |||
except: | |||
self.path = self.path + ": wsdl.messages" | |||
raise | |||
def wsdlPortTypes(self): | |||
self.checkWSDLCollection('portType', self.wsdl.portTypes) | |||
try: | |||
self.checkWSDLCollection('portType', self.wsdl.portTypes) | |||
except: | |||
self.path = self.path + ": wsdl.portTypes" | |||
raise | |||
def wsdlBindings(self): | |||
self.checkWSDLCollection('binding', self.wsdl.bindings) | |||
try: | |||
self.checkWSDLCollection('binding', self.wsdl.bindings) | |||
except: | |||
self.path = self.path + ": wsdl.bindings" | |||
raise | |||
def wsdlImports(self): | |||
self.checkWSDLCollection('import', self.wsdl.imports, key='namespace') | |||
try: | |||
self.checkWSDLCollection('import', self.wsdl.imports, key='namespace') | |||
except: | |||
self.path = self.path + ": wsdl.imports" | |||
raise | |||
def wsdlTypes(self): | |||
for key in self.wsdl.types.keys(): | |||
schema = self.wsdl.types[key] | |||
self.failUnlessEqual(key, schema.getTargetNamespace()) | |||
try: | |||
for key in self.wsdl.types.keys(): | |||
schema = self.wsdl.types[key] | |||
self.failUnlessEqual(key, schema.getTargetNamespace()) | |||
definition = self.wsdl.document.documentElement | |||
version = DOM.WSDLUriToVersion(definition.namespaceURI) | |||
nspname = DOM.GetWSDLUri(version) | |||
for node in DOM.getElements(definition, 'types', nspname): | |||
for snode in DOM.getElements(node, 'schema'): | |||
tns = DOM.findTargetNS(snode) | |||
schema = self.wsdl.types[tns] | |||
self.schemaAttributesDeclarations(schema, snode) | |||
self.schemaAttributeGroupDeclarations(schema, snode) | |||
self.schemaElementDeclarations(schema, snode) | |||
self.schemaTypeDefinitions(schema, snode) | |||
except: | |||
self.path = self.path + ": wsdl.types" | |||
raise | |||
definition = self.wsdl.document.documentElement | |||
version = DOM.WSDLUriToVersion(definition.namespaceURI) | |||
nspname = DOM.GetWSDLUri(version) | |||
for node in DOM.getElements(definition, 'types', nspname): | |||
for snode in DOM.getElements(node, 'schema'): | |||
tns = DOM.findTargetNS(snode) | |||
schema = self.wsdl.types[tns] | |||
self.schemaAttributesDeclarations(schema, snode) | |||
self.schemaAttributeGroupDeclarations(schema, snode) | |||
self.schemaElementDeclarations(schema, snode) | |||
self.schemaTypeDefinitions(schema, snode) | |||
def wsdlExtensions(self): | |||
if self.wsdl.extensions: | |||
print 'No check for WSDLTools(%s) Extensions:' %(self.wsdl.name) | |||
for ext in self.wsdl.extensions: print '\t', ext | |||
@@ -108,30 +120,25 @@ class WSDLToolsTestCase(unittest.TestCase): | |||
self.checkXSDCollection('simpleType', schema.types, node) | |||
def makeNetworkSuite(): | |||
return getSuite(section='services_by_http') | |||
def makeStandAloneSuite(): | |||
return getSuite('services_by_file') | |||
def makeTestSuite(section=None): | |||
global configLoader | |||
def getSuite(section): | |||
names = CONFIG.options(section) | |||
tests = [] | |||
suite = unittest.TestSuite() | |||
loader = unittest.TestLoader() | |||
WSDLToolsTestCase.section = section | |||
for case in [WSDLToolsTestCase,]: | |||
case.section = section | |||
test = loader.loadTestsFromTestCase(case) | |||
tests.append(test) | |||
#tests.sort() | |||
suite.addTests(tests) | |||
configLoader = utils.MatchTestLoader(False, "config.py", "WSDLToolsTestCase") | |||
if not section: | |||
found = configLoader.setSection(sys.argv) | |||
if not found: | |||
configLoader.setSection("services_by_http") | |||
else: | |||
configLoader.setSection(section) | |||
configLoader.testMethodPrefix = "wsdlTest" | |||
suite.addTest(configLoader.loadTestsFromConfig(WSDLToolsTestCase)) | |||
return suite | |||
#makeTestSuite = makeStandAloneSuite | |||
#def main(): | |||
# unittest.main(defaultTest="makeTestSuite") | |||
def main(): | |||
loader = utils.MatchTestLoader(False, None, "makeTestSuite") | |||
unittest.main(defaultTest="makeTestSuite", testLoader=loader) | |||
if __name__ == "__main__" : main() |
@@ -1,23 +1,39 @@ | |||
#!/usr/bin/env python | |||
############################################################################ | |||
# Joshua R. Boverhof, David W. Robertson, LBNL | |||
# See LBNLCopyright for copyright notice! | |||
########################################################################### | |||
import unittest, tarfile, os, ConfigParser | |||
import test_t1 | |||
import test_wsdl | |||
import utils | |||
SECTION='files' | |||
CONFIG_FILE = 'config.py' | |||
def main(): | |||
def extractFiles(section, option): | |||
config = ConfigParser.ConfigParser() | |||
config.read(CONFIG_FILE) | |||
archives = config.get(SECTION, 'archives') | |||
archives = config.get(section, option) | |||
archives = eval(archives) | |||
test_t1.CONFIG = config | |||
for file in archives: | |||
tar = tarfile.open(file) | |||
if not os.access(tar.membernames[0], os.R_OK): | |||
for i in tar.getnames(): | |||
tar.extract(i) | |||
unittest.TestProgram(defaultTest='test_t1.makeStandAloneSuite') | |||
def makeTestSuite(): | |||
suite = unittest.TestSuite() | |||
suite.addTest(test_wsdl.makeTestSuite("services_by_file")) | |||
return suite | |||
def main(): | |||
extractFiles(SECTION, 'archives') | |||
loader = utils.MatchTestLoader(True, None, "makeTestSuite") | |||
unittest.main(defaultTest="makeTestSuite", testLoader=loader) | |||
if __name__ == "__main__" : main() | |||
@@ -1,14 +1,22 @@ | |||
#!/usr/bin/env python | |||
import unittest, tarfile, os, ConfigParser | |||
import test_t1 | |||
CONFIG_FILE = 'config.py' | |||
############################################################################ | |||
# Joshua R. Boverhof, David W. Robertson, LBNL | |||
# See LBNLCopyright for copyright notice! | |||
########################################################################### | |||
import unittest | |||
import test_wsdl | |||
import utils | |||
def main(): | |||
config = ConfigParser.ConfigParser() | |||
config.read(CONFIG_FILE) | |||
test_t1.CONFIG = config | |||
unittest.TestProgram(defaultTest='test_t1.makeNetworkSuite') | |||
def makeTestSuite(): | |||
suite = unittest.TestSuite() | |||
suite.addTest(test_wsdl.makeTestSuite(("no_schemas", "simpleTypes", "services_by_http"))) | |||
return suite | |||
def main(): | |||
loader = utils.MatchTestLoader(True, None, "makeTestSuite") | |||
unittest.main(defaultTest="makeTestSuite", testLoader=loader) | |||
if __name__ == "__main__" : main() | |||