I'm packaging your module as an rpm package so I'm using the typical PEP517 based build, install and test cycle used on building packages from non-root account.
python3 -sBm build -w --no-isolation
because I'm calling build with --no-isolation I'm using during all processes only locally installed modules
install .whl file in </install/prefix>
run pytest with $PYTHONPATH pointing to sitearch and sitelib inside </install/prefix>
build is performed in env which is cut off from access to the public network (pytest is executed with -m "not network")
Here is pytest output:
```console
+ PBR_VERSION=0.9.0
+ PDM_PEP517_SCM_VERSION=0.9.0
+ SETUPTOOLS_SCM_PRETEND_VERSION=0.9.0
+ PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages
+ /usr/bin/pytest -ra -m 'not network'
==================================================================================== test session starts ====================================================================================
platform linux -- Python 3.8.16, pytest-7.2.2, pluggy-1.0.0
rootdir: /home/tkloczko/rpmbuild/BUILD/resolvelib-0.9.0
collected 49 items
tests/test_resolvers.py ..... [ 10%]
tests/test_structs.py ....... [ 24%]
tests/functional/cocoapods/test_resolvers_cocoapods.py x...F..F.x..F.FF....F.... [ 75%]
tests/functional/python/test_resolvers_python.py ....x... [ 91%]
tests/functional/swift-package-manager/test_resolvers_swift.py .... [100%]
========================================================================================= FAILURES ==========================================================================================
___________________________________________________________________________ test_resolver[conflict_common_parent] ___________________________________________________________________________
provider = , reporter =
def test_resolver(provider, reporter):
resolver = Resolver(provider, reporter)
if provider.expected_conflicts:
with pytest.raises(ResolutionImpossible) as ctx:
result = resolver.resolve(provider.root_requirements)
print(_format_resolution(result)) # Provide some debugging hints.
assert _format_conflicts(ctx.value) == provider.expected_conflicts
else:
> result = resolver.resolve(provider.root_requirements)
tests/functional/cocoapods/test_resolvers_cocoapods.py:201:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/resolvers.py:521: in resolve
state = resolution.resolve(requirements, max_rounds=max_rounds)
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/resolvers.py:402: in resolve
failure_causes = self._attempt_to_pin_criterion(name)
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/resolvers.py:238: in _attempt_to_pin_criterion
criteria = self._get_updated_criteria(candidate)
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/resolvers.py:229: in _get_updated_criteria
self._add_to_criteria(criteria, requirement, parent=candidate)
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/resolvers.py:168: in _add_to_criteria
candidates=build_iter_view(matches),
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/structs.py:169: in build_iter_view
matches = list(matches)
tests/functional/cocoapods/test_resolvers_cocoapods.py:139: in find_matches
candidates = sorted(
tests/functional/cocoapods/test_resolvers_cocoapods.py:124: in _iter_matches
version = packaging.version.parse(entry["version"])
/usr/lib/python3.8/site-packages/packaging/version.py:52: in parse
return Version(version)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <[AttributeError("'Version' object has no attribute '_version'") raised in repr()] Version object at 0x7fa383932460>, version = '5.0.0-beta1.1'
def __init__(self, version: str) -> None:
"""Initialize a Version object.
:param version:
The string representation of a version which will be parsed and normalized
before use.
:raises InvalidVersion:
If the ``version`` does not conform to PEP 440 in any way then this
exception will be raised.
"""
# Validate the version and parse it into pieces
match = self._regex.search(version)
if not match:
> raise InvalidVersion(f"Invalid version: '{version}'")
E packaging.version.InvalidVersion: Invalid version: '5.0.0-beta1.1'
/usr/lib/python3.8/site-packages/packaging/version.py:197: InvalidVersion
___________________________________________________________________________ test_resolver[deep_complex_conflict] ____________________________________________________________________________
provider = , reporter =
def test_resolver(provider, reporter):
resolver = Resolver(provider, reporter)
if provider.expected_conflicts:
with pytest.raises(ResolutionImpossible) as ctx:
result = resolver.resolve(provider.root_requirements)
print(_format_resolution(result)) # Provide some debugging hints.
assert _format_conflicts(ctx.value) == provider.expected_conflicts
else:
> result = resolver.resolve(provider.root_requirements)
tests/functional/cocoapods/test_resolvers_cocoapods.py:201:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/resolvers.py:521: in resolve
state = resolution.resolve(requirements, max_rounds=max_rounds)
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/resolvers.py:402: in resolve
failure_causes = self._attempt_to_pin_criterion(name)
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/resolvers.py:238: in _attempt_to_pin_criterion
criteria = self._get_updated_criteria(candidate)
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/resolvers.py:229: in _get_updated_criteria
self._add_to_criteria(criteria, requirement, parent=candidate)
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/resolvers.py:168: in _add_to_criteria
candidates=build_iter_view(matches),
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/structs.py:169: in build_iter_view
matches = list(matches)
tests/functional/cocoapods/test_resolvers_cocoapods.py:139: in find_matches
candidates = sorted(
tests/functional/cocoapods/test_resolvers_cocoapods.py:124: in _iter_matches
version = packaging.version.parse(entry["version"])
/usr/lib/python3.8/site-packages/packaging/version.py:52: in parse
return Version(version)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <[AttributeError("'Version' object has no attribute '_version'") raised in repr()] Version object at 0x7fa383f206a0>, version = '4.0.0-preview2.1'
def __init__(self, version: str) -> None:
"""Initialize a Version object.
:param version:
The string representation of a version which will be parsed and normalized
before use.
:raises InvalidVersion:
If the ``version`` does not conform to PEP 440 in any way then this
exception will be raised.
"""
# Validate the version and parse it into pieces
match = self._regex.search(version)
if not match:
> raise InvalidVersion(f"Invalid version: '{version}'")
E packaging.version.InvalidVersion: Invalid version: '4.0.0-preview2.1'
/usr/lib/python3.8/site-packages/packaging/version.py:197: InvalidVersion
----------------------------------------------------------------------------------- Captured stdout call ------------------------------------------------------------------------------------
Pin Candidate(name='capybara', ver=, deps=[Requirement(name='nokogiri', spec==1.3.3')>), Requirement(name='mime-types', spec==1.16')>), Requirement(name='rack', spec==1.0.0')>), Requirement(name='rack-test', spec==0.5.4')>), Requirement(name='xpath', spec==2.0,~=2.0')>)])
Pin Candidate(name='xpath', ver=, deps=[Requirement(name='nokogiri', spec==1.3,~=1.3')>)])
Pin Candidate(name='rack-test', ver=, deps=[Requirement(name='rack', spec==1.0')>)])
Pin Candidate(name='mime-types', ver=, deps=[])
Pin Candidate(name='nokogiri', ver=, deps=[Requirement(name='mini_portile', spec==0.6.0,~=0.6.0')>)])
Pin Candidate(name='mini_portile', ver=, deps=[])
Pin Candidate(name='rack', ver=, deps=[])
Pin Candidate(name='rails', ver=, deps=[Requirement(name='bundler', spec==1.0,~=1.0')>), Requirement(name='railties', spec=), Requirement(name='actionmailer', spec=), Requirement(name='activeresource', spec=), Requirement(name='activerecord', spec=), Requirement(name='actionpack', spec=), Requirement(name='activesupport', spec=)])
__________________________________________________________________________ test_resolver[pruned_unresolved_orphan] __________________________________________________________________________
provider = , reporter =
def test_resolver(provider, reporter):
resolver = Resolver(provider, reporter)
if provider.expected_conflicts:
with pytest.raises(ResolutionImpossible) as ctx:
result = resolver.resolve(provider.root_requirements)
print(_format_resolution(result)) # Provide some debugging hints.
assert _format_conflicts(ctx.value) == provider.expected_conflicts
else:
> result = resolver.resolve(provider.root_requirements)
tests/functional/cocoapods/test_resolvers_cocoapods.py:201:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/resolvers.py:521: in resolve
state = resolution.resolve(requirements, max_rounds=max_rounds)
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/resolvers.py:402: in resolve
failure_causes = self._attempt_to_pin_criterion(name)
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/resolvers.py:238: in _attempt_to_pin_criterion
criteria = self._get_updated_criteria(candidate)
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/resolvers.py:229: in _get_updated_criteria
self._add_to_criteria(criteria, requirement, parent=candidate)
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/resolvers.py:168: in _add_to_criteria
candidates=build_iter_view(matches),
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/structs.py:169: in build_iter_view
matches = list(matches)
tests/functional/cocoapods/test_resolvers_cocoapods.py:139: in find_matches
candidates = sorted(
tests/functional/cocoapods/test_resolvers_cocoapods.py:124: in _iter_matches
version = packaging.version.parse(entry["version"])
/usr/lib/python3.8/site-packages/packaging/version.py:52: in parse
return Version(version)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <[AttributeError("'Version' object has no attribute '_version'") raised in repr()] Version object at 0x7fa383dcd5e0>, version = '0.18.0-gh.de28323'
def __init__(self, version: str) -> None:
"""Initialize a Version object.
:param version:
The string representation of a version which will be parsed and normalized
before use.
:raises InvalidVersion:
If the ``version`` does not conform to PEP 440 in any way then this
exception will be raised.
"""
# Validate the version and parse it into pieces
match = self._regex.search(version)
if not match:
> raise InvalidVersion(f"Invalid version: '{version}'")
E packaging.version.InvalidVersion: Invalid version: '0.18.0-gh.de28323'
/usr/lib/python3.8/site-packages/packaging/version.py:197: InvalidVersion
----------------------------------------------------------------------------------- Captured stdout call ------------------------------------------------------------------------------------
Pin Candidate(name='mail', ver=, deps=[Requirement(name='mime-types', spec==1.16')>)])
__________________________________________________________________________ test_resolver[shared_parent_dependency] __________________________________________________________________________
provider = , reporter =
def test_resolver(provider, reporter):
resolver = Resolver(provider, reporter)
if provider.expected_conflicts:
with pytest.raises(ResolutionImpossible) as ctx:
result = resolver.resolve(provider.root_requirements)
print(_format_resolution(result)) # Provide some debugging hints.
assert _format_conflicts(ctx.value) == provider.expected_conflicts
else:
> result = resolver.resolve(provider.root_requirements)
tests/functional/cocoapods/test_resolvers_cocoapods.py:201:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/resolvers.py:521: in resolve
state = resolution.resolve(requirements, max_rounds=max_rounds)
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/resolvers.py:372: in resolve
self._add_to_criteria(self.state.criteria, r, parent=None)
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/resolvers.py:168: in _add_to_criteria
candidates=build_iter_view(matches),
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/structs.py:169: in build_iter_view
matches = list(matches)
tests/functional/cocoapods/test_resolvers_cocoapods.py:139: in find_matches
candidates = sorted(
tests/functional/cocoapods/test_resolvers_cocoapods.py:124: in _iter_matches
version = packaging.version.parse(entry["version"])
/usr/lib/python3.8/site-packages/packaging/version.py:52: in parse
return Version(version)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <[AttributeError("'Version' object has no attribute '_version'") raised in repr()] Version object at 0x7fa3835bda00>, version = '0.10.0-qs.0'
def __init__(self, version: str) -> None:
"""Initialize a Version object.
:param version:
The string representation of a version which will be parsed and normalized
before use.
:raises InvalidVersion:
If the ``version`` does not conform to PEP 440 in any way then this
exception will be raised.
"""
# Validate the version and parse it into pieces
match = self._regex.search(version)
if not match:
> raise InvalidVersion(f"Invalid version: '{version}'")
E packaging.version.InvalidVersion: Invalid version: '0.10.0-qs.0'
/usr/lib/python3.8/site-packages/packaging/version.py:197: InvalidVersion
___________________________________________________________________ test_resolver[shared_parent_dependency_with_swapping] ___________________________________________________________________
provider = , reporter =
def test_resolver(provider, reporter):
resolver = Resolver(provider, reporter)
if provider.expected_conflicts:
with pytest.raises(ResolutionImpossible) as ctx:
result = resolver.resolve(provider.root_requirements)
print(_format_resolution(result)) # Provide some debugging hints.
assert _format_conflicts(ctx.value) == provider.expected_conflicts
else:
> result = resolver.resolve(provider.root_requirements)
tests/functional/cocoapods/test_resolvers_cocoapods.py:201:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/resolvers.py:521: in resolve
state = resolution.resolve(requirements, max_rounds=max_rounds)
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/resolvers.py:402: in resolve
failure_causes = self._attempt_to_pin_criterion(name)
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/resolvers.py:238: in _attempt_to_pin_criterion
criteria = self._get_updated_criteria(candidate)
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/resolvers.py:229: in _get_updated_criteria
self._add_to_criteria(criteria, requirement, parent=candidate)
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/resolvers.py:168: in _add_to_criteria
candidates=build_iter_view(matches),
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/structs.py:169: in build_iter_view
matches = list(matches)
tests/functional/cocoapods/test_resolvers_cocoapods.py:139: in find_matches
candidates = sorted(
tests/functional/cocoapods/test_resolvers_cocoapods.py:124: in _iter_matches
version = packaging.version.parse(entry["version"])
/usr/lib/python3.8/site-packages/packaging/version.py:52: in parse
return Version(version)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <[AttributeError("'Version' object has no attribute '_version'") raised in repr()] Version object at 0x7fa383dcc070>, version = '0.3.6-pre.f7e3358'
def __init__(self, version: str) -> None:
"""Initialize a Version object.
:param version:
The string representation of a version which will be parsed and normalized
before use.
:raises InvalidVersion:
If the ``version`` does not conform to PEP 440 in any way then this
exception will be raised.
"""
# Validate the version and parse it into pieces
match = self._regex.search(version)
if not match:
> raise InvalidVersion(f"Invalid version: '{version}'")
E packaging.version.InvalidVersion: Invalid version: '0.3.6-pre.f7e3358'
/usr/lib/python3.8/site-packages/packaging/version.py:197: InvalidVersion
----------------------------------------------------------------------------------- Captured stdout call ------------------------------------------------------------------------------------
Pin Candidate(name='avro_turf', ver=, deps=[Requirement(name='avro', spec==1.7.7')>), Requirement(name='excon', spec==0.45.4,~=0.45.4')>)])
___________________________________________________________________________ test_resolver[spapping_and_rewinding] ___________________________________________________________________________
provider = , reporter =
def test_resolver(provider, reporter):
resolver = Resolver(provider, reporter)
if provider.expected_conflicts:
with pytest.raises(ResolutionImpossible) as ctx:
result = resolver.resolve(provider.root_requirements)
print(_format_resolution(result)) # Provide some debugging hints.
assert _format_conflicts(ctx.value) == provider.expected_conflicts
else:
> result = resolver.resolve(provider.root_requirements)
tests/functional/cocoapods/test_resolvers_cocoapods.py:201:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/resolvers.py:521: in resolve
state = resolution.resolve(requirements, max_rounds=max_rounds)
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/resolvers.py:402: in resolve
failure_causes = self._attempt_to_pin_criterion(name)
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/resolvers.py:238: in _attempt_to_pin_criterion
criteria = self._get_updated_criteria(candidate)
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/resolvers.py:229: in _get_updated_criteria
self._add_to_criteria(criteria, requirement, parent=candidate)
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/resolvers.py:168: in _add_to_criteria
candidates=build_iter_view(matches),
../../BUILDROOT/python-resolvelib-0.9.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/resolvelib/structs.py:169: in build_iter_view
matches = list(matches)
tests/functional/cocoapods/test_resolvers_cocoapods.py:139: in find_matches
candidates = sorted(
tests/functional/cocoapods/test_resolvers_cocoapods.py:124: in _iter_matches
version = packaging.version.parse(entry["version"])
/usr/lib/python3.8/site-packages/packaging/version.py:52: in parse
return Version(version)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <[AttributeError("'Version' object has no attribute '_version'") raised in repr()] Version object at 0x7fa383f20d90>, version = '2.0.0.pre.develop.2'
def __init__(self, version: str) -> None:
"""Initialize a Version object.
:param version:
The string representation of a version which will be parsed and normalized
before use.
:raises InvalidVersion:
If the ``version`` does not conform to PEP 440 in any way then this
exception will be raised.
"""
# Validate the version and parse it into pieces
match = self._regex.search(version)
if not match:
> raise InvalidVersion(f"Invalid version: '{version}'")
E packaging.version.InvalidVersion: Invalid version: '2.0.0.pre.develop.2'
/usr/lib/python3.8/site-packages/packaging/version.py:197: InvalidVersion
----------------------------------------------------------------------------------- Captured stdout call ------------------------------------------------------------------------------------
Pin Candidate(name='ruby', ver=, deps=[])
================================================================================== short test summary info ==================================================================================
XFAIL tests/functional/cocoapods/test_resolvers_cocoapods.py::test_resolver[circular] - circular dependencies works for us, no conflicts
XFAIL tests/functional/cocoapods/test_resolvers_cocoapods.py::test_resolver[fixed_circular] - circular dependencies works for us, no backtracks
XFAIL tests/functional/python/test_resolvers_python.py::test_resolver[pyrex-1.9.8] - Too many rounds (>500)
FAILED tests/functional/cocoapods/test_resolvers_cocoapods.py::test_resolver[conflict_common_parent] - packaging.version.InvalidVersion: Invalid version: '5.0.0-beta1.1'
FAILED tests/functional/cocoapods/test_resolvers_cocoapods.py::test_resolver[deep_complex_conflict] - packaging.version.InvalidVersion: Invalid version: '4.0.0-preview2.1'
FAILED tests/functional/cocoapods/test_resolvers_cocoapods.py::test_resolver[pruned_unresolved_orphan] - packaging.version.InvalidVersion: Invalid version: '0.18.0-gh.de28323'
FAILED tests/functional/cocoapods/test_resolvers_cocoapods.py::test_resolver[shared_parent_dependency] - packaging.version.InvalidVersion: Invalid version: '0.10.0-qs.0'
FAILED tests/functional/cocoapods/test_resolvers_cocoapods.py::test_resolver[shared_parent_dependency_with_swapping] - packaging.version.InvalidVersion: Invalid version: '0.3.6-pre.f7e3358'
FAILED tests/functional/cocoapods/test_resolvers_cocoapods.py::test_resolver[spapping_and_rewinding] - packaging.version.InvalidVersion: Invalid version: '2.0.0.pre.develop.2'
========================================================================== 6 failed, 40 passed, 3 xfailed in 9.67s ==========================================================================
```
I'm packaging your module as an rpm package so I'm using the typical PEP517 based build, install and test cycle used on building packages from non-root account.
python3 -sBm build -w --no-isolation
build
with--no-isolation
I'm using during all processes only locally installed modulescut off from access to the public network
(pytest is executed with-m "not network"
)Here is pytest output:
Here is list of installed modules in build env