Skip to content

Commit ca40065

Browse files
committed
Replace assertErrorRegex by standard assertRaisesRegex
1 parent fffc9a7 commit ca40065

34 files changed

+624
-622
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."""
7070

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

test/framework/build_log.py

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -63,18 +63,18 @@ def test_easybuilderror(self):
6363
setLogFormat("%(name)s :: %(message)s")
6464

6565
with self.log_to_testlogfile() as logfile:
66-
self.assertErrorRegex(EasyBuildError, 'BOOM', raise_easybuilderror, 'BOOM')
66+
self.assertRaisesRegex(EasyBuildError, 'BOOM', raise_easybuilderror, 'BOOM')
6767
logtxt = read_file(logfile)
6868

6969
log_re = re.compile(r"^fancyroot ::.* BOOM \(at .*:[0-9]+ in [a-z_]+\)$", re.M)
7070
self.assertTrue(log_re.match(logtxt), "%s matches %s" % (log_re.pattern, logtxt))
7171

7272
# test formatting of message
73-
self.assertErrorRegex(EasyBuildError, 'BOOMBAF', raise_easybuilderror, 'BOOM%s', 'BAF')
73+
self.assertRaisesRegex(EasyBuildError, 'BOOMBAF', raise_easybuilderror, 'BOOM%s', 'BAF')
7474

7575
# a '%s' in a value used to template the error message should not print a traceback!
7676
with self.mocked_stdout_stderr():
77-
self.assertErrorRegex(EasyBuildError, 'err: msg: %s', raise_easybuilderror, "err: %s", "msg: %s")
77+
self.assertRaisesRegex(EasyBuildError, 'err: msg: %s', raise_easybuilderror, "err: %s", "msg: %s")
7878
stderr = self.get_stderr()
7979
stdout = self.get_stdout()
8080
# stdout/stderr should be *empty* (there should definitely not be a traceback)
@@ -83,15 +83,15 @@ def test_easybuilderror(self):
8383

8484
# Need to all call a method in the "easybuild" package as everything else will be filtered out
8585
with self.log_to_testlogfile() as logfile:
86-
self.assertErrorRegex(EasyBuildError, 'Failed to read', tweak_one, '/does/not/exist', '/tmp/new', {})
86+
self.assertRaisesRegex(EasyBuildError, 'Failed to read', tweak_one, '/does/not/exist', '/tmp/new', {})
8787
logtxt: str = read_file(logfile)
8888

8989
self.assertRegex(logtxt, '\n'.join(
9090
(r"EasyBuild encountered an error: Failed to read /does/not/exist:.*",
9191
r"Callstack:",
9292
r'\s+easybuild/tools/filetools\.py:\d+ in read_file',
9393
r'\s+easybuild/framework/easyconfig/tweak\.py:\d+ in tweak_one',
94-
r'\s+easybuild/base/testing\.py:\d+ in assertErrorRegex',
94+
r'\s+easybuild/base/testing\.py:\d+ in assertRaisesRegex',
9595
)), re.M)
9696

9797
def test_easybuildlog(self):
@@ -156,10 +156,10 @@ def test_easybuildlog(self):
156156
logtxt_regex = re.compile(r'^%s' % expected_logtxt, re.M)
157157
self.assertTrue(logtxt_regex.search(logtxt), "Pattern '%s' found in %s" % (logtxt_regex.pattern, logtxt))
158158

159-
self.assertErrorRegex(EasyBuildError, r"DEPRECATED \(since .*: kaput", log.deprecated, "kaput", older_ver)
160-
self.assertErrorRegex(EasyBuildError, r"DEPRECATED \(since .*: 2>1", log.deprecated, "2>1", '2.0', '1.0')
161-
self.assertErrorRegex(EasyBuildError, r"DEPRECATED \(since .*: 2>1", log.deprecated, "2>1", '2.0',
162-
max_ver='1.0')
159+
self.assertRaisesRegex(EasyBuildError, r"DEPRECATED \(since .*: kaput", log.deprecated, "kaput", older_ver)
160+
self.assertRaisesRegex(EasyBuildError, r"DEPRECATED \(since .*: 2>1", log.deprecated, "2>1", '2.0', '1.0')
161+
self.assertRaisesRegex(EasyBuildError, r"DEPRECATED \(since .*: 2>1", log.deprecated, "2>1", '2.0',
162+
max_ver='1.0')
163163

164164
# wipe log so we can reuse it
165165
write_file(tmplog, '')
@@ -265,7 +265,7 @@ def run_check(args, silent=False, expected_stderr='', **kwargs):
265265
run_check(['You have been %s.', 'warned'], silent=True)
266266
run_check(['You %s %s %s.', 'have', 'been', 'warned'], silent=True)
267267

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

270270
# test passing of logger to print_warning
271271
tmp_logfile = os.path.join(self.test_prefix, 'test.log')
@@ -281,7 +281,7 @@ def run_check(args, silent=False, expected_stderr=''):
281281
"""Helper function to check stdout/stderr produced via print_error."""
282282
self.mock_stderr(True)
283283
self.mock_stdout(True)
284-
self.assertErrorRegex(SystemExit, '1', print_error, *args, silent=silent)
284+
self.assertRaisesRegex(SystemExit, '1', print_error, *args, silent=silent)
285285
stderr = self.get_stderr()
286286
stdout = self.get_stdout()
287287
self.mock_stdout(False)
@@ -296,7 +296,7 @@ def run_check(args, silent=False, expected_stderr=''):
296296
run_check(['You have %s.', 'failed'], silent=True)
297297
run_check(['%s %s %s.', 'You', 'have', 'failed'], silent=True)
298298

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

301301
def test_print_msg(self):
302302
"""Test print_msg"""
@@ -329,7 +329,7 @@ def run_check(msg, args, expected_stdout='', expected_stderr='', **kwargs):
329329
run_check("testing, 1, 2, 3", [], silent=True, stderr=True)
330330
run_check("testing, %s, %s, 3", ['1', '2'], silent=True, stderr=True)
331331

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

334334
def test_time_str_since(self):
335335
"""Test time_str_since"""
@@ -364,7 +364,7 @@ def run_check(msg, args, expected_stdout='', **kwargs):
364364
run_check("test 123", [], silent=True)
365365
run_check("test %s", ['123'], silent=True)
366366

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

369369
def test_dry_run_warning(self):
370370
"""Test dry_run_warningmsg"""
@@ -385,7 +385,7 @@ def run_check(msg, args, expected_stdout='', **kwargs):
385385
run_check("test 123", [], silent=True)
386386
run_check("test %s", ['123'], silent=True)
387387

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

390390
def test_init_logging(self):
391391
"""Test init_logging function."""
@@ -442,8 +442,8 @@ def test_init_logging(self):
442442
stop_logging(logfile, logtostdout=True)
443443

444444
def test_raise_nosupport(self):
445-
self.assertErrorRegex(EasyBuildError, 'NO LONGER SUPPORTED since v42: foobar;',
446-
raise_nosupport, 'foobar', 42)
445+
self.assertRaisesRegex(EasyBuildError, 'NO LONGER SUPPORTED since v42: foobar;',
446+
raise_nosupport, 'foobar', 42)
447447

448448

449449
def suite(loader=None):

test/framework/config.py

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

174174
del os.environ['EASYBUILD_PREFIX']
175175
del os.environ['EASYBUILD_SUBDIR_SOFTWARE']
@@ -185,7 +185,7 @@ def test_error_env_var_typo(self):
185185
error = r"Found 2 environment variable\(s\) that are prefixed with %s " % CONFIG_ENV_VAR_PREFIX
186186
error += r"but do not match valid option\(s\): "
187187
error += r','.join(['EASYBUILD_FOO', 'EASYBUILD_THERESNOSUCHCONFIGURATIONOPTION'])
188-
self.assertErrorRegex(EasyBuildError, error, init_config)
188+
self.assertRaisesRegex(EasyBuildError, error, init_config)
189189

190190
del os.environ['EASYBUILD_THERESNOSUCHCONFIGURATIONOPTION']
191191
del os.environ['EASYBUILD_FOO']
@@ -198,7 +198,7 @@ def test_install_path(self):
198198
self.assertEqual(install_path(typ='mod'), os.path.join(self.test_installpath, 'modules'))
199199
self.assertEqual(install_path('modules'), os.path.join(self.test_installpath, 'modules'))
200200

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

203203
args = [
204204
'--subdir-software', 'SOFT',
@@ -358,16 +358,16 @@ def test_build_options(self):
358358
self.assertTrue(bo['force'])
359359

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

364364
# only valid keys can be set
365365
BuildOptions.__class__._instances.clear()
366366
msg = r"Encountered unknown keys .* \(known keys: .*"
367-
self.assertErrorRegex(KeyError, msg, BuildOptions, {'thisisclearlynotavalidbuildoption': 'FAIL'})
367+
self.assertRaisesRegex(KeyError, msg, BuildOptions, {'thisisclearlynotavalidbuildoption': 'FAIL'})
368368

369369
# test init_build_options and build_option functions
370-
self.assertErrorRegex(KeyError, msg, init_build_options, {'thisisclearlynotavalidbuildoption': 'FAIL'})
370+
self.assertRaisesRegex(KeyError, msg, init_build_options, {'thisisclearlynotavalidbuildoption': 'FAIL'})
371371
bo = init_build_options({
372372
'robot_path': '/some/robot/path',
373373
'stop': 'configure',
@@ -649,7 +649,7 @@ def test_log_file_format(self):
649649
# test handling of incorrect setting for --logfile-format
650650
init_config(args=['--logfile-format=easybuild,log.txt,thisiswrong'])
651651
error_pattern = "Incorrect log file format specification, should be 2-tuple"
652-
self.assertErrorRegex(EasyBuildError, error_pattern, log_file_format)
652+
self.assertRaisesRegex(EasyBuildError, error_pattern, log_file_format)
653653

654654
def test_log_path(self):
655655
"""Test for log_path()."""

test/framework/containers.py

Lines changed: 18 additions & 18 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,11 +380,11 @@ def test_end2end_dockerfile(self):
380380
]
381381

382382
error_pattern = "Unsupported container config 'not-supported'"
383-
self.assertErrorRegex(EasyBuildError,
384-
error_pattern,
385-
self.run_main,
386-
base_args + ['--container-config=not-supported'],
387-
raise_error=True)
383+
self.assertRaisesRegex(EasyBuildError,
384+
error_pattern,
385+
self.run_main,
386+
base_args + ['--container-config=not-supported'],
387+
raise_error=True)
388388

389389
for cont_base in ['ubuntu:20.04', 'centos:7']:
390390
stdout, stderr = self.run_main(base_args + ['--container-config=%s' % cont_base])
@@ -397,11 +397,11 @@ 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,
401-
error_pattern,
402-
self.run_main,
403-
base_args + ['--container-config=centos:7'],
404-
raise_error=True)
400+
self.assertRaisesRegex(EasyBuildError,
401+
error_pattern,
402+
self.run_main,
403+
base_args + ['--container-config=centos:7'],
404+
raise_error=True)
405405

406406
remove_file(os.path.join(self.test_prefix, 'containers', 'Dockerfile.toy-0.0'))
407407

@@ -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)