diff --git a/beat/core/test/test_execution.py b/beat/core/test/test_execution.py index 6ebf89c2b43c7a5107049c1acfae17d18fa57273..fdd4991d6cde6412fdee227eee5010917a8ce668 100644 --- a/beat/core/test/test_execution.py +++ b/beat/core/test/test_execution.py @@ -39,11 +39,7 @@ import os import glob import logging - -logger = logging.getLogger(__name__) - -import numpy -import unittest +import nose.tools from ..experiment import Experiment from ..execution import LocalExecutor @@ -54,11 +50,10 @@ from ..hash import toPath from ..data import CachedDataSource from . import prefix, tmp_prefix -from .utils import cleanup from .utils import slow -import nose.tools +logger = logging.getLogger(__name__) # ---------------------------------------------------------- @@ -74,11 +69,11 @@ class BaseExecutionMixIn(object): indexfiles = glob.glob(finalpath + "*.index") indexchksums = glob.glob(finalpath + "*.index.checksum") - assert datafiles + nose.tools.assert_true(datafiles) nose.tools.eq_(len(datafiles), len(indexfiles)) for k in datafiles + indexfiles: checksum_file = k + ".checksum" - assert checksum_file in datachksums + indexchksums + nose.tools.assert_true(checksum_file in datachksums + indexchksums) stored_checksum = None with open(checksum_file, "rt") as f: stored_checksum = f.read().strip() @@ -89,13 +84,16 @@ class BaseExecutionMixIn(object): """Loads the result of an experiment, in a single go""" f = CachedDataSource() - assert f.setup( - os.path.join(executor.cache, executor.data["result"]["path"] + ".data"), - executor.prefix, + nose.tools.assert_true( + f.setup( + os.path.join(executor.cache, executor.data["result"]["path"] + ".data"), + executor.prefix, + ) ) + data, start, end = f[0] nose.tools.eq_(start, 0) - assert end >= start + nose.tools.assert_true(end >= start) f.close() return data @@ -116,7 +114,9 @@ class BaseExecutionMixIn(object): prefix, label, dataformat_cache, database_cache, algorithm_cache ) - assert experiment.valid, "\n * %s" % "\n * ".join(experiment.errors) + nose.tools.assert_true( + experiment.valid, "\n * %s" % "\n * ".join(experiment.errors) + ) for block_name, infos in experiment.datasets.items(): view = infos["database"].view(infos["protocol"], infos["set"]) @@ -141,17 +141,19 @@ class BaseExecutionMixIn(object): database_cache, algorithm_cache, ) - assert executor.valid, "\n * %s" % "\n * ".join(executor.errors) + nose.tools.assert_true( + executor.valid, "\n * %s" % "\n * ".join(executor.errors) + ) with executor: result = executor.process(timeout_in_minutes=3) - assert result - assert "status" in result - assert "stdout" in result - assert "stderr" in result - assert "timed_out" in result - assert "system_error" in result - assert "user_error" in result + nose.tools.assert_true(result) + nose.tools.assert_true("status" in result) + nose.tools.assert_true("stdout" in result) + nose.tools.assert_true("stderr" in result) + nose.tools.assert_true("timed_out" in result) + nose.tools.assert_true("system_error" in result) + nose.tools.assert_true("user_error" in result) if result["status"] != 0: logger.warn("status: %i", result["status"]) logger.warn("(eventual) system errors: %s", result["system_error"]) @@ -162,10 +164,10 @@ class BaseExecutionMixIn(object): if result["system_error"]: logger.warn("system errors: %s", result["system_error"]) return result - assert result["status"] == 0 + nose.tools.eq_(result["status"], 0) if "statistics" in result: - assert isinstance(result["statistics"], dict) + nose.tools.assert_true(isinstance(result["statistics"], dict)) if executor.analysis: self.check_output(tmp_prefix, executor.data["result"]["path"]) @@ -175,177 +177,179 @@ class BaseExecutionMixIn(object): self.check_output(tmp_prefix, details["path"]) # compares all results - assert results + nose.tools.assert_true(results) for k, result in enumerate(results): expected = result.__class__() expected.from_dict(expected_result[k], casting="unsafe") # defaults=False - assert result.isclose(expected), "%r is not close enough to %r" % ( - result.as_dict(), - expected.as_dict(), + nose.tools.assert_true( + result.isclose(expected), + "%r is not close enough to %r" % (result.as_dict(), expected.as_dict()), ) @slow def test_integers_addition_1(self): - assert ( + nose.tools.assert_is_none( self.execute( "user/user/integers_addition/1/integers_addition", [{"sum": 495, "nb": 9}], ) - is None ) @slow def test_integers_addition_2(self): - assert ( + nose.tools.assert_is_none( self.execute( "user/user/integers_addition/2/integers_addition", [{"sum": 4995, "nb": 9}], ) - is None ) @slow def test_single_1_single(self): - assert self.execute("user/user/single/1/single", [{"out_data": 42}]) is None + nose.tools.assert_is_none( + self.execute("user/user/single/1/single", [{"out_data": 42}]) + ) @slow def test_single_1_add(self): - assert self.execute("user/user/single/1/single_add", [{"out_data": 43}]) is None + nose.tools.assert_is_none( + self.execute("user/user/single/1/single_add", [{"out_data": 43}]) + ) @slow def test_single_1_add2(self): - assert ( - self.execute("user/user/single/1/single_add2", [{"out_data": 44}]) is None + nose.tools.assert_is_none( + self.execute("user/user/single/1/single_add2", [{"out_data": 44}]) ) @slow def test_single_1_error(self): result = self.execute("user/user/single/1/single_error", [None]) - assert result + nose.tools.assert_true(result) nose.tools.eq_(result["status"], 1) - assert result["user_error"] - assert "NameError" in result["user_error"] + nose.tools.assert_true(result["user_error"]) + nose.tools.assert_true("NameError" in result["user_error"]) nose.tools.eq_(result["system_error"], "") @slow def test_single_1_crash(self): result = self.execute("user/user/single/1/single_crash", [None]) - assert result + nose.tools.assert_true(result) nose.tools.eq_(result["status"], 1) - assert result["user_error"] - assert "NameError" in result["user_error"] + nose.tools.assert_true(result["user_error"]) + nose.tools.assert_true("NameError" in result["user_error"]) nose.tools.eq_(result["system_error"], "") @slow def test_single_1_db_crash(self): result = self.execute("user/user/single/1/single_db_crash", [None]) - assert result - assert result["status"] != 0 - assert result["user_error"] - assert "a = b" in result["user_error"] + nose.tools.assert_true(result) + nose.tools.assert_not_equal(result["status"], 0) + nose.tools.assert_true(result["user_error"]) + nose.tools.assert_true("a = b" in result["user_error"]) nose.tools.eq_(result["system_error"], "") @slow def test_single_1_large(self): - assert ( - self.execute("user/user/single/1/single_large", [{"out_data": 2.0}]) is None + nose.tools.assert_is_none( + self.execute("user/user/single/1/single_large", [{"out_data": 2.0}]) ) @slow def test_double_1(self): - assert self.execute("user/user/double/1/double", [{"out_data": 42}]) is None + nose.tools.assert_is_none( + self.execute("user/user/double/1/double", [{"out_data": 42}]) + ) @slow def test_triangle_1(self): - assert self.execute("user/user/triangle/1/triangle", [{"out_data": 42}]) is None + nose.tools.assert_is_none( + self.execute("user/user/triangle/1/triangle", [{"out_data": 42}]) + ) @slow def test_too_many_nexts(self): result = self.execute("user/user/triangle/1/too_many_nexts", [None]) - assert result - assert result["status"] != 0 - assert result["user_error"] - assert "no more data" in result["user_error"] + nose.tools.assert_true(result) + nose.tools.assert_not_equal(result["status"], 0) + nose.tools.assert_true(result["user_error"]) + nose.tools.assert_true("no more data" in result["user_error"]) @slow def test_double_triangle_1(self): - assert ( + nose.tools.assert_is_none( self.execute( "user/user/double_triangle/1/double_triangle", [{"out_data": 42}] ) - is None ) @slow def test_inputs_mix_1(self): - assert ( - self.execute("user/user/inputs_mix/1/test", [{"sum": 495, "nb": 9}]) is None + nose.tools.assert_is_none( + self.execute("user/user/inputs_mix/1/test", [{"sum": 495, "nb": 9}]) ) @slow def test_inputs_mix_2(self): - assert ( - self.execute("user/user/inputs_mix/2/test", [{"sum": 495, "nb": 9}]) is None + nose.tools.assert_is_none( + self.execute("user/user/inputs_mix/2/test", [{"sum": 495, "nb": 9}]) ) @slow def test_inputs_mix_3(self): - assert ( - self.execute("user/user/inputs_mix/3/test", [{"sum": 945, "nb": 9}]) is None + nose.tools.assert_is_none( + self.execute("user/user/inputs_mix/3/test", [{"sum": 945, "nb": 9}]) ) @slow def test_inputs_mix_3b(self): - assert ( + nose.tools.assert_is_none( self.execute("user/user/inputs_mix/3/test2", [{"sum": 954, "nb": 9}]) - is None ) @slow def test_inputs_mix_4(self): - assert ( - self.execute("user/user/inputs_mix/4/test", [{"sum": 990, "nb": 9}]) is None + nose.tools.assert_is_none( + self.execute("user/user/inputs_mix/4/test", [{"sum": 990, "nb": 9}]) ) @slow def test_inputs_mix_4b(self): - assert ( + nose.tools.assert_is_none( self.execute("user/user/inputs_mix/4/test2", [{"sum": 1008, "nb": 9}]) - is None ) @slow def test_integers_labelled_1(self): - assert ( + nose.tools.assert_is_none( self.execute( "user/user/integers_labelled/1/test", [{"nb_data_units": 3, "indices": "0 - 4\n5 - 9\n10 - 14\n"}], ) - is None ) @slow def test_preprocessing_1(self): - assert ( + nose.tools.assert_is_none( self.execute( "user/user/preprocessing/1/different_frequencies", [{"sum": 363, "nb": 8}], ) - is None ) @slow def test_single_1_prepare_success(self): - assert ( + nose.tools.assert_is_none( self.execute("user/user/single/1/prepare_success", [{"out_data": 42}]) - is None ) @slow def test_loop_1(self): - assert self.execute("user/user/loop/1/loop", [{"sum": 504, "nb": 9}]) is None + nose.tools.assert_is_none( + self.execute("user/user/loop/1/loop", [{"sum": 504, "nb": 9}]) + ) # For benchmark purposes # @slow @@ -389,16 +393,14 @@ class TestLocalExecution(BaseExecutionMixIn): @slow def test_single_1_prepare_error(self): with nose.tools.assert_raises(RuntimeError) as context: - result = self.execute("user/user/single/1/prepare_error", [None]) - - assert "Algorithm prepare failed" in context.exception + self.execute("user/user/single/1/prepare_error", [None]) + nose.tools.assert_true("Algorithm prepare failed" in context.exception) @slow def test_single_1_setup_error(self): with nose.tools.assert_raises(RuntimeError) as context: - result = self.execute("user/user/single/1/setup_error", [None]) - - assert "Algorithm setup failed" in context.exception + self.execute("user/user/single/1/setup_error", [None]) + nose.tools.assert_true("Algorithm setup failed" in context.exception) # ---------------------------------------------------------- @@ -427,12 +429,16 @@ class TestSubprocessExecution(BaseExecutionMixIn): def test_single_1_prepare_error(self): result = self.execute("user/user/single/1/prepare_error", [None]) - assert result["status"] == 1 - assert result["user_error"] == "'Could not prepare algorithm (returned False)'" + nose.tools.eq_(result["status"], 1) + nose.tools.eq_( + result["user_error"], "'Could not prepare algorithm (returned False)'" + ) @slow def test_single_1_setup_error(self): result = self.execute("user/user/single/1/setup_error", [None]) - assert result["status"] == 1 - assert result["user_error"] == "'Could not setup algorithm (returned False)'" + nose.tools.eq_(result["status"], 1) + nose.tools.eq_( + result["user_error"], "'Could not setup algorithm (returned False)'" + )