diff options
| author | Damien Laniel <dlaniel@entrouvert.com> | 2008-05-20 13:22:55 +0000 |
|---|---|---|
| committer | Damien Laniel <dlaniel@entrouvert.com> | 2008-05-20 13:22:55 +0000 |
| commit | d2d5f2084fa24d3623b3a354f067be66fcb123a2 (patch) | |
| tree | ed06f9211f54c723e823c5b94c59c154716a64b1 /bindings/python | |
| parent | 7860262cf668640149c2ae37db5cf9b8d0b86587 (diff) | |
| download | lasso-d2d5f2084fa24d3623b3a354f067be66fcb123a2.tar.gz lasso-d2d5f2084fa24d3623b3a354f067be66fcb123a2.tar.xz lasso-d2d5f2084fa24d3623b3a354f067be66fcb123a2.zip | |
import main test file
Diffstat (limited to 'bindings/python')
| -rw-r--r-- | bindings/python/tests/XmlTestRunner.py | 74 | ||||
| -rwxr-xr-x | bindings/python/tests/idwsf1_tests.py | 2 | ||||
| -rwxr-xr-x | bindings/python/tests/tests.py | 103 |
3 files changed, 178 insertions, 1 deletions
diff --git a/bindings/python/tests/XmlTestRunner.py b/bindings/python/tests/XmlTestRunner.py new file mode 100644 index 00000000..152dc8b2 --- /dev/null +++ b/bindings/python/tests/XmlTestRunner.py @@ -0,0 +1,74 @@ +# -*- coding: UTF-8 -*- +# +# $Id: XmlTestRunner.py 3254 2007-06-05 21:23:57Z fpeters $ +# +# XmlTestRunner +# +# Copyright (C) 2004-2007 Entr'ouvert +# +# Authors: Frederic Peters <fpeters@entrouvert.com> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +import unittest +import time +import sys + +def xml(text): + if not text: + return "" + return text.replace('&', '&').replace('<', '<').replace('>', '>') + +class XmlTestResult(unittest.TestResult): + def addSuccess(self, test): + print """ <test result="success"> + <id>%s</id> + <description>%s</description> + </test>""" % (test.id(), xml(test.shortDescription())) + + def addError(self, test, err): + unittest.TestResult.addError(self, test, err) + print """ <test result="error"> + <id>%s</id> + <description>%s</description> + </test>""" % (test.id(), xml(test.shortDescription())) + # TODO: add err + + def addFailure(self, test, err): + unittest.TestResult.addFailure(self, test, err) + print """ <test result="failure"> + <id>%s</id> + <description>%s</description> + </test>""" % (test.id(), xml(test.shortDescription())) + # TODO: add err + + +class XmlTestRunner: + def _makeResult(self): + return XmlTestResult() + + def run(self, test): + print "<suite>" + result = self._makeResult() + startTime = time.time() + test(result) + stopTime = time.time() + timeTaken = float(stopTime - startTime) + print " <duration>%s</duration>" % timeTaken + print "</suite>" + + return result + diff --git a/bindings/python/tests/idwsf1_tests.py b/bindings/python/tests/idwsf1_tests.py index db5534a5..2d04844a 100755 --- a/bindings/python/tests/idwsf1_tests.py +++ b/bindings/python/tests/idwsf1_tests.py @@ -134,7 +134,7 @@ class IdWsf1TestCase(unittest.TestCase): # Login from WSC sp_identity_dump, sp_session_dump, idp_identity_dump, idp_session_dump = self.login(self.wsc, self.idp) - + # Init discovery query wsc_disco = lasso.Discovery(self.wsc) wsc_disco.setSessionFromDump(sp_session_dump) diff --git a/bindings/python/tests/tests.py b/bindings/python/tests/tests.py new file mode 100755 index 00000000..9915a64e --- /dev/null +++ b/bindings/python/tests/tests.py @@ -0,0 +1,103 @@ +#! /usr/bin/env python +# -*- coding: UTF-8 -*- +# +# $Id: tests.py 3425 2007-10-10 09:31:03Z dlaniel $ +# +# Python unit tests for Lasso library +# +# Copyright (C) 2004-2007 Entr'ouvert +# http://lasso.entrouvert.org +# +# Authors: See AUTHORS file in top-level directory. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +import __builtin__ +import imp +from optparse import OptionParser +import os +import sys +import time +import unittest + +from XmlTestRunner import XmlTestRunner + +if not '..' in sys.path: + sys.path.insert(0, '..') +if not '../.libs' in sys.path: + sys.path.insert(0, '../.libs') + + +testSuites = [ + 'binding_tests', + 'profiles_tests', + ] + +import lasso +if lasso.WSF_SUPPORT: + testSuites.append('idwsf1_tests') + testSuites.append('idwsf2_tests') + + +# Parse command line options. +parser = OptionParser() +parser.add_option( + '-x', '--xml', dest = 'xmlMode', help = 'enable XML output', + action = 'store_true', default = False) +parser.add_option( + '-s', '--source-dir', dest = 'srcDir', help = 'path of source directory', + metavar = 'DIR', default = os.getcwd()) +(options, args) = parser.parse_args() +__builtin__.__dict__['dataDir'] = os.path.join(options.srcDir, '../../../tests/data') + +if options.xmlMode: + print """<?xml version="1.0"?>""" + print """<testsuites xmlns="http://check.sourceforge.net/ns">""" + print """ <title>Python Bindings</title>""" + print """ <datetime>%s</datetime>""" % time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) + +success = True +for testSuite in testSuites: + fp, pathname, description = imp.find_module(testSuite) + try: + module = imp.load_module(testSuite, fp, pathname, description) + finally: + if fp: + fp.close() + if not module: + print >> sys.stderr, 'Unable to load test suite:', testSuite + continue + + if module.__doc__: + doc = module.__doc__ + else: + doc = testSuite + + if options.xmlMode: + runner = XmlTestRunner() + else: + runner = unittest.TextTestRunner(verbosity=2) + print + print '-' * len(doc) + print doc + print '-' * len(doc) + result = runner.run(module.allTests) + success = success and result.wasSuccessful() + +if options.xmlMode: + print """</testsuites>""" + +sys.exit(not success) |
