summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPradyun Gedam <3275593+pradyunsg@users.noreply.github.com>2020-10-27 19:33:33 +0530
committerGitHub <noreply@github.com>2020-10-27 19:33:33 +0530
commitf5ac3434814c910c1e4831c1525cd5f8ec5c245a (patch)
treeb74a2514b10881d017490eb940f385ae4153832e
parent5bfd1db071c78c4bdcf2e80cc2142f1557d17d25 (diff)
parent45d3a3e8595e1820ea26f8a5a56557f67b32a1d5 (diff)
downloadpip-f5ac3434814c910c1e4831c1525cd5f8ec5c245a.tar.gz
Merge pull request #9055 from pradyunsg/modify-assertion-in-topological-sort
-rw-r--r--src/pip/_internal/resolution/resolvelib/resolver.py11
-rw-r--r--tests/unit/resolution_resolvelib/test_resolver.py2
2 files changed, 8 insertions, 5 deletions
diff --git a/src/pip/_internal/resolution/resolvelib/resolver.py b/src/pip/_internal/resolution/resolvelib/resolver.py
index cb7d1ae8a..52f228bc6 100644
--- a/src/pip/_internal/resolution/resolvelib/resolver.py
+++ b/src/pip/_internal/resolution/resolvelib/resolver.py
@@ -180,7 +180,10 @@ class Resolver(BaseResolver):
assert self._result is not None, "must call resolve() first"
graph = self._result.graph
- weights = get_topological_weights(graph)
+ weights = get_topological_weights(
+ graph,
+ expected_node_count=len(self._result.mapping) + 1,
+ )
sorted_items = sorted(
req_set.requirements.items(),
@@ -190,8 +193,8 @@ class Resolver(BaseResolver):
return [ireq for _, ireq in sorted_items]
-def get_topological_weights(graph):
- # type: (Graph) -> Dict[Optional[str], int]
+def get_topological_weights(graph, expected_node_count):
+ # type: (Graph, int) -> Dict[Optional[str], int]
"""Assign weights to each node based on how "deep" they are.
This implementation may change at any point in the future without prior
@@ -231,7 +234,7 @@ def get_topological_weights(graph):
# Sanity checks
assert weights[None] == 0
- assert len(weights) == len(graph)
+ assert len(weights) == expected_node_count
return weights
diff --git a/tests/unit/resolution_resolvelib/test_resolver.py b/tests/unit/resolution_resolvelib/test_resolver.py
index 0f240ec6c..4a62cefb6 100644
--- a/tests/unit/resolution_resolvelib/test_resolver.py
+++ b/tests/unit/resolution_resolvelib/test_resolver.py
@@ -232,5 +232,5 @@ def test_new_resolver_get_installation_order(resolver, edges, ordered_reqs):
def test_new_resolver_topological_weights(name, edges, expected_weights):
graph = _make_graph(edges)
- weights = get_topological_weights(graph)
+ weights = get_topological_weights(graph, len(expected_weights))
assert weights == expected_weights