Skip to content

Commit

Permalink
fixing liniting
Browse files Browse the repository at this point in the history
  • Loading branch information
nadavwe committed Aug 2, 2021
1 parent a9ef2de commit d19c4f8
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 62 deletions.
30 changes: 15 additions & 15 deletions src/pip/_internal/resolution/resolvelib/factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -647,21 +647,6 @@ def get_installation_error(
"#fixing-conflicting-dependencies"
)

def get_backtracking_reason_message(self, backtracking_causes, constraints):
requires_python_causes = self.extract_requires_python_causes(
backtracking_causes
)
if requires_python_causes or len(backtracking_causes) == 1:
# no message when python causes or a single failure, since this is probably a genuine problem
return

# OK, we now have a list of requirements that can't all be
# satisfied at once.

return self.triggers_message(backtracking_causes) + self.causes_message(
constraints, backtracking_causes
)

@staticmethod
def causes_message(constraints, failure_causes):
msg = "\nThe conflict is caused by:"
Expand Down Expand Up @@ -722,3 +707,18 @@ def extract_requires_python_causes(self, failure_causes):
if isinstance(cause.requirement, RequiresPythonRequirement)
and not cause.requirement.is_satisfied_by(self._python_candidate)
]

def get_backtracking_reason_message(self, backtracking_causes, constraints):
requires_python_causes = self.extract_requires_python_causes(
backtracking_causes
)
if requires_python_causes or len(backtracking_causes) == 1:
# no message when python causes or a single failure, since this is probably a genuine problem
return

# OK, we now have a list of requirements that can't all be
# satisfied at once.

return self.triggers_message(backtracking_causes) + self.causes_message(
constraints, backtracking_causes
)
95 changes: 48 additions & 47 deletions tests/functional/test_new_resolver.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ def assert_editable(script, *args):

@pytest.fixture()
def make_fake_wheel(script):

def _make_fake_wheel(name, version, wheel_tag):
wheel_house = script.scratch_path.joinpath("wheelhouse")
wheel_house.mkdir()
Expand Down Expand Up @@ -286,7 +287,7 @@ def test_new_resolver_no_dist_message(script):
# ERROR: No matching distribution found for xxx

assert "Could not find a version that satisfies the requirement B" \
in result.stderr, str(result)
in result.stderr, str(result)
assert "No matching distribution found for B" in result.stderr, str(result)


Expand Down Expand Up @@ -326,10 +327,10 @@ def test_new_resolver_installs_editable(script):
],
)
def test_new_resolver_requires_python(
script,
requires_python,
ignore_requires_python,
dep_version,
script,
requires_python,
ignore_requires_python,
dep_version,
):
create_basic_wheel_for_package(
script,
Expand Down Expand Up @@ -560,10 +561,10 @@ def test_new_resolver_force_reinstall(script):
ids=["default", "exact-pre", "explicit-pre", "no-stable"],
)
def test_new_resolver_handles_prerelease(
script,
available_versions,
pip_args,
expected_version,
script,
available_versions,
pip_args,
expected_version,
):
for version in available_versions:
create_basic_wheel_for_package(script, "pkg", version)
Expand Down Expand Up @@ -644,16 +645,16 @@ def test_new_resolver_constraint_no_specifier(script):
"constraint, error",
[
(
"dist.zip",
"Unnamed requirements are not allowed as constraints",
"dist.zip",
"Unnamed requirements are not allowed as constraints",
),
(
"-e git+https://example.com/dist.git#egg=req",
"Editable requirements are not allowed as constraints",
"-e git+https://example.com/dist.git#egg=req",
"Editable requirements are not allowed as constraints",
),
(
"pkg[extra]",
"Constraints cannot have extras",
"pkg[extra]",
"Constraints cannot have extras",
),
],
)
Expand Down Expand Up @@ -699,10 +700,10 @@ def test_new_resolver_constraint_on_dependency(script):
],
)
def test_new_resolver_constraint_on_path_empty(
script,
constraint_version,
expect_error,
message,
script,
constraint_version,
expect_error,
message,
):
"""A path requirement can be filtered by a constraint.
"""
Expand Down Expand Up @@ -886,7 +887,7 @@ def _wheel_from_index(script, name, version, requires, extras):
],
)
def test_new_resolver_extra_merge_in_package(
self, monkeypatch, script, pkg_builder,
self, monkeypatch, script, pkg_builder,
):
create_basic_wheel_for_package(script, "depdev", "1.0.0")
create_basic_wheel_for_package(
Expand Down Expand Up @@ -1045,7 +1046,7 @@ def test_new_resolver_prefers_installed_in_upgrade_if_latest(script):
@pytest.mark.parametrize("N", [2, 10, 20])
def test_new_resolver_presents_messages_when_backtracking_a_lot(script, N):
# Generate a set of wheels that will definitely cause backtracking.
for index in range(1, N + 1):
for index in range(1, N+1):
A_version = f"{index}.0.0"
B_version = f"{index}.0.0"
C_version = "{index_minus_one}.0.0".format(index_minus_one=index - 1)
Expand All @@ -1057,15 +1058,15 @@ def test_new_resolver_presents_messages_when_backtracking_a_lot(script, N):
print("A", A_version, "B", B_version, "C", C_version)
create_basic_wheel_for_package(script, "A", A_version, depends=depends)

for index in range(1, N + 1):
for index in range(1, N+1):
B_version = f"{index}.0.0"
C_version = f"{index}.0.0"
depends = ["C == " + C_version]

print("B", B_version, "C", C_version)
create_basic_wheel_for_package(script, "B", B_version, depends=depends)

for index in range(1, N + 1):
for index in range(1, N+1):
C_version = f"{index}.0.0"
print("C", C_version)
create_basic_wheel_for_package(script, "C", C_version)
Expand Down Expand Up @@ -1143,9 +1144,9 @@ def test_new_resolver_presents_messages_when_backtracking_starts(script):
ids=["file_dot", "file_underscore"],
)
def test_new_resolver_check_wheel_version_normalized(
script,
metadata_version,
filename_version,
script,
metadata_version,
filename_version,
):
filename = f"simple-{filename_version}-py2.py3-none-any.whl"

Expand Down Expand Up @@ -1245,8 +1246,8 @@ def test_new_resolver_skip_inconsistent_metadata(script):
)

assert (
" inconsistent version: filename has '3', but metadata has '2'"
) in result.stderr, str(result)
" inconsistent version: filename has '3', but metadata has '2'"
) in result.stderr, str(result)
assert_installed(script, a="1")


Expand Down Expand Up @@ -1464,7 +1465,7 @@ def test_new_resolver_prefers_url_constraint_on_update(script):

@pytest.mark.parametrize("version_option", ["--constraint", "--requirement"])
def test_new_resolver_fails_with_url_constraint_and_incompatible_version(
script, version_option,
script, version_option,
):
not_installed_path = create_basic_wheel_for_package(
script,
Expand Down Expand Up @@ -1495,8 +1496,8 @@ def test_new_resolver_fails_with_url_constraint_and_incompatible_version(

assert "Cannot install test_pkg" in result.stderr, str(result)
assert (
"because these package versions have conflicting dependencies."
) in result.stderr, str(result)
"because these package versions have conflicting dependencies."
) in result.stderr, str(result)

assert_not_installed(script, "test_pkg")

Expand Down Expand Up @@ -1577,9 +1578,9 @@ def test_new_resolver_fails_on_needed_conflicting_constraints(script):
)

assert (
"Cannot install test_pkg because these package versions have conflicting "
"dependencies."
) in result.stderr, str(result)
"Cannot install test_pkg because these package versions have conflicting "
"dependencies."
) in result.stderr, str(result)

assert_not_installed(script, "test_pkg")

Expand Down Expand Up @@ -1618,8 +1619,8 @@ def test_new_resolver_fails_on_conflicting_constraint_and_requirement(script):

assert "Cannot install test-pkg 0.2.0" in result.stderr, str(result)
assert (
"because these package versions have conflicting dependencies."
) in result.stderr, str(result)
"because these package versions have conflicting dependencies."
) in result.stderr, str(result)

assert_not_installed(script, "test_pkg")

Expand Down Expand Up @@ -1702,7 +1703,7 @@ def test_new_resolver_applies_url_constraint_to_dep(script):


def test_new_resolver_handles_compatible_wheel_tags_in_constraint_url(
script, make_fake_wheel
script, make_fake_wheel
):
initial_path = make_fake_wheel("base", "0.1.0", "fakepy1-fakeabi-fakeplat")

Expand Down Expand Up @@ -1734,7 +1735,7 @@ def test_new_resolver_handles_compatible_wheel_tags_in_constraint_url(


def test_new_resolver_handles_incompatible_wheel_tags_in_constraint_url(
script, make_fake_wheel
script, make_fake_wheel
):
initial_path = make_fake_wheel("base", "0.1.0", "fakepy1-fakeabi-fakeplat")

Expand All @@ -1757,15 +1758,15 @@ def test_new_resolver_handles_incompatible_wheel_tags_in_constraint_url(
)

assert (
"Cannot install base because these package versions have conflicting "
"dependencies."
) in result.stderr, str(result)
"Cannot install base because these package versions have conflicting "
"dependencies."
) in result.stderr, str(result)

assert_not_installed(script, "base")


def test_new_resolver_avoids_incompatible_wheel_tags_in_constraint_url(
script, make_fake_wheel
script, make_fake_wheel
):
initial_path = make_fake_wheel("dep", "0.1.0", "fakepy1-fakeabi-fakeplat")

Expand Down Expand Up @@ -1861,11 +1862,11 @@ def test_new_resolver_avoids_incompatible_wheel_tags_in_constraint_url(
],
)
def test_new_resolver_direct_url_equivalent(
tmp_path,
script,
suffixes_equivalent,
depend_suffix,
request_suffix,
tmp_path,
script,
suffixes_equivalent,
depend_suffix,
request_suffix,
):
pkga = create_basic_wheel_for_package(script, name="pkga", version="1")
pkgb = create_basic_wheel_for_package(
Expand Down

0 comments on commit d19c4f8

Please sign in to comment.