summaryrefslogtreecommitdiff
path: root/silx/app/test_.py
diff options
context:
space:
mode:
Diffstat (limited to 'silx/app/test_.py')
-rw-r--r--silx/app/test_.py159
1 files changed, 0 insertions, 159 deletions
diff --git a/silx/app/test_.py b/silx/app/test_.py
deleted file mode 100644
index a8e58bf..0000000
--- a/silx/app/test_.py
+++ /dev/null
@@ -1,159 +0,0 @@
-# coding: utf-8
-# /*##########################################################################
-# Copyright (C) 2016-2018 European Synchrotron Radiation Facility
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
-#
-# ############################################################################*/
-"""Launch unittests of the library"""
-
-__authors__ = ["V. Valls"]
-__license__ = "MIT"
-__date__ = "12/01/2018"
-
-import sys
-import argparse
-import logging
-import unittest
-
-
-class StreamHandlerUnittestReady(logging.StreamHandler):
- """The unittest class TestResult redefine sys.stdout/err to capture
- stdout/err from tests and to display them only when a test fail.
-
- This class allow to use unittest stdout-capture by using the last sys.stdout
- and not a cached one.
- """
-
- def emit(self, record):
- """
- :type record: logging.LogRecord
- """
- self.stream = sys.stderr
- super(StreamHandlerUnittestReady, self).emit(record)
-
- def flush(self):
- pass
-
-
-def createBasicHandler():
- """Create the handler using the basic configuration"""
- hdlr = StreamHandlerUnittestReady()
- fs = logging.BASIC_FORMAT
- dfs = None
- fmt = logging.Formatter(fs, dfs)
- hdlr.setFormatter(fmt)
- return hdlr
-
-
-# Use an handler compatible with unittests, else use_buffer is not working
-for h in logging.root.handlers:
- logging.root.removeHandler(h)
-logging.root.addHandler(createBasicHandler())
-logging.captureWarnings(True)
-
-_logger = logging.getLogger(__name__)
-"""Module logger"""
-
-
-class TextTestResultWithSkipList(unittest.TextTestResult):
- """Override default TextTestResult to display list of skipped tests at the
- end
- """
-
- def printErrors(self):
- unittest.TextTestResult.printErrors(self)
- # Print skipped tests at the end
- self.printErrorList("SKIPPED", self.skipped)
-
-
-def main(argv):
- """
- Main function to launch the unittests as an application
-
- :param argv: Command line arguments
- :returns: exit status
- """
- from silx.test import utils
-
- parser = argparse.ArgumentParser(description=__doc__)
- parser.add_argument("-v", "--verbose", default=0,
- action="count", dest="verbose",
- help="Increase verbosity. Option -v prints additional " +
- "INFO messages. Use -vv for full verbosity, " +
- "including debug messages and test help strings.")
- parser.add_argument("--qt-binding", dest="qt_binding", default=None,
- help="Force using a Qt binding: 'PyQt5' or 'PySide2'")
- utils.test_options.add_parser_argument(parser)
-
- options = parser.parse_args(argv[1:])
-
- test_verbosity = 1
- use_buffer = True
- if options.verbose == 1:
- logging.root.setLevel(logging.INFO)
- _logger.info("Set log level: INFO")
- test_verbosity = 2
- use_buffer = False
- elif options.verbose > 1:
- logging.root.setLevel(logging.DEBUG)
- _logger.info("Set log level: DEBUG")
- test_verbosity = 2
- use_buffer = False
-
- if options.qt_binding:
- binding = options.qt_binding.lower()
- if binding == "pyqt4":
- _logger.info("Force using PyQt4")
- import PyQt4.QtCore # noqa
- elif binding == "pyqt5":
- _logger.info("Force using PyQt5")
- import PyQt5.QtCore # noqa
- elif binding == "pyside":
- _logger.info("Force using PySide")
- import PySide.QtCore # noqa
- elif binding == "pyside2":
- _logger.info("Force using PySide2")
- import PySide2.QtCore # noqa
- else:
- raise ValueError("Qt binding '%s' is unknown" % options.qt_binding)
-
- # Configure test options
- utils.test_options.configure(options)
-
- # Run the tests
- runnerArgs = {}
- runnerArgs["verbosity"] = test_verbosity
- runnerArgs["buffer"] = use_buffer
- runner = unittest.TextTestRunner(**runnerArgs)
- runner.resultclass = TextTestResultWithSkipList
-
- # Display the result when using CTRL-C
- unittest.installHandler()
-
- import silx.test
- test_suite = unittest.TestSuite()
- test_suite.addTest(silx.test.suite())
- result = runner.run(test_suite)
-
- if result.wasSuccessful():
- exit_status = 0
- else:
- exit_status = 1
- return exit_status