summaryrefslogtreecommitdiffstats
path: root/bindings/python
diff options
context:
space:
mode:
authorDamien Laniel <dlaniel@entrouvert.com>2008-05-20 13:22:55 +0000
committerDamien Laniel <dlaniel@entrouvert.com>2008-05-20 13:22:55 +0000
commitd2d5f2084fa24d3623b3a354f067be66fcb123a2 (patch)
treeed06f9211f54c723e823c5b94c59c154716a64b1 /bindings/python
parent7860262cf668640149c2ae37db5cf9b8d0b86587 (diff)
downloadlasso-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.py74
-rwxr-xr-xbindings/python/tests/idwsf1_tests.py2
-rwxr-xr-xbindings/python/tests/tests.py103
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('&', '&amp;').replace('<', '&lt;').replace('>', '&gt;')
+
+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)