From eb94c511c730ed483d78e49005ebc135d412b056 Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Tue, 21 Sep 2021 11:29:53 +0200 Subject: [PATCH] Fix tests --- easybuild/base/testing.py | 8 ++++++++ test/framework/easyblock.py | 34 +++++++++++++++++----------------- test/framework/easyconfig.py | 1 - test/framework/options.py | 2 +- 4 files changed, 26 insertions(+), 19 deletions(-) diff --git a/easybuild/base/testing.py b/easybuild/base/testing.py index 7f44c318cc..46e48c5f5f 100644 --- a/easybuild/base/testing.py +++ b/easybuild/base/testing.py @@ -206,6 +206,14 @@ def mocked_stdout_stderr(self, mock_stdout=True, mock_stderr=True): if mock_stderr: self.mock_stderr(False) + @contextmanager + def mocked_stderr(self): + self.mock_stderr(True) + try: + yield sys.stderr + finally: + self.mock_stderr(False) + def tearDown(self): """Cleanup after running a test.""" self.mock_stdout(False) diff --git a/test/framework/easyblock.py b/test/framework/easyblock.py index c58495bb80..94d237741f 100644 --- a/test/framework/easyblock.py +++ b/test/framework/easyblock.py @@ -2088,41 +2088,41 @@ def test_parallel(self): self.assertEqual(test_eb.cfg.parallel, auto_parallel) # only 'parallel' easyconfig parameter specified (no 'parallel' build option) - with self.temporarily_allow_deprecated_behaviour(): + with self.temporarily_allow_deprecated_behaviour(), self.mocked_stderr(): test_eb = EasyBlock(EasyConfig(toy_ec1)) test_eb.check_readiness_step() self.assertEqual(test_eb.cfg.parallel, 123) - with self.temporarily_allow_deprecated_behaviour(): + with self.temporarily_allow_deprecated_behaviour(), self.mocked_stderr(): self.assertEqual(test_eb.cfg['parallel'], 123) # both 'parallel' and 'maxparallel' easyconfig parameters specified (no 'parallel' build option) - with self.temporarily_allow_deprecated_behaviour(): + with self.temporarily_allow_deprecated_behaviour(), self.mocked_stderr(): test_eb = EasyBlock(EasyConfig(toy_ec2)) test_eb.check_readiness_step() self.assertEqual(test_eb.cfg.parallel, 67) - with self.temporarily_allow_deprecated_behaviour(): + with self.temporarily_allow_deprecated_behaviour(), self.mocked_stderr(): self.assertEqual(test_eb.cfg['parallel'], 67) # make sure 'parallel = False' is not overriden (no 'parallel' build option) - with self.temporarily_allow_deprecated_behaviour(): + with self.temporarily_allow_deprecated_behaviour(), self.mocked_stderr(): test_eb = EasyBlock(EasyConfig(toy_ec3)) test_eb.check_readiness_step() self.assertEqual(test_eb.cfg.parallel, False) - with self.temporarily_allow_deprecated_behaviour(): + with self.temporarily_allow_deprecated_behaviour(), self.mocked_stderr(): self.assertEqual(test_eb.cfg['parallel'], False) # only 'maxparallel' easyconfig parameter specified (no 'parallel' build option) test_eb = EasyBlock(EasyConfig(toy_ec4)) test_eb.check_readiness_step() self.assertEqual(test_eb.cfg.parallel, 67) - with self.temporarily_allow_deprecated_behaviour(): + with self.temporarily_allow_deprecated_behaviour(), self.mocked_stderr(): self.assertEqual(test_eb.cfg['parallel'], 67) # make sure 'maxparallel = False' is treated as 1 (no 'parallel' build option) test_eb = EasyBlock(EasyConfig(toy_ec5)) test_eb.check_readiness_step() self.assertEqual(test_eb.cfg.parallel, 1) - with self.temporarily_allow_deprecated_behaviour(): + with self.temporarily_allow_deprecated_behaviour(), self.mocked_stderr(): self.assertEqual(test_eb.cfg['parallel'], 1) # only 'parallel' build option specified @@ -2130,45 +2130,45 @@ def test_parallel(self): test_eb = EasyBlock(EasyConfig(toy_ec)) test_eb.check_readiness_step() self.assertEqual(test_eb.cfg.parallel, 97) - with self.temporarily_allow_deprecated_behaviour(): + with self.temporarily_allow_deprecated_behaviour(), self.mocked_stderr(): self.assertEqual(test_eb.cfg['parallel'], 97) # both 'parallel' build option and easyconfig parameter specified (no 'maxparallel') - with self.temporarily_allow_deprecated_behaviour(): + with self.temporarily_allow_deprecated_behaviour(), self.mocked_stderr(): test_eb = EasyBlock(EasyConfig(toy_ec1)) test_eb.check_readiness_step() self.assertEqual(test_eb.cfg.parallel, 97) - with self.temporarily_allow_deprecated_behaviour(): + with self.temporarily_allow_deprecated_behaviour(), self.mocked_stderr(): self.assertEqual(test_eb.cfg['parallel'], 97) # both 'parallel' and 'maxparallel' easyconfig parameters specified + 'parallel' build option - with self.temporarily_allow_deprecated_behaviour(): + with self.temporarily_allow_deprecated_behaviour(), self.mocked_stderr(): test_eb = EasyBlock(EasyConfig(toy_ec2)) test_eb.check_readiness_step() self.assertEqual(test_eb.cfg.parallel, 67) - with self.temporarily_allow_deprecated_behaviour(): + with self.temporarily_allow_deprecated_behaviour(), self.mocked_stderr(): self.assertEqual(test_eb.cfg['parallel'], 67) # make sure 'parallel = False' is not overriden (with 'parallel' build option) - with self.temporarily_allow_deprecated_behaviour(): + with self.temporarily_allow_deprecated_behaviour(), self.mocked_stderr(): test_eb = EasyBlock(EasyConfig(toy_ec3)) test_eb.check_readiness_step() self.assertEqual(test_eb.cfg.parallel, 0) - with self.temporarily_allow_deprecated_behaviour(): + with self.temporarily_allow_deprecated_behaviour(), self.mocked_stderr(): self.assertEqual(test_eb.cfg['parallel'], 0) # only 'maxparallel' easyconfig parameter specified (with 'parallel' build option) test_eb = EasyBlock(EasyConfig(toy_ec4)) test_eb.check_readiness_step() self.assertEqual(test_eb.cfg.parallel, 67) - with self.temporarily_allow_deprecated_behaviour(): + with self.temporarily_allow_deprecated_behaviour(), self.mocked_stderr(): self.assertEqual(test_eb.cfg['parallel'], 67) # make sure 'maxparallel = False' is treated as 1 (with 'parallel' build option) test_eb = EasyBlock(EasyConfig(toy_ec5)) test_eb.check_readiness_step() self.assertEqual(test_eb.cfg.parallel, 1) - with self.temporarily_allow_deprecated_behaviour(): + with self.temporarily_allow_deprecated_behaviour(), self.mocked_stderr(): self.assertEqual(test_eb.cfg['parallel'], 1) # Template updated correctly diff --git a/test/framework/easyconfig.py b/test/framework/easyconfig.py index ec16fd8d85..aac06d6724 100644 --- a/test/framework/easyconfig.py +++ b/test/framework/easyconfig.py @@ -3078,7 +3078,6 @@ def test_template_constant_dict(self): res = template_constant_dict(ec) res.pop('arch') - expected['parallel'] = 42 self.assertEqual(res, expected) toy_ec = os.path.join(test_ecs_dir, 't', 'toy', 'toy-0.0-deps.eb') diff --git a/test/framework/options.py b/test/framework/options.py index 126c52931b..8b6231adf9 100644 --- a/test/framework/options.py +++ b/test/framework/options.py @@ -405,7 +405,7 @@ def test_ignore_test_failure(self): args = [toy_ec, '--ignore-test-failure', '--force'] - with self.mocked_stdout_stderr() as (_, stderr): + with self.mocked_stderr() as stderr: outtxt = self.eb_main(args, do_build=True) msg = 'Test failure ignored'