Closed brianrobt closed 3 months ago
I know that some Linux OS, like Gentoo, Arch does not pack setuptools with 3rd party tools (extern) #1863 The correct in this SO is xfail the test. Can you show me the traceback?
I know that some Linux OS, like Gentoo, Arch does not pack setuptools with 3rd party tools (extern)
Thanks for the info. I'll dig into that more.
Here is the traceback:
========================================================================================================================== FAILURES ===========================================================================================================================
______________________________________________________________________________________________________________________ test_import_tomli ______________________________________________________________________________________________________________________
name = 'setuptools.extern.tomli'
def resolve(name: str) -> object:
# Simplified from zope.dottedname.
parts = name.split(".")
used = parts.pop(0)
found: object = __import__(used)
for part in parts:
used += "." + part
try:
found = getattr(found, part)
except AttributeError:
pass
else:
continue
# We use explicit un-nesting of the handling block in order
# to avoid nested exceptions.
try:
> __import__(used)
E ModuleNotFoundError: No module named 'setuptools.extern'
/usr/lib/python3.12/site-packages/_pytest/monkeypatch.py:79: ModuleNotFoundError
The above exception was the direct cause of the following exception:
monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f51cbb0da60>
def test_import_tomli(monkeypatch) -> None:
"""Test using tomli as a last resort."""
if sys.version_info >= (3, 11):
monkeypatch.delattr("tomllib.loads")
with contextlib.suppress(AttributeError, ModuleNotFoundError):
> monkeypatch.delattr("setuptools.extern.tomli.loads")
tests/test_cli.py:97:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.12/site-packages/_pytest/monkeypatch.py:104: in derive_importpath
target = resolve(module)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
name = 'setuptools.extern.tomli'
def resolve(name: str) -> object:
# Simplified from zope.dottedname.
parts = name.split(".")
used = parts.pop(0)
found: object = __import__(used)
for part in parts:
used += "." + part
try:
found = getattr(found, part)
except AttributeError:
pass
else:
continue
# We use explicit un-nesting of the handling block in order
# to avoid nested exceptions.
try:
__import__(used)
except ImportError as ex:
expected = str(ex).split()[-1]
if expected == used:
raise
else:
> raise ImportError(f"import error in {used}: {ex}") from ex
E ImportError: import error in setuptools.extern: No module named 'setuptools.extern'
/usr/lib/python3.12/site-packages/_pytest/monkeypatch.py:85: ImportError
Can you test the PR?
That did the trick: tests/test_cli.py::test_import_tomli SKIPPED (Python >= 3.11)
Thank you, @marcelotduarte! I'll keep this issue open until the change is merged.
Release 7.2.0 is out! Documentation
System information
Python version: 3.12.4 OS: EndeavourOS (Arch-based) cx_Freeze version: 7.1.1
Problem
When trying to run the unit tests, all of the tests pass except for
test_cli.py::test_import_tomli
. It fails with the message,ImportError: import error in setuptools.extern: No module named 'setuptools.extern'
. It looks like line 99 of that file is what's failing. Is this a known issue?More info
I'm trying to package this lib for Arch Linux. Here is the PKGBUILD.
P.S. I need to step away. I'll come back later tonight to add some more details. Sorry if there is anything lacking, but I wanted to get this issue posted straight away.