Skip to content

Commit 6ea91c8

Browse files
committed
Add more test cases
1 parent 13459a8 commit 6ea91c8

File tree

3 files changed

+29
-31
lines changed

3 files changed

+29
-31
lines changed

src/pip/_internal/cli/req_command.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import sys
1111
from functools import partial
1212
from optparse import Values
13-
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Union
13+
from typing import TYPE_CHECKING, Any, List, Optional, Tuple
1414

1515
from pip._internal.cache import WheelCache
1616
from pip._internal.cli import cmdoptions
@@ -441,13 +441,9 @@ def get_requirements(
441441
else None
442442
)
443443
cli_config_settings = getattr(options, "config_settings", None)
444-
config_settings: Optional[Dict[str, Union[str, List[str]]]]
445-
if req_config_settings and cli_config_settings:
446-
config_settings = merge_config_settings(
447-
req_config_settings, cli_config_settings
448-
)
449-
else:
450-
config_settings = req_config_settings or cli_config_settings
444+
config_settings = merge_config_settings(
445+
req_config_settings, cli_config_settings
446+
)
451447
req_to_add = install_req_from_parsed_requirement(
452448
parsed_req,
453449
isolated=options.isolated_mode,

src/pip/_internal/utils/misc.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
Iterable,
2828
Iterator,
2929
List,
30-
Mapping,
3130
Optional,
3231
TextIO,
3332
Tuple,
@@ -733,9 +732,12 @@ def prepare_metadata_for_build_editable(
733732

734733

735734
def merge_config_settings(
736-
reqs_settings: Mapping[str, Union[str, List[str]]],
737-
cli_settings: Mapping[str, Union[str, List[str]]],
735+
reqs_settings: Optional[Dict[str, Union[str, List[str]]]],
736+
cli_settings: Optional[Dict[str, Union[str, List[str]]]],
738737
) -> Dict[str, Union[str, List[str]]]:
738+
if not reqs_settings or not cli_settings:
739+
return reqs_settings or cli_settings
740+
739741
dd: Dict[str, Union[str, List[str]]] = {}
740742
for d in (reqs_settings, cli_settings):
741743
for k, v in d.items():

tests/unit/test_utils_misc.py

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
1-
from typing import Dict, List, Union
1+
from typing import Dict, List, Optional, Union
2+
3+
import pytest
24

35
from pip._internal.utils.misc import merge_config_settings
46

57

6-
def test_merge_config_settings() -> None:
7-
reqs: Dict[str, Union[str, List[str]]] = {
8-
"foo": "bar",
9-
"bar": "foo",
10-
"foobar": ["bar"],
11-
"baz": ["foo"],
12-
}
13-
cli: Dict[str, Union[str, List[str]]] = {
14-
"foo": ["baz"],
15-
"bar": "bar",
16-
"foobar": ["baz"],
17-
"baz": "bar",
18-
}
19-
expected = {
20-
"foo": ["bar", "baz"],
21-
"bar": ["foo", "bar"],
22-
"foobar": ["bar", "baz"],
23-
"baz": ["foo", "bar"],
24-
}
8+
@pytest.mark.parametrize(
9+
"reqs, cli, expected",
10+
[
11+
({"foo": "bar"}, {"foo": ["baz"]}, {"foo": ["bar", "baz"]}),
12+
({"foo": "bar"}, {"foo": "baz"}, {"foo": ["bar", "baz"]}),
13+
({"foo": ["bar"]}, {"foo": ["baz"]}, {"foo": ["bar", "baz"]}),
14+
({"foo": ["bar"]}, {"foo": "baz"}, {"foo": ["bar", "baz"]}),
15+
({"foo": "bar"}, {"foo": ["baz"]}, {"foo": ["bar", "baz"]}),
16+
({"foo": "bar"}, None, {"foo": "bar"}),
17+
(None, {"foo": ["bar"]}, {"foo": ["bar"]}),
18+
],
19+
)
20+
def test_merge_config_settings(
21+
reqs: Optional[Dict[str, Union[str, List[str]]]],
22+
cli: Optional[Dict[str, Union[str, List[str]]]],
23+
expected: Dict[str, Union[str, List[str]]],
24+
) -> None:
2525
assert merge_config_settings(reqs, cli) == expected

0 commit comments

Comments
 (0)