mirror of https://github.com/pypa/pip
Don't use cwd in python -m pip command
This commit is contained in:
parent
657cf2515b
commit
feac595446
|
@ -0,0 +1 @@
|
||||||
|
Avoid using the current directory for check, freeze, install, list and show commands, when invoked as 'python -m pip <command>'
|
|
@ -3,6 +3,13 @@ from __future__ import absolute_import
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
# Remove '' and current working directory from the first entry
|
||||||
|
# of sys.path, if present to avoid using current directory
|
||||||
|
# in pip commands check, freeze, install, list and show,
|
||||||
|
# when invoked as python -m pip <command>
|
||||||
|
if sys.path[0] in ('', os.getcwd()):
|
||||||
|
sys.path.pop(0)
|
||||||
|
|
||||||
# If we are running from a wheel, add the wheel to sys.path
|
# If we are running from a wheel, add the wheel to sys.path
|
||||||
# This allows the usage python pip-*.whl/pip install pip-*.whl
|
# This allows the usage python pip-*.whl/pip install pip-*.whl
|
||||||
if __package__ == '':
|
if __package__ == '':
|
||||||
|
|
|
@ -3,6 +3,7 @@ import os
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
|
from tests.lib import create_test_package_with_setup
|
||||||
from tests.lib.path import Path
|
from tests.lib.path import Path
|
||||||
|
|
||||||
|
|
||||||
|
@ -543,3 +544,44 @@ def test_list_path_multiple(tmpdir, script, data):
|
||||||
json_result = json.loads(result.stdout)
|
json_result = json.loads(result.stdout)
|
||||||
assert {'name': 'simple', 'version': '2.0'} in json_result
|
assert {'name': 'simple', 'version': '2.0'} in json_result
|
||||||
assert {'name': 'simple2', 'version': '3.0'} in json_result
|
assert {'name': 'simple2', 'version': '3.0'} in json_result
|
||||||
|
|
||||||
|
|
||||||
|
def test_list_skip_work_dir_pkg(script):
|
||||||
|
"""
|
||||||
|
Test that list should not include package in working directory
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Create a test package and create .egg-info dir
|
||||||
|
pkg_path = create_test_package_with_setup(script,
|
||||||
|
name='simple',
|
||||||
|
version='1.0')
|
||||||
|
script.run('python', 'setup.py', 'egg_info',
|
||||||
|
expect_stderr=True, cwd=pkg_path)
|
||||||
|
|
||||||
|
# List should not include package simple when run from package directory
|
||||||
|
result = script.pip('list', '--format=json', cwd=pkg_path)
|
||||||
|
json_result = json.loads(result.stdout)
|
||||||
|
assert {'name': 'simple', 'version': '1.0'} not in json_result
|
||||||
|
|
||||||
|
|
||||||
|
def test_list_include_work_dir_pkg(script):
|
||||||
|
"""
|
||||||
|
Test that list should include package in working directory
|
||||||
|
if working directory is added in sys.path
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Create a test package and create .egg-info dir
|
||||||
|
pkg_path = create_test_package_with_setup(script,
|
||||||
|
name='simple',
|
||||||
|
version='1.0')
|
||||||
|
|
||||||
|
script.run('python', 'setup.py', 'egg_info',
|
||||||
|
expect_stderr=True, cwd=pkg_path)
|
||||||
|
|
||||||
|
# Add PYTHONPATH env variable
|
||||||
|
script.environ.update({'PYTHONPATH': pkg_path})
|
||||||
|
|
||||||
|
# List should include package simple when run from package directory
|
||||||
|
result = script.pip('list', '--format=json', cwd=pkg_path)
|
||||||
|
json_result = json.loads(result.stdout)
|
||||||
|
assert {'name': 'simple', 'version': '1.0'} in json_result
|
||||||
|
|
Loading…
Reference in New Issue