|
| 1 | +from typing import Dict, List, Optional, Tuple, cast |
1 | 2 | from unittest import mock
|
2 | 3 |
|
3 | 4 | import pytest
|
4 | 5 | from pip._vendor.packaging.utils import canonicalize_name
|
5 | 6 | from pip._vendor.resolvelib.resolvers import Result
|
6 | 7 | from pip._vendor.resolvelib.structs import DirectedGraph
|
7 | 8 |
|
| 9 | +from pip._internal.index.package_finder import PackageFinder |
| 10 | +from pip._internal.operations.prepare import RequirementPreparer |
8 | 11 | from pip._internal.req.constructors import install_req_from_line
|
9 | 12 | from pip._internal.req.req_set import RequirementSet
|
10 | 13 | from pip._internal.resolution.resolvelib.resolver import (
|
|
14 | 17 |
|
15 | 18 |
|
16 | 19 | @pytest.fixture()
|
17 |
| -def resolver(preparer, finder): |
| 20 | +def resolver(preparer: RequirementPreparer, finder: PackageFinder) -> Resolver: |
18 | 21 | resolver = Resolver(
|
19 | 22 | preparer=preparer,
|
20 | 23 | finder=finder,
|
21 | 24 | wheel_cache=None,
|
22 | 25 | make_install_req=mock.Mock(),
|
23 |
| - use_user_site="not-used", |
24 |
| - ignore_dependencies="not-used", |
25 |
| - ignore_installed="not-used", |
26 |
| - ignore_requires_python="not-used", |
27 |
| - force_reinstall="not-used", |
| 26 | + use_user_site=False, |
| 27 | + ignore_dependencies=False, |
| 28 | + ignore_installed=False, |
| 29 | + ignore_requires_python=False, |
| 30 | + force_reinstall=False, |
28 | 31 | upgrade_strategy="to-satisfy-only",
|
29 | 32 | )
|
30 | 33 | return resolver
|
31 | 34 |
|
32 | 35 |
|
33 |
| -def _make_graph(edges): |
| 36 | +def _make_graph( |
| 37 | + edges: List[Tuple[Optional[str], Optional[str]]] |
| 38 | +) -> "DirectedGraph[Optional[str]]": |
34 | 39 | """Build graph from edge declarations."""
|
35 | 40 |
|
36 |
| - graph = DirectedGraph() |
| 41 | + graph: "DirectedGraph[Optional[str]]" = DirectedGraph() |
37 | 42 | for parent, child in edges:
|
38 |
| - parent = canonicalize_name(parent) if parent else None |
39 |
| - child = canonicalize_name(child) if child else None |
| 43 | + parent = cast(str, canonicalize_name(parent)) if parent else None |
| 44 | + child = cast(str, canonicalize_name(child)) if child else None |
40 | 45 | for v in (parent, child):
|
41 | 46 | if v not in graph:
|
42 | 47 | graph.add(v)
|
@@ -76,12 +81,16 @@ def _make_graph(edges):
|
76 | 81 | ),
|
77 | 82 | ],
|
78 | 83 | )
|
79 |
| -def test_new_resolver_get_installation_order(resolver, edges, ordered_reqs): |
| 84 | +def test_new_resolver_get_installation_order( |
| 85 | + resolver: Resolver, |
| 86 | + edges: List[Tuple[Optional[str], Optional[str]]], |
| 87 | + ordered_reqs: List[str], |
| 88 | +) -> None: |
80 | 89 | graph = _make_graph(edges)
|
81 | 90 |
|
82 | 91 | # Mapping values and criteria are not used in test, so we stub them out.
|
83 | 92 | mapping = {vertex: None for vertex in graph if vertex is not None}
|
84 |
| - resolver._result = Result(mapping, graph, criteria=None) |
| 93 | + resolver._result = Result(mapping, graph, criteria=None) # type: ignore |
85 | 94 |
|
86 | 95 | reqset = RequirementSet()
|
87 | 96 | for r in ordered_reqs:
|
@@ -229,7 +238,11 @@ def test_new_resolver_get_installation_order(resolver, edges, ordered_reqs):
|
229 | 238 | ),
|
230 | 239 | ],
|
231 | 240 | )
|
232 |
| -def test_new_resolver_topological_weights(name, edges, expected_weights): |
| 241 | +def test_new_resolver_topological_weights( |
| 242 | + name: str, |
| 243 | + edges: List[Tuple[Optional[str], Optional[str]]], |
| 244 | + expected_weights: Dict[Optional[str], int], |
| 245 | +) -> None: |
233 | 246 | graph = _make_graph(edges)
|
234 | 247 |
|
235 | 248 | weights = get_topological_weights(graph, len(expected_weights))
|
|
0 commit comments