1
1
Fork 0
mirror of https://github.com/pypa/pip synced 2023-12-13 21:30:23 +01:00

Add some handle_pip_version_check() tests.

This commit is contained in:
Chris Jerdonek 2019-08-07 22:03:49 -07:00
parent 505456fed7
commit 9b1ece3c96
2 changed files with 52 additions and 4 deletions

View file

@ -2,6 +2,8 @@ import logging
import os
import time
from mock import patch
from pip._internal.cli.base_command import Command
from pip._internal.utils.logging import BrokenStdoutLoggingError
@ -72,6 +74,16 @@ class TestCommand(object):
assert 'Traceback (most recent call last):' in stderr
@patch('pip._internal.cli.req_command.Command.handle_pip_version_check')
def test_handle_pip_version_check_called(mock_handle_version_check):
"""
Check that Command.handle_pip_version_check() is called.
"""
cmd = FakeCommand()
cmd.main([])
mock_handle_version_check.assert_called_once()
class Test_base_command_logging(object):
"""
Test `pip.base_command.Command` setting up logging consumers based on

View file

@ -1,4 +1,5 @@
import pytest
from mock import patch
from pip._internal.cli.req_command import (
IndexGroupCommand,
@ -7,6 +8,10 @@ from pip._internal.cli.req_command import (
)
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', 'install', 'list', 'wheel']
def check_commands(pred, expected):
"""
@ -51,19 +56,50 @@ def test_index_group_commands():
"""
Test the commands inheriting from IndexGroupCommand.
"""
expected = ['download', 'install', 'list', 'wheel']
def is_index_group_command(command):
return isinstance(command, IndexGroupCommand)
check_commands(is_index_group_command, expected)
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')
check_commands(has_option_no_index, expected)
check_commands(has_option_no_index, EXPECTED_INDEX_GROUP_COMMANDS)
@pytest.mark.parametrize('command_name', EXPECTED_INDEX_GROUP_COMMANDS)
@pytest.mark.parametrize(
'disable_pip_version_check, no_index, expected_called',
[
# pip_version_check() is only called when both
# disable_pip_version_check and no_index are False.
(False, False, True),
(False, True, False),
(True, False, False),
(True, True, False),
],
)
@patch('pip._internal.cli.req_command.pip_version_check')
def test_index_group_handle_pip_version_check(
mock_version_check, command_name, disable_pip_version_check, no_index,
expected_called,
):
"""
Test whether pip_version_check() is called when handle_pip_version_check()
is called, for each of the IndexGroupCommand classes.
"""
command = create_command(command_name)
options = command.parser.get_default_values()
options.disable_pip_version_check = disable_pip_version_check
options.no_index = no_index
command.handle_pip_version_check(options)
if expected_called:
mock_version_check.assert_called_once()
else:
mock_version_check.assert_not_called()
def test_requirement_commands():