Browse Source

Brought README up to date, made changes having to do with moving of

ZSI-specific material to zsi/test/wsdlpy, removed dependencies on
utils.py.
main
David Robertson 21 years ago
parent
commit
a6cbad2a61
5 changed files with 50 additions and 54 deletions
  1. +8
    -24
      test/README
  2. +1
    -1
      test/__init__.py
  3. +37
    -21
      test/test_wsdl.py
  4. +2
    -4
      test/test_wstools.py
  5. +2
    -4
      test/test_wstools_net.py

+ 8
- 24
test/README View File

@@ -1,25 +1,23 @@
Two top level modules have been provided to run the tests. "test_wstools.py" is used
to run all of the local tests. "test_wstools_net.py" is used to run all of the
tests that require network access.
Two top level modules have been provided to run the tests. "test_wstools.py"
is used to run all of the local tests. "test_wstools_net.py" is used to run
all of the tests that require network access.


TESTS:
test_t1 -- Basic test, just checks that wsdl and xsd objects are in the
right places.
Add the -v option for more informative feedback.


ADDING TESTS: ADDING TESTS:
1. For Stand-Alone tests add WSDL FILE to appropriate archive file 1. For Stand-Alone tests add WSDL FILE to appropriate archive file
Need to add a NEW Archive?: Need to add a NEW Archive?:
config.py [files] "archive" -- tuple of all archive files,
config.txt [files] "archive" -- tuple of all archive files,
if you need to create a new archive append the archive if you need to create a new archive append the archive
name to the 'archive' tuple. name to the 'archive' tuple.


2. Edit config.py section(s):
2. Edit config.txt section(s):
option -- name by which service will be referenced in test case. option -- name by which service will be referenced in test case.
Need an entry under appropriate section(s), this name Need an entry under appropriate section(s), this name
must be unique within each section it appears but it may must be unique within each section it appears but it may
appear in multiple sections. appear in multiple sections.


config.py "test" sections:
config.txt "test" sections:
Stand-Alone -- add "option" under [services_by_file] Stand-Alone -- add "option" under [services_by_file]
eg. amazon = exports/AmazonWebServices.wsdl eg. amazon = exports/AmazonWebServices.wsdl


@@ -28,21 +26,7 @@ ADDING TESTS:


Broken -- add "option" under [broken] Broken -- add "option" under [broken]


3. In test module(s)
a. Add test case:

#eg. test_t1.py
class AmazonTestCase(WSDLToolsTestCase):
def test(self):
self.option = 'amazon'
self.loadFromConfig(CONFIG)

b. Add class name of test case to CASES list.
CASES = [AirportTestCase,
AmazonTestCase,
.... etc

4. Done
3. Done




CONTENTS OF SAMPLE WSDL/XSD: CONTENTS OF SAMPLE WSDL/XSD:


+ 1
- 1
test/__init__.py View File

@@ -1,5 +1,5 @@
#! /usr/bin/env python #! /usr/bin/env python
"""wsdl2python and wstools.WSDLTools.WSDLReader tests directory."""
"""wstools.WSDLTools.WSDLReader tests directory."""


import utils import utils



+ 37
- 21
test/test_wsdl.py View File

@@ -6,8 +6,10 @@
########################################################################### ###########################################################################


import sys, unittest import sys, unittest
import ConfigParser
from ZSI.wstools.Utility import DOM from ZSI.wstools.Utility import DOM
import utils
from ZSI.wstools.WSDLTools import WSDLReader
from ZSI.wstools.TimeoutSocket import TimeoutError


class WSDLToolsTestCase(unittest.TestCase): class WSDLToolsTestCase(unittest.TestCase):


@@ -15,10 +17,7 @@ class WSDLToolsTestCase(unittest.TestCase):
unittest.TestCase.__init__(self, methodName) unittest.TestCase.__init__(self, methodName)


def setUp(self): def setUp(self):
global configLoader

# not thread safe
self.path = configLoader.nameGenerator.next()
self.path = nameGenerator.next()
print self.path print self.path
sys.stdout.flush() sys.stdout.flush()


@@ -45,9 +44,17 @@ class WSDLToolsTestCase(unittest.TestCase):
name = DOM.getAttr(cnode, key) name = DOM.getAttr(cnode, key)
component[name] component[name]


def wsdlTestAll(self):
def test_all(self):
try: try:
self.wsdl = utils.setUpWsdl(self.path)
if self.path[:7] == 'http://':
self.wsdl = WSDLReader().loadFromURL(self.path)
else:
self.wsdl = WSDLReader().loadFromFile(self.path)

except TimeoutError:
print "connection timed out"
sys.stdout.flush()
return
except: except:
self.path = self.path + ": load failed, unable to start" self.path = self.path + ": load failed, unable to start"
raise raise
@@ -120,25 +127,34 @@ class WSDLToolsTestCase(unittest.TestCase):
self.checkXSDCollection('simpleType', schema.types, node) self.checkXSDCollection('simpleType', schema.types, node)




def makeTestSuite(section=None):
global configLoader

def setUpOptions(section):
cp = ConfigParser.ConfigParser()
cp.read('config.txt')
if not cp.sections():
print 'fatal error: configuration file config.txt not present'
sys.exit(0)
if not cp.has_section(section):
print '%s section not present in configuration file, exiting' % section
sys.exit(0)
return cp, len(cp.options(section))

def getOption(cp, section):
for name, value in cp.items(section):
yield value
def makeTestSuite(section='services_by_file'):
global nameGenerator

cp, numTests = setUpOptions(section)
nameGenerator = getOption(cp, section)
suite = unittest.TestSuite() suite = unittest.TestSuite()
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))
for i in range(0, numTests):
suite.addTest(unittest.makeSuite(WSDLToolsTestCase, 'test_'))
return suite return suite




def main(): def main():
loader = utils.MatchTestLoader(False, None, "makeTestSuite")
unittest.main(defaultTest="makeTestSuite", testLoader=loader)
unittest.main(defaultTest="makeTestSuite")


if __name__ == "__main__" : main() if __name__ == "__main__" : main()

+ 2
- 4
test/test_wstools.py View File

@@ -7,11 +7,10 @@


import unittest, tarfile, os, ConfigParser import unittest, tarfile, os, ConfigParser
import test_wsdl import test_wsdl
import utils




SECTION='files' SECTION='files'
CONFIG_FILE = 'config.py'
CONFIG_FILE = 'config.txt'


def extractFiles(section, option): def extractFiles(section, option):
config = ConfigParser.ConfigParser() config = ConfigParser.ConfigParser()
@@ -31,8 +30,7 @@ def makeTestSuite():


def main(): def main():
extractFiles(SECTION, 'archives') extractFiles(SECTION, 'archives')
loader = utils.MatchTestLoader(True, None, "makeTestSuite")
unittest.main(defaultTest="makeTestSuite", testLoader=loader)
unittest.main(defaultTest="makeTestSuite")


if __name__ == "__main__" : main() if __name__ == "__main__" : main()


+ 2
- 4
test/test_wstools_net.py View File

@@ -6,16 +6,14 @@
########################################################################### ###########################################################################
import unittest import unittest
import test_wsdl import test_wsdl
import utils


def makeTestSuite(): def makeTestSuite():
suite = unittest.TestSuite() suite = unittest.TestSuite()
suite.addTest(test_wsdl.makeTestSuite(("no_schemas", "simpleTypes", "services_by_http")))
suite.addTest(test_wsdl.makeTestSuite("services_by_http"))
return suite return suite


def main(): def main():
loader = utils.MatchTestLoader(True, None, "makeTestSuite")
unittest.main(defaultTest="makeTestSuite", testLoader=loader)
unittest.main(defaultTest="makeTestSuite")


if __name__ == "__main__" : main() if __name__ == "__main__" : main()


Loading…
Cancel
Save