diff options
Diffstat (limited to 'tests/unit/test_commands.py')
-rw-r--r-- | tests/unit/test_commands.py | 61 |
1 files changed, 33 insertions, 28 deletions
diff --git a/tests/unit/test_commands.py b/tests/unit/test_commands.py index cb144c5f6..7a5c4e831 100644 --- a/tests/unit/test_commands.py +++ b/tests/unit/test_commands.py @@ -1,7 +1,9 @@ -from unittest.mock import patch +from typing import Callable, List +from unittest import mock import pytest +from pip._internal.cli.base_command import Command from pip._internal.cli.req_command import ( IndexGroupCommand, RequirementCommand, @@ -11,71 +13,70 @@ from pip._internal.commands import commands_dict, create_command # These are the expected names of the commands whose classes inherit from # IndexGroupCommand. -EXPECTED_INDEX_GROUP_COMMANDS = [ - 'download', 'index', 'install', 'list', 'wheel'] +EXPECTED_INDEX_GROUP_COMMANDS = ["download", "index", "install", "list", "wheel"] -def check_commands(pred, expected): +def check_commands(pred: Callable[[Command], bool], expected: List[str]) -> None: """ Check the commands satisfying a predicate. """ commands = [create_command(name) for name in sorted(commands_dict)] actual = [command.name for command in commands if pred(command)] - assert actual == expected, f'actual: {actual}' + assert actual == expected, f"actual: {actual}" -def test_commands_dict__order(): +def test_commands_dict__order() -> None: """ Check the ordering of commands_dict. """ names = list(commands_dict) # A spot-check is sufficient to check that commands_dict encodes an # ordering. - assert names[0] == 'install' - assert names[-1] == 'help' + assert names[0] == "install" + assert names[-1] == "help" -@pytest.mark.parametrize('name', list(commands_dict)) -def test_create_command(name): +@pytest.mark.parametrize("name", list(commands_dict)) +def test_create_command(name: str) -> None: """Test creating an instance of each available command.""" command = create_command(name) assert command.name == name assert command.summary == commands_dict[name].summary -def test_session_commands(): +def test_session_commands() -> None: """ Test which commands inherit from SessionCommandMixin. """ - def is_session_command(command): + + def is_session_command(command: Command) -> bool: return isinstance(command, SessionCommandMixin) - expected = [ - 'download', 'index', 'install', 'list', 'search', 'uninstall', 'wheel' - ] + expected = ["download", "index", "install", "list", "search", "uninstall", "wheel"] check_commands(is_session_command, expected) -def test_index_group_commands(): +def test_index_group_commands() -> None: """ Test the commands inheriting from IndexGroupCommand. """ - def is_index_group_command(command): + + def is_index_group_command(command: Command) -> bool: return isinstance(command, IndexGroupCommand) check_commands(is_index_group_command, EXPECTED_INDEX_GROUP_COMMANDS) # Also check that the commands inheriting from IndexGroupCommand are # exactly the commands with the --no-index option. - def has_option_no_index(command): - return command.parser.has_option('--no-index') + def has_option_no_index(command: Command) -> bool: + return command.parser.has_option("--no-index") check_commands(has_option_no_index, EXPECTED_INDEX_GROUP_COMMANDS) -@pytest.mark.parametrize('command_name', EXPECTED_INDEX_GROUP_COMMANDS) +@pytest.mark.parametrize("command_name", EXPECTED_INDEX_GROUP_COMMANDS) @pytest.mark.parametrize( - 'disable_pip_version_check, no_index, expected_called', + "disable_pip_version_check, no_index, expected_called", [ # pip_self_version_check() is only called when both # disable_pip_version_check and no_index are False. @@ -85,11 +86,14 @@ def test_index_group_commands(): (True, True, False), ], ) -@patch('pip._internal.cli.req_command.pip_self_version_check') +@mock.patch("pip._internal.cli.req_command.pip_self_version_check") def test_index_group_handle_pip_version_check( - mock_version_check, command_name, disable_pip_version_check, no_index, - expected_called, -): + mock_version_check: mock.Mock, + command_name: str, + disable_pip_version_check: bool, + no_index: bool, + expected_called: bool, +) -> None: """ Test whether pip_self_version_check() is called when handle_pip_version_check() is called, for each of the @@ -107,11 +111,12 @@ def test_index_group_handle_pip_version_check( mock_version_check.assert_not_called() -def test_requirement_commands(): +def test_requirement_commands() -> None: """ Test which commands inherit from RequirementCommand. """ - def is_requirement_command(command): + + def is_requirement_command(command: Command) -> bool: return isinstance(command, RequirementCommand) - check_commands(is_requirement_command, ['download', 'install', 'wheel']) + check_commands(is_requirement_command, ["download", "install", "wheel"]) |