-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Attempt to avoid error with
_read_utf8_with_fallback
by moving code…
… in `pkg_resources` (#4422)
- Loading branch information
Showing
3 changed files
with
87 additions
and
32 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
Reorder code in ``pkg_resources/__init__.py`` to avoid definitions after ``@_call_aside``. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
import platform | ||
from inspect import cleandoc | ||
|
||
import jaraco.path | ||
import pytest | ||
|
||
pytestmark = pytest.mark.integration | ||
|
||
|
||
# For the sake of simplicity this test uses fixtures defined in | ||
# `setuptools.test.fixtures`, | ||
# and it also exercise conditions considered deprecated... | ||
# So if needed this test can be deleted. | ||
@pytest.mark.skipif( | ||
platform.system() != "Linux", | ||
reason="only demonstrated to fail on Linux in #4399", | ||
) | ||
def test_interop_pkg_resources_iter_entry_points(tmp_path, venv): | ||
""" | ||
Importing pkg_resources.iter_entry_points on console_scripts | ||
seems to cause trouble with zope-interface, when deprecates installation method | ||
is used. See #4399. | ||
""" | ||
project = { | ||
"pkg": { | ||
"foo.py": cleandoc( | ||
""" | ||
from pkg_resources import iter_entry_points | ||
def bar(): | ||
print("Print me if you can") | ||
""" | ||
), | ||
"setup.py": cleandoc( | ||
""" | ||
from setuptools import setup, find_packages | ||
setup( | ||
install_requires=["zope-interface==6.4.post2"], | ||
entry_points={ | ||
"console_scripts": [ | ||
"foo=foo:bar", | ||
], | ||
}, | ||
) | ||
""" | ||
), | ||
} | ||
} | ||
jaraco.path.build(project, prefix=tmp_path) | ||
cmd = ["pip", "install", "-e", ".", "--no-use-pep517"] | ||
venv.run(cmd, cwd=tmp_path / "pkg") # Needs this version of pkg_resources installed | ||
out = venv.run(["foo"]) | ||
assert "Print me if you can" in out |