diff --git a/src/sextante/core/Sextante.py b/src/sextante/core/Sextante.py index 8d3e27164d13..805323069fc3 100644 --- a/src/sextante/core/Sextante.py +++ b/src/sextante/core/Sextante.py @@ -369,6 +369,7 @@ def error(msg): QApplication.restoreOverrideCursor() QMessageBox.critical(None, "Error", msg) SextanteLog.addToLog(SextanteLog.LOG_ERROR, msg) + cancel(); def cancel(): try: algEx.finished.disconnect() diff --git a/src/sextante/tests/test.py b/src/sextante/tests/test.py index c7418a87b830..1bd5d110cfa5 100755 --- a/src/sextante/tests/test.py +++ b/src/sextante/tests/test.py @@ -50,6 +50,12 @@ class DataProviderStub: def __init__(self, uri): self.dataSourceUri = lambda: uri +class bcolors: + INFO = '\033[94m' + WARNING = '\033[91m' + ENDC = '\033[0m' + + class SextantePluginTest(unittest.TestCase): """Test suite for Sextante QGis plugin""" @@ -90,7 +96,7 @@ def gen_test_parameters(self, alg): yield p.min yield 42 elif isinstance(p, ParameterString): - yield str() + yield "Test string" elif isinstance(p, ParameterBoolean): b = not b yield b @@ -112,9 +118,10 @@ def gen_test_parameters(self, alg): def test_runalg(self): SextanteConfig.setSettingValue(SextanteConfig.USE_THREADS, self.threaded) args = list(self.gen_test_parameters(self.alg)) - print - print self.msg, "Parameters: ", self.alg.parameters, ' => ', args + print + print bcolors.INFO, self.msg, bcolors.ENDC, "Parameters: ", self.alg.parameters, ' => ', args, bcolors.WARNING, result = Sextante.runalg(self.algId, *args) + print bcolors.ENDC self.assertIsNotNone(result, self.msg) if not result: return @@ -126,7 +133,8 @@ def algSuite(): s = unittest.TestSuite() for provider, algs in Sextante.algs.items(): if not algs.items(): - print "WARNING: %s seems to provide no algs!" % provider + print bcolors.WARNING, "WARNING: %s seems to provide no algs!" % provider, + print bcolors.ENDC continue algId, alg = algs.items()[-1] s.addTest(SextanteProviderTestCase(algId, alg, True)) @@ -137,7 +145,10 @@ def algSuite(): if not os.path.exists("data/raster") or not os.path.exists("data/vector"): print "Please install test data under ./data/raster and ./data/vector." exit(1) - loadSuite = unittest.TestLoader().loadTestsFromTestCase(SextantePluginTest) - unittest.TextTestRunner(verbosity=2).run(loadSuite) - unittest.TextTestRunner(verbosity=2).run(algSuite()) + try: + loadSuite = unittest.TestLoader().loadTestsFromTestCase(SextantePluginTest) + unittest.TextTestRunner(verbosity=2).run(loadSuite) + unittest.TextTestRunner(verbosity=2).run(algSuite()) + except KeyboardInterrupt: + print bcolors.ENDC, "Test interrupted."