Skip to content

Commit f5e4b61

Browse files
authored
Merge pull request #10413 from jdufresne/raises
Replace assert_raises_regexp function with pytest.raises
2 parents 48dc9f4 + 9e88e87 commit f5e4b61

File tree

3 files changed

+56
-69
lines changed

3 files changed

+56
-69
lines changed

news/e0fbc910-7f57-4fda-b17a-d1a6aa873e8e.trivial.rst

Whitespace-only changes.

tests/lib/__init__.py

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -991,19 +991,6 @@ def _change_test_package_version(script, version_pkg_path):
991991
_git_commit(script, version_pkg_path, message="messed version", stage_modified=True)
992992

993993

994-
def assert_raises_regexp(exception, reg, run, *args, **kwargs):
995-
"""Like assertRaisesRegexp in unittest"""
996-
__tracebackhide__ = True
997-
998-
try:
999-
run(*args, **kwargs)
1000-
assert False, f"{exception} should have been thrown"
1001-
except exception:
1002-
e = sys.exc_info()[1]
1003-
p = re.compile(reg)
1004-
assert p.search(str(e)), str(e)
1005-
1006-
1007994
@contextmanager
1008995
def requirements_file(contents, tmpdir):
1009996
"""Return a Path to a requirements file of given contents.

tests/unit/test_req.py

Lines changed: 56 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
from pip._internal.req.req_tracker import get_requirement_tracker
3939
from pip._internal.resolution.legacy.resolver import Resolver
4040
from pip._internal.utils.urls import path_to_url
41-
from tests.lib import assert_raises_regexp, make_test_finder, requirements_file
41+
from tests.lib import make_test_finder, requirements_file
4242

4343

4444
def get_processed_req_from_line(line, fname="file", lineno=1):
@@ -117,15 +117,15 @@ def test_no_reuse_existing_build_dir(self, data):
117117
reqset.add_requirement(req)
118118
finder = make_test_finder(find_links=[data.find_links])
119119
with self._basic_resolver(finder) as resolver:
120-
assert_raises_regexp(
120+
with pytest.raises(
121121
PreviousBuildDirError,
122-
r"pip can't proceed with [\s\S]*{req}[\s\S]*{build_dir_esc}".format(
123-
build_dir_esc=build_dir.replace("\\", "\\\\"), req=req
122+
match=(
123+
r"pip can't proceed with [\s\S]*{req}[\s\S]*{build_dir_esc}".format(
124+
build_dir_esc=build_dir.replace("\\", "\\\\"), req=req
125+
)
124126
),
125-
resolver.resolve,
126-
reqset.all_requirements,
127-
True,
128-
)
127+
):
128+
resolver.resolve(reqset.all_requirements, True)
129129

130130
def test_environment_marker_extras(self, data):
131131
"""
@@ -151,16 +151,16 @@ def test_missing_hash_with_require_hashes(self, data):
151151
finder = make_test_finder(find_links=[data.find_links])
152152

153153
with self._basic_resolver(finder, require_hashes=True) as resolver:
154-
assert_raises_regexp(
154+
with pytest.raises(
155155
HashErrors,
156-
r"Hashes are required in --require-hashes mode, but they are "
157-
r"missing .*\n"
158-
r" simple==1.0 --hash=sha256:393043e672415891885c9a2a0929b1"
159-
r"af95fb866d6ca016b42d2e6ce53619b653$",
160-
resolver.resolve,
161-
reqset.all_requirements,
162-
True,
163-
)
156+
match=(
157+
r"Hashes are required in --require-hashes mode, but they are "
158+
r"missing .*\n"
159+
r" simple==1.0 --hash=sha256:393043e672415891885c9a2a0929b1"
160+
r"af95fb866d6ca016b42d2e6ce53619b653$"
161+
),
162+
):
163+
resolver.resolve(reqset.all_requirements, True)
164164

165165
def test_missing_hash_with_require_hashes_in_reqs_file(self, data, tmpdir):
166166
"""--require-hashes in a requirements file should make its way to the
@@ -203,20 +203,20 @@ def test_unsupported_hashes(self, data):
203203
sep = "\\\\" # This needs to be escaped for the regex
204204

205205
with self._basic_resolver(finder, require_hashes=True) as resolver:
206-
assert_raises_regexp(
206+
with pytest.raises(
207207
HashErrors,
208-
r"Can't verify hashes for these requirements because we don't "
209-
r"have a way to hash version control repositories:\n"
210-
r" git\+git://github\.com/pypa/pip-test-package \(from -r "
211-
r"file \(line 1\)\)\n"
212-
r"Can't verify hashes for these file:// requirements because "
213-
r"they point to directories:\n"
214-
r" file://.*{sep}data{sep}packages{sep}FSPkg "
215-
r"\(from -r file \(line 2\)\)".format(sep=sep),
216-
resolver.resolve,
217-
reqset.all_requirements,
218-
True,
219-
)
208+
match=(
209+
r"Can't verify hashes for these requirements because we don't "
210+
r"have a way to hash version control repositories:\n"
211+
r" git\+git://github\.com/pypa/pip-test-package \(from -r "
212+
r"file \(line 1\)\)\n"
213+
r"Can't verify hashes for these file:// requirements because "
214+
r"they point to directories:\n"
215+
r" file://.*{sep}data{sep}packages{sep}FSPkg "
216+
r"\(from -r file \(line 2\)\)".format(sep=sep)
217+
),
218+
):
219+
resolver.resolve(reqset.all_requirements, True)
220220

221221
def test_unpinned_hash_checking(self, data):
222222
"""Make sure prepare_files() raises an error when a requirement is not
@@ -241,16 +241,16 @@ def test_unpinned_hash_checking(self, data):
241241
)
242242
finder = make_test_finder(find_links=[data.find_links])
243243
with self._basic_resolver(finder, require_hashes=True) as resolver:
244-
assert_raises_regexp(
244+
with pytest.raises(
245245
HashErrors,
246246
# Make sure all failing requirements are listed:
247-
r"versions pinned with ==. These do not:\n"
248-
r" simple .* \(from -r file \(line 1\)\)\n"
249-
r" simple2>1.0 .* \(from -r file \(line 2\)\)",
250-
resolver.resolve,
251-
reqset.all_requirements,
252-
True,
253-
)
247+
match=(
248+
r"versions pinned with ==. These do not:\n"
249+
r" simple .* \(from -r file \(line 1\)\)\n"
250+
r" simple2>1.0 .* \(from -r file \(line 2\)\)"
251+
),
252+
):
253+
resolver.resolve(reqset.all_requirements, True)
254254

255255
def test_hash_mismatch(self, data):
256256
"""A hash mismatch should raise an error."""
@@ -264,17 +264,17 @@ def test_hash_mismatch(self, data):
264264
)
265265
finder = make_test_finder(find_links=[data.find_links])
266266
with self._basic_resolver(finder, require_hashes=True) as resolver:
267-
assert_raises_regexp(
267+
with pytest.raises(
268268
HashErrors,
269-
r"THESE PACKAGES DO NOT MATCH THE HASHES.*\n"
270-
r" file:///.*/data/packages/simple-1\.0\.tar\.gz .*:\n"
271-
r" Expected sha256 badbad\n"
272-
r" Got 393043e672415891885c9a2a0929b1af95fb"
273-
r"866d6ca016b42d2e6ce53619b653$",
274-
resolver.resolve,
275-
reqset.all_requirements,
276-
True,
277-
)
269+
match=(
270+
r"THESE PACKAGES DO NOT MATCH THE HASHES.*\n"
271+
r" file:///.*/data/packages/simple-1\.0\.tar\.gz .*:\n"
272+
r" Expected sha256 badbad\n"
273+
r" Got 393043e672415891885c9a2a0929b1af95fb"
274+
r"866d6ca016b42d2e6ce53619b653$"
275+
),
276+
):
277+
resolver.resolve(reqset.all_requirements, True)
278278

279279
def test_unhashed_deps_on_require_hashes(self, data):
280280
"""Make sure unhashed, unpinned, or otherwise unrepeatable
@@ -291,15 +291,15 @@ def test_unhashed_deps_on_require_hashes(self, data):
291291
)
292292

293293
with self._basic_resolver(finder, require_hashes=True) as resolver:
294-
assert_raises_regexp(
294+
with pytest.raises(
295295
HashErrors,
296-
r"In --require-hashes mode, all requirements must have their "
297-
r"versions pinned.*\n"
298-
r" TopoRequires from .*$",
299-
resolver.resolve,
300-
reqset.all_requirements,
301-
True,
302-
)
296+
match=(
297+
r"In --require-hashes mode, all requirements must have their "
298+
r"versions pinned.*\n"
299+
r" TopoRequires from .*$"
300+
),
301+
):
302+
resolver.resolve(reqset.all_requirements, True)
303303

304304
def test_hashed_deps_on_require_hashes(self):
305305
"""Make sure hashed dependencies get installed when --require-hashes

0 commit comments

Comments
 (0)