1
1
Fork 0
mirror of https://github.com/pypa/pip synced 2023-12-13 21:30:23 +01:00
pip/tests/functional/test_install_force_reinstall.py
Chris Jerdonek b112292068 Address issue #1139: make --force-reinstall not require --upgrade (#4432)
* Add failing tests for issue #1139 re: --force-reinstall.

* Address issue #1139: make --force-reinstall not require --upgrade.

* Address review comments.

* Address @xavfernandez's review comments.

This makes the new tests not require network access.
2017-10-24 00:03:20 +02:00

47 lines
1.6 KiB
Python

import pytest
from tests.lib import assert_all_changes
def check_installed_version(script, package, expected):
result = script.pip('show', package)
lines = result.stdout.splitlines()
version = None
for line in lines:
if line.startswith('Version: '):
version = line.split()[-1]
break
assert version == expected, 'version {} != {}'.format(version, expected)
def check_force_reinstall(script, specifier, expected):
"""
Args:
specifier: the requirement specifier to force-reinstall.
expected: the expected version after force-reinstalling.
"""
result = script.pip_install_local('simplewheel==1.0')
check_installed_version(script, 'simplewheel', '1.0')
result2 = script.pip_install_local('--force-reinstall', specifier)
assert result2.files_updated, 'force-reinstall failed'
check_installed_version(script, 'simplewheel', expected)
result3 = script.pip('uninstall', 'simplewheel', '-y', expect_error=True)
assert_all_changes(result, result3, [script.venv / 'build', 'cache'])
def test_force_reinstall_with_no_version_specifier(script):
"""
Check --force-reinstall when there is no version specifier and the
installed version is not the newest version.
"""
check_force_reinstall(script, 'simplewheel', '2.0')
def test_force_reinstall_with_same_version_specifier(script):
"""
Check --force-reinstall when the version specifier equals the installed
version and the installed version is not the newest version.
"""
check_force_reinstall(script, 'simplewheel==1.0', '1.0')