diff options
author | Pradyun Gedam <3275593+pradyunsg@users.noreply.github.com> | 2020-10-27 19:33:33 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-27 19:33:33 +0530 |
commit | f5ac3434814c910c1e4831c1525cd5f8ec5c245a (patch) | |
tree | b74a2514b10881d017490eb940f385ae4153832e | |
parent | 5bfd1db071c78c4bdcf2e80cc2142f1557d17d25 (diff) | |
parent | 45d3a3e8595e1820ea26f8a5a56557f67b32a1d5 (diff) | |
download | pip-f5ac3434814c910c1e4831c1525cd5f8ec5c245a.tar.gz |
Merge pull request #9055 from pradyunsg/modify-assertion-in-topological-sort
-rw-r--r-- | src/pip/_internal/resolution/resolvelib/resolver.py | 11 | ||||
-rw-r--r-- | tests/unit/resolution_resolvelib/test_resolver.py | 2 |
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 |