Skip to content

Commit 1a426f4

Browse files
committed
Replace assertErrorRegex by standard assertRaisesRegex
1 parent 04af52f commit 1a426f4

34 files changed

+511
-511
lines changed

easybuild/base/testing.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ def nicediff(txta, txtb, offset=5):
6666

6767

6868
class TestCase(OrigTestCase):
69-
"""Enhanced test case, provides extra functionality (e.g. an assertErrorRegex method)."""
69+
"""Enhanced test case, provides extra functionality (e.g. an assertRaisesRegex method)."""
7070

7171
longMessage = True # print both standard messgae and custom message
7272

test/framework/build_log.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -66,19 +66,19 @@ def test_easybuilderror(self):
6666

6767
# if no logger is available, and no logger is specified, use default 'root' fancylogger
6868
logToFile(tmplog, enable=True)
69-
self.assertErrorRegex(EasyBuildError, 'BOOM', raise_easybuilderror, 'BOOM')
69+
self.assertRaisesRegex(EasyBuildError, 'BOOM', raise_easybuilderror, 'BOOM')
7070
logToFile(tmplog, enable=False)
7171

7272
log_re = re.compile(r"^fancyroot ::.* BOOM \(at .*:[0-9]+ in [a-z_]+\)$", re.M)
7373
logtxt = read_file(tmplog, 'r')
7474
self.assertTrue(log_re.match(logtxt), "%s matches %s" % (log_re.pattern, logtxt))
7575

7676
# test formatting of message
77-
self.assertErrorRegex(EasyBuildError, 'BOOMBAF', raise_easybuilderror, 'BOOM%s', 'BAF')
77+
self.assertRaisesRegex(EasyBuildError, 'BOOMBAF', raise_easybuilderror, 'BOOM%s', 'BAF')
7878

7979
# a '%s' in a value used to template the error message should not print a traceback!
8080
self.mock_stderr(True)
81-
self.assertErrorRegex(EasyBuildError, 'err: msg: %s', raise_easybuilderror, "err: %s", "msg: %s")
81+
self.assertRaisesRegex(EasyBuildError, 'err: msg: %s', raise_easybuilderror, "err: %s", "msg: %s")
8282
stderr = self.get_stderr()
8383
self.mock_stderr(False)
8484
# stderr should be *empty* (there should definitely not be a traceback)
@@ -148,9 +148,9 @@ def test_easybuildlog(self):
148148
logtxt_regex = re.compile(r'^%s' % expected_logtxt, re.M)
149149
self.assertTrue(logtxt_regex.search(logtxt), "Pattern '%s' found in %s" % (logtxt_regex.pattern, logtxt))
150150

151-
self.assertErrorRegex(EasyBuildError, r"DEPRECATED \(since .*: kaput", log.deprecated, "kaput", older_ver)
152-
self.assertErrorRegex(EasyBuildError, r"DEPRECATED \(since .*: 2>1", log.deprecated, "2>1", '2.0', '1.0')
153-
self.assertErrorRegex(EasyBuildError, r"DEPRECATED \(since .*: 2>1", log.deprecated, "2>1", '2.0',
151+
self.assertRaisesRegex(EasyBuildError, r"DEPRECATED \(since .*: kaput", log.deprecated, "kaput", older_ver)
152+
self.assertRaisesRegex(EasyBuildError, r"DEPRECATED \(since .*: 2>1", log.deprecated, "2>1", '2.0', '1.0')
153+
self.assertRaisesRegex(EasyBuildError, r"DEPRECATED \(since .*: 2>1", log.deprecated, "2>1", '2.0',
154154
max_ver='1.0')
155155

156156
# wipe log so we can reuse it
@@ -257,7 +257,7 @@ def run_check(args, silent=False, expected_stderr='', **kwargs):
257257
run_check(['You have been %s.', 'warned'], silent=True)
258258
run_check(['You %s %s %s.', 'have', 'been', 'warned'], silent=True)
259259

260-
self.assertErrorRegex(EasyBuildError, "Unknown named arguments", print_warning, 'foo', unknown_arg='bar')
260+
self.assertRaisesRegex(EasyBuildError, "Unknown named arguments", print_warning, 'foo', unknown_arg='bar')
261261

262262
# test passing of logger to print_warning
263263
tmp_logfile = os.path.join(self.test_prefix, 'test.log')
@@ -273,7 +273,7 @@ def run_check(args, silent=False, expected_stderr=''):
273273
"""Helper function to check stdout/stderr produced via print_error."""
274274
self.mock_stderr(True)
275275
self.mock_stdout(True)
276-
self.assertErrorRegex(SystemExit, '1', print_error, *args, silent=silent)
276+
self.assertRaisesRegex(SystemExit, '1', print_error, *args, silent=silent)
277277
stderr = self.get_stderr()
278278
stdout = self.get_stdout()
279279
self.mock_stdout(False)
@@ -288,7 +288,7 @@ def run_check(args, silent=False, expected_stderr=''):
288288
run_check(['You have %s.', 'failed'], silent=True)
289289
run_check(['%s %s %s.', 'You', 'have', 'failed'], silent=True)
290290

291-
self.assertErrorRegex(EasyBuildError, "Unknown named arguments", print_error, 'foo', unknown_arg='bar')
291+
self.assertRaisesRegex(EasyBuildError, "Unknown named arguments", print_error, 'foo', unknown_arg='bar')
292292

293293
def test_print_msg(self):
294294
"""Test print_msg"""
@@ -321,7 +321,7 @@ def run_check(msg, args, expected_stdout='', expected_stderr='', **kwargs):
321321
run_check("testing, 1, 2, 3", [], silent=True, stderr=True)
322322
run_check("testing, %s, %s, 3", ['1', '2'], silent=True, stderr=True)
323323

324-
self.assertErrorRegex(EasyBuildError, "Unknown named arguments", print_msg, 'foo', unknown_arg='bar')
324+
self.assertRaisesRegex(EasyBuildError, "Unknown named arguments", print_msg, 'foo', unknown_arg='bar')
325325

326326
def test_time_str_since(self):
327327
"""Test time_str_since"""
@@ -356,7 +356,7 @@ def run_check(msg, args, expected_stdout='', **kwargs):
356356
run_check("test 123", [], silent=True)
357357
run_check("test %s", ['123'], silent=True)
358358

359-
self.assertErrorRegex(EasyBuildError, "Unknown named arguments", dry_run_msg, 'foo', unknown_arg='bar')
359+
self.assertRaisesRegex(EasyBuildError, "Unknown named arguments", dry_run_msg, 'foo', unknown_arg='bar')
360360

361361
def test_dry_run_warning(self):
362362
"""Test dry_run_warningmsg"""
@@ -377,7 +377,7 @@ def run_check(msg, args, expected_stdout='', **kwargs):
377377
run_check("test 123", [], silent=True)
378378
run_check("test %s", ['123'], silent=True)
379379

380-
self.assertErrorRegex(EasyBuildError, "Unknown named arguments", dry_run_warning, 'foo', unknown_arg='bar')
380+
self.assertRaisesRegex(EasyBuildError, "Unknown named arguments", dry_run_warning, 'foo', unknown_arg='bar')
381381

382382
def test_init_logging(self):
383383
"""Test init_logging function."""
@@ -434,7 +434,7 @@ def test_init_logging(self):
434434
stop_logging(logfile, logtostdout=True)
435435

436436
def test_raise_nosupport(self):
437-
self.assertErrorRegex(EasyBuildError, 'NO LONGER SUPPORTED since v42: foobar;',
437+
self.assertRaisesRegex(EasyBuildError, 'NO LONGER SUPPORTED since v42: foobar;',
438438
raise_nosupport, 'foobar', 42)
439439

440440

test/framework/config.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ def test_generaloption_config(self):
176176
installpath_software = tempfile.mkdtemp(prefix='installpath-software')
177177
os.environ['EASYBUILD_SUBDIR_SOFTWARE'] = installpath_software
178178
error_regex = r"Found problems validating the options.*'subdir_software' must specify a \*relative\* path"
179-
self.assertErrorRegex(EasyBuildError, error_regex, init_config)
179+
self.assertRaisesRegex(EasyBuildError, error_regex, init_config)
180180

181181
del os.environ['EASYBUILD_PREFIX']
182182
del os.environ['EASYBUILD_SUBDIR_SOFTWARE']
@@ -192,7 +192,7 @@ def test_error_env_var_typo(self):
192192
error = r"Found 2 environment variable\(s\) that are prefixed with %s " % CONFIG_ENV_VAR_PREFIX
193193
error += r"but do not match valid option\(s\): "
194194
error += r','.join(['EASYBUILD_FOO', 'EASYBUILD_THERESNOSUCHCONFIGURATIONOPTION'])
195-
self.assertErrorRegex(EasyBuildError, error, init_config)
195+
self.assertRaisesRegex(EasyBuildError, error, init_config)
196196

197197
del os.environ['EASYBUILD_THERESNOSUCHCONFIGURATIONOPTION']
198198
del os.environ['EASYBUILD_FOO']
@@ -205,7 +205,7 @@ def test_install_path(self):
205205
self.assertEqual(install_path(typ='mod'), os.path.join(self.test_installpath, 'modules'))
206206
self.assertEqual(install_path('modules'), os.path.join(self.test_installpath, 'modules'))
207207

208-
self.assertErrorRegex(EasyBuildError, "Unknown type specified", install_path, typ='foo')
208+
self.assertRaisesRegex(EasyBuildError, "Unknown type specified", install_path, typ='foo')
209209

210210
args = [
211211
'--subdir-software', 'SOFT',
@@ -365,16 +365,16 @@ def test_build_options(self):
365365
self.assertTrue(bo['force'])
366366

367367
# updating is impossible (methods are not even available)
368-
self.assertErrorRegex(Exception, '.*(item assignment|no attribute).*', lambda x: bo.update(x), {'debug': True})
369-
self.assertErrorRegex(AttributeError, '.*no attribute.*', lambda x: bo.__setitem__(*x), ('debug', True))
368+
self.assertRaisesRegex(Exception, '.*(item assignment|no attribute).*', lambda x: bo.update(x), {'debug': True})
369+
self.assertRaisesRegex(AttributeError, '.*no attribute.*', lambda x: bo.__setitem__(*x), ('debug', True))
370370

371371
# only valid keys can be set
372372
BuildOptions.__class__._instances.clear()
373373
msg = r"Encountered unknown keys .* \(known keys: .*"
374-
self.assertErrorRegex(KeyError, msg, BuildOptions, {'thisisclearlynotavalidbuildoption': 'FAIL'})
374+
self.assertRaisesRegex(KeyError, msg, BuildOptions, {'thisisclearlynotavalidbuildoption': 'FAIL'})
375375

376376
# test init_build_options and build_option functions
377-
self.assertErrorRegex(KeyError, msg, init_build_options, {'thisisclearlynotavalidbuildoption': 'FAIL'})
377+
self.assertRaisesRegex(KeyError, msg, init_build_options, {'thisisclearlynotavalidbuildoption': 'FAIL'})
378378
bo = init_build_options({
379379
'robot_path': '/some/robot/path',
380380
'stop': 'configure',
@@ -656,7 +656,7 @@ def test_log_file_format(self):
656656
# test handling of incorrect setting for --logfile-format
657657
init_config(args=['--logfile-format=easybuild,log.txt,thisiswrong'])
658658
error_pattern = "Incorrect log file format specification, should be 2-tuple"
659-
self.assertErrorRegex(EasyBuildError, error_pattern, log_file_format)
659+
self.assertRaisesRegex(EasyBuildError, error_pattern, log_file_format)
660660

661661
def test_log_path(self):
662662
"""Test for log_path()."""

test/framework/containers.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -110,16 +110,16 @@ def test_end2end_singularity_recipe_config(self):
110110

111111
args.extend(['--container-config', 'osversion=7.6.1810'])
112112
error_pattern = r"Keyword 'bootstrap' is required in container base config"
113-
self.assertErrorRegex(EasyBuildError, error_pattern, self.run_main, args, raise_error=True)
113+
self.assertRaisesRegex(EasyBuildError, error_pattern, self.run_main, args, raise_error=True)
114114

115115
args.extend(['--container-config', 'bootstrap=foobar'])
116116
error_pattern = r"Unknown value specified for 'bootstrap' keyword: foobar \(known: arch, busybox, debootstrap, "
117-
self.assertErrorRegex(EasyBuildError, error_pattern, self.run_main, args, raise_error=True)
117+
self.assertRaisesRegex(EasyBuildError, error_pattern, self.run_main, args, raise_error=True)
118118

119119
# default mirror URL for yum bootstrap agent uses ${OSVERSION}, so 'osversion' must be specified too
120120
args.extend(['--container-config', 'bootstrap=yum'])
121121
error_pattern = "Keyword 'osversion' is required in container base config when '%{OSVERSION}' is used"
122-
self.assertErrorRegex(EasyBuildError, error_pattern, self.run_main, args, raise_error=True)
122+
self.assertRaisesRegex(EasyBuildError, error_pattern, self.run_main, args, raise_error=True)
123123

124124
args[-1] = 'bootstrap=yum,osversion=7.6.1810'
125125
stdout, stderr = self.run_main(args, raise_error=True)
@@ -197,7 +197,7 @@ def test_end2end_singularity_recipe_config(self):
197197
error_pattern = "Keyword 'from' is required in container base config when using bootstrap agent"
198198
for (bootstrap, from_spec) in test_cases:
199199
args[-1] = 'bootstrap=%s' % bootstrap
200-
self.assertErrorRegex(EasyBuildError, error_pattern, self.run_main, args, raise_error=True)
200+
self.assertRaisesRegex(EasyBuildError, error_pattern, self.run_main, args, raise_error=True)
201201

202202
args[-1] += ',from=%s' % from_spec
203203
remove_file(test_container_recipe)
@@ -281,7 +281,7 @@ def test_end2end_singularity_image(self):
281281

282282
if which('singularity') is None:
283283
error_pattern = "singularity with version 2.4 or higher not found on your system."
284-
self.assertErrorRegex(EasyBuildError, error_pattern, self.eb_main, args, raise_error=True)
284+
self.assertRaisesRegex(EasyBuildError, error_pattern, self.eb_main, args, raise_error=True)
285285

286286
# install mocked versions of 'sudo' and 'singularity' commands
287287
singularity = os.path.join(self.test_prefix, 'bin', 'singularity')
@@ -338,7 +338,7 @@ def test_end2end_singularity_image(self):
338338

339339
error_pattern = "Container image already exists at %s, not overwriting it without --force" % cont_img
340340
self.mock_stdout(True)
341-
self.assertErrorRegex(EasyBuildError, error_pattern, self.run_main, args, raise_error=True)
341+
self.assertRaisesRegex(EasyBuildError, error_pattern, self.run_main, args, raise_error=True)
342342
self.mock_stdout(False)
343343

344344
args.append('--force')
@@ -380,7 +380,7 @@ def test_end2end_dockerfile(self):
380380
]
381381

382382
error_pattern = "Unsupported container config 'not-supported'"
383-
self.assertErrorRegex(EasyBuildError,
383+
self.assertRaisesRegex(EasyBuildError,
384384
error_pattern,
385385
self.run_main,
386386
base_args + ['--container-config=not-supported'],
@@ -397,7 +397,7 @@ def test_end2end_dockerfile(self):
397397

398398
error_pattern = "Container recipe at %s/containers/Dockerfile.toy-0.0 already exists, " \
399399
"not overwriting it without --force" % self.test_prefix
400-
self.assertErrorRegex(EasyBuildError,
400+
self.assertRaisesRegex(EasyBuildError,
401401
error_pattern,
402402
self.run_main,
403403
base_args + ['--container-config=centos:7'],
@@ -441,7 +441,7 @@ def test_end2end_docker_image(self):
441441

442442
if not which('docker'):
443443
error_pattern = "docker not found on your system."
444-
self.assertErrorRegex(EasyBuildError, error_pattern, self.run_main, args, raise_error=True)
444+
self.assertRaisesRegex(EasyBuildError, error_pattern, self.run_main, args, raise_error=True)
445445

446446
# install mocked versions of 'sudo' and 'docker' commands
447447
docker = os.path.join(self.test_prefix, 'bin', 'docker')
@@ -488,7 +488,7 @@ def test_container_config_template_recipe(self):
488488
'toy-0.0.eb',
489489
]
490490
error_pattern = "--container-config must be specified!"
491-
self.assertErrorRegex(EasyBuildError, error_pattern, self.run_main, args)
491+
self.assertRaisesRegex(EasyBuildError, error_pattern, self.run_main, args)
492492

493493
args.extend(['--container-config', 'bootstrap=localimage,from=foobar'])
494494
stdout, stderr = self.run_main(args)

test/framework/docs.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1288,8 +1288,8 @@ def test_mk_table(self):
12881288
res = mk_rst_table(titles, table)
12891289
self.assertEqual(res, expected_rst)
12901290

1291-
self.assertErrorRegex(ValueError, "Number of titles/columns should be equal", mk_md_table, titles, [])
1292-
self.assertErrorRegex(ValueError, "Number of titles/columns should be equal", mk_rst_table, titles, [])
1291+
self.assertRaisesRegex(ValueError, "Number of titles/columns should be equal", mk_md_table, titles, [])
1292+
self.assertRaisesRegex(ValueError, "Number of titles/columns should be equal", mk_rst_table, titles, [])
12931293

12941294
def test_title_and_table(self):
12951295
"""
@@ -1329,8 +1329,8 @@ def test_title_and_table(self):
13291329
self.assertEqual(res, expected_rst)
13301330

13311331
error_pattern = "Number of titles/columns should be equal"
1332-
self.assertErrorRegex(ValueError, error_pattern, md_title_and_table, '', titles, [])
1333-
self.assertErrorRegex(ValueError, error_pattern, rst_title_and_table, '', titles, [('val 11', 'val 12')])
1332+
self.assertRaisesRegex(ValueError, error_pattern, md_title_and_table, '', titles, [])
1333+
self.assertRaisesRegex(ValueError, error_pattern, rst_title_and_table, '', titles, [('val 11', 'val 12')])
13341334

13351335
def test_help(self):
13361336
"""

0 commit comments

Comments
 (0)