Skip to content

Commit 4ca469a

Browse files
committed
Add alias assertErrorRegex for assertRaisesRegex
1 parent 4a7bac6 commit 4ca469a

File tree

2 files changed

+6
-39
lines changed

2 files changed

+6
-39
lines changed

easybuild/base/testing.py

Lines changed: 5 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,12 @@
3636
import difflib
3737
import os
3838
import pprint
39-
import re
4039
import sys
4140
from contextlib import contextmanager
4241
from io import StringIO
4342

4443
from unittest import TestCase as OrigTestCase
44+
from easybuild.base import fancylogger
4545

4646

4747
def nicediff(txta, txtb, offset=5):
@@ -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 assertRaisesRegex method)."""
69+
"""Enhanced test case, provides extra functionality."""
7070

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

@@ -140,42 +140,9 @@ def setUp(self):
140140
self.orig_sys_stdout = sys.stdout
141141
self.orig_sys_stderr = sys.stderr
142142

143-
def convert_exception_to_str(self, err):
144-
"""Convert an Exception instance to a string."""
145-
msg = err
146-
if hasattr(err, 'msg'):
147-
msg = err.msg
148-
elif hasattr(err, 'message'):
149-
msg = err.message
150-
if not msg:
151-
# rely on str(msg) in case err.message is empty
152-
msg = err
153-
elif hasattr(err, 'args'): # KeyError in Python 2.4 only provides message via 'args' attribute
154-
msg = err.args[0]
155-
else:
156-
msg = err
157-
try:
158-
res = str(msg)
159-
except UnicodeEncodeError:
160-
res = msg.encode('utf8', 'replace')
161-
162-
return res
163-
164-
def assertErrorRegex(self, error, regex, call, *args, **kwargs):
165-
"""
166-
Convenience method to match regex with the expected error message.
167-
Example: self.assertErrorRegex(OSError, "No such file or directory", os.remove, '/no/such/file')
168-
"""
169-
try:
170-
call(*args, **kwargs)
171-
str_kwargs = ['='.join([k, str(v)]) for (k, v) in kwargs.items()]
172-
str_args = ', '.join(list(map(str, args)) + str_kwargs)
173-
self.fail("Expected errors with %s(%s) call should occur" % (call.__name__, str_args))
174-
except error as err:
175-
msg = self.convert_exception_to_str(err)
176-
if isinstance(regex, str):
177-
regex = re.compile(regex)
178-
self.assertTrue(regex.search(msg), "Pattern '%s' is found in '%s'" % (regex.pattern, msg))
143+
def assertErrorRegex(*args, **kwargs):
144+
fancylogger.getLogger().deprecated('assertErrorRegex is deprecated, use assertRaisesRegex instead', '6.0')
145+
return OrigTestCase.assertRaisesRegex(*args, **kwargs)
179146

180147
def mock_stdout(self, enable):
181148
"""Enable/disable mocking stdout."""

test/framework/toy_build.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4842,7 +4842,7 @@ def test_toy_failing_test_step(self):
48424842
test_ec_txt += '\nruntest = "RAISE_ERROR"'
48434843
write_file(test_ec, test_ec_txt)
48444844

4845-
error_pattern = r"An error was raised during test step: 'TOY_TEST_FAIL'"
4845+
error_pattern = r"An error was raised during test step: TOY_TEST_FAIL"
48464846
self.assertRaisesRegex(EasyBuildError, error_pattern, self.run_test_toy_build_with_output,
48474847
ec_file=test_ec, raise_error=True)
48484848

0 commit comments

Comments
 (0)