Merge pull request #691 from kennethreitz/more-tests

More tests
This commit is contained in:
2017-09-25 10:18:36 -04:00
committed by GitHub
7 changed files with 93 additions and 522 deletions
-1
View File
@@ -7,7 +7,6 @@ python:
- "pypy"
- "3.7-dev"
# - "pypy3" # TODO: pkg_config issues
# - "3.7-dev"
# command to install dependencies
install:
-25
View File
@@ -13,42 +13,17 @@ environment:
- PYTHON: "C:\\Python27-x64"
PYTHON_VERSION: "2.7.x"
PYTHON_ARCH: "64"
TOXENV: "py27"
- PYTHON: "C:\\Python27"
PYTHON_VERSION: "2.7.x"
PYTHON_ARCH: "32"
TOXENV: "py27"
- PYTHON: "C:\\Python34-x64"
PYTHON_VERSION: "3.4.x"
PYTHON_ARCH: "64"
TOXENV: "py34"
- PYTHON: "C:\\Python34"
PYTHON_VERSION: "3.4.x"
PYTHON_ARCH: "32"
TOXENV: "py34"
- PYTHON: "C:\\Python35-x64"
PYTHON_VERSION: "3.5.x"
PYTHON_ARCH: "64"
TOXENV: "py35"
- PYTHON: "C:\\Python35"
PYTHON_VERSION: "3.5.x"
PYTHON_ARCH: "32"
TOXENV: "py35"
- PYTHON: "C:\\Python36-x64"
PYTHON_VERSION: "3.6.x"
PYTHON_ARCH: "64"
TOXENV: "py36"
- PYTHON: "C:\\Python36"
PYTHON_VERSION: "3.6.x"
PYTHON_ARCH: "32"
TOXENV: "py36"
install:
# Install Python (from the official .msi of http://python.org) and pip when
View File
-339
View File
@@ -1,339 +0,0 @@
import os
import shutil
from mock import patch, Mock, PropertyMock
from pipenv.vendor import delegator
from pipenv.patched import contoml
from pipenv.cli import (
ensure_proper_casing,
pip_install, pip_download, find_a_system_python
)
FULL_PYTHON_PATH = 'C:\\Python36-x64\\python.exe'
class TestPipenvWindows():
def test_existience(self):
assert True
def test_cli_with_custom_python_path(self):
delegator.run('mkdir custom_python')
os.chdir('custom_python')
c = delegator.run('pipenv install --python={0}'.format(FULL_PYTHON_PATH))
# Debugging, if it fails.
print(c.out)
print(c.err)
assert c.return_code == 0
def test_cli_usage(self):
delegator.run('mkdir test_project')
os.chdir('test_project')
os.environ['PIPENV_VENV_IN_PROJECT'] = '1'
assert delegator.run('copy /y nul Pipfile').return_code == 0
assert delegator.run('pipenv install Werkzeug').return_code == 0
assert delegator.run('pipenv install pytest --dev').return_code == 0
assert delegator.run('pipenv install git+https://github.com/requests/requests.git@v2.18.4#egg=requests').return_code == 0
assert delegator.run('pipenv lock').return_code == 0
# Test uninstalling a package after locking.
assert delegator.run('pipenv uninstall Werkzeug').return_code == 0
pipfile_output = delegator.run('type Pipfile').out
lockfile_output = delegator.run('type Pipfile.lock').out
# Ensure uninstall works.
assert 'Werkzeug' not in pipfile_output
assert 'werkzeug' not in lockfile_output
# Ensure dev-packages work.
assert 'pytest' in pipfile_output
assert 'pytest' in lockfile_output
# Ensure vcs dependencies work.
assert 'requests' in pipfile_output
assert '"git": "https://github.com/requests/requests.git"' in lockfile_output
os.chdir('..')
shutil.rmtree('test_project')
def test_requirements_to_pipfile(self):
delegator.run('mkdir test_requirements_to_pip')
os.chdir('test_requirements_to_pip')
os.environ['PIPENV_VENV_IN_PROJECT'] = '1'
os.environ['PIPENV_MAX_DEPTH'] = '1'
with open('requirements.txt', 'w') as f:
f.write('requests[socks]==2.18.1\n'
'git+https://github.com/kennethreitz/records.git@v0.5.0#egg=records\n'
'-e git+https://github.com/kennethreitz/maya.git@v0.3.2#egg=maya\n'
'six==1.10.0\n')
assert delegator.run('pipenv install').return_code == 0
print(delegator.run('pipenv lock').err)
assert delegator.run('pipenv lock').return_code == 0
pipfile_output = delegator.run('type Pipfile').out
lockfile_output = delegator.run('type Pipfile.lock').out
# Ensure extras work.
assert 'socks' in pipfile_output
assert 'pysocks' in lockfile_output
# Ensure vcs dependencies work.
assert 'records' in pipfile_output
assert '"git": "https://github.com/kennethreitz/records.git"' in lockfile_output
# Ensure editable packages work.
assert 'ref = "v0.3.2"' in pipfile_output
assert '"editable": true' in lockfile_output
# Ensure BAD_PACKAGES aren't copied into Pipfile from requirements.txt.
assert 'six = "==1.10.0"' not in pipfile_output
os.chdir('..')
# shutil.rmtree('test_requirements_to_pip')
del os.environ['PIPENV_MAX_DEPTH']
def test_timeout_long(self):
delegator.run('mkdir test_timeout_long')
os.chdir('test_timeout_long')
os.environ['PIPENV_VENV_IN_PROJECT'] = '1'
os.environ['PIPENV_TIMEOUT'] = '60'
assert delegator.run('copy /y nul Pipfile').return_code == 0
os.chdir('..')
shutil.rmtree('test_timeout_long')
del os.environ['PIPENV_TIMEOUT']
def test_timeout_short(self):
delegator.run('mkdir test_timeout_short')
os.chdir('test_timeout_short')
os.environ['PIPENV_VENV_IN_PROJECT'] = '1'
os.environ['PIPENV_TIMEOUT'] = '0'
assert delegator.run('copy /y nul Pipfile').return_code == 0
os.chdir('..')
shutil.rmtree('test_timeout_short')
del os.environ['PIPENV_TIMEOUT']
def test_pipenv_uninstall(self):
delegator.run('mkdir test_pipenv_uninstall')
os.chdir('test_pipenv_uninstall')
# Build the environment.
os.environ['PIPENV_VENV_IN_PROJECT'] = '1'
assert delegator.run('copy /y nul Pipfile').return_code == 0
assert delegator.run('pipenv install').return_code == 0
# Add entries to Pipfile.
assert delegator.run('pipenv install Werkzeug').return_code == 0
assert delegator.run('pipenv install pytest --dev').return_code == 0
pipfile_output = delegator.run('type Pipfile').out
pipfile_list = pipfile_output.split('\n')
assert 'werkzeug = "*"' in pipfile_list
assert 'pytest = "*"' in pipfile_list
assert '[packages]' in pipfile_list
assert '[dev-packages]' in pipfile_list
# Uninstall from dev-packages, removing TOML section.
assert delegator.run('pipenv uninstall pytest').return_code == 0
# Test uninstalling non-existant dependency.
c = delegator.run('pipenv uninstall NotAPackage')
assert c.return_code == 0
assert 'No package NotAPackage to remove from Pipfile.' in c.out
pipfile_output = delegator.run('type Pipfile').out
pipfile_list = pipfile_output.split('\n')
assert 'Werkzeug = "*"' in pipfile_list
assert 'pytest = "*"' not in pipfile_list
assert '[packages]' in pipfile_list
# assert '[dev-packages]' not in pipfile_list
os.chdir('..')
shutil.rmtree('test_pipenv_uninstall')
def test_pipenv_run(self):
working_dir = 'test_pipenv_run'
delegator.run('mkdir {0}'.format(working_dir))
os.chdir(working_dir)
# Build the environment.
os.environ['PIPENV_VENV_IN_PROJECT'] = '1'
assert delegator.run('copy /y nul Pipfile').return_code == 0
# Install packages for test.
assert delegator.run('pipenv install pep8').return_code == 0
assert delegator.run('pipenv install pytest').return_code == 0
# Run test commands.
assert delegator.run('pipenv run python -c \'print("test")\'').return_code == 0
assert delegator.run('pipenv run pep8 --version').return_code == 0
assert delegator.run('pipenv run pytest --version').return_code == 0
os.chdir('..')
shutil.rmtree(working_dir)
def test_ensure_proper_casing_names(self):
"""Ensure proper casing for package names."""
pfile_test = ("[packages]\n"
"DjAnGO = \"*\"\n"
"flask = \"==0.11\"\n"
"\n\n"
"[dev-packages]\n"
"PyTEST = \"*\"\n")
# Load test Pipfile.
p = contoml.loads(pfile_test)
assert 'DjAnGO' in p['packages']
assert 'PyTEST' in p['dev-packages']
changed = ensure_proper_casing(p)
assert 'Django' in p['packages']
assert 'DjAnGO' not in p['packages']
assert 'pytest' in p['dev-packages']
assert 'PyTEST' not in p['dev-packages']
assert changed is True
@patch('pipenv.project.Project.sources', new_callable=PropertyMock)
@patch('delegator.run')
def test_pip_install_should_try_every_possible_source(self, mocked_delegator, mocked_sources):
sources = [
{'url': 'http://dontexistis.in.pypi/simple'},
{'url': 'http://existis.in.pypi/simple'}
]
mocked_sources.return_value = sources
first_cmd_return = Mock()
first_cmd_return.return_code = 1
second_cmd_return = Mock()
second_cmd_return.return_code = 0
mocked_delegator.side_effect = [first_cmd_return, second_cmd_return]
c = pip_install('package')
assert c.return_code == 0
@patch('pipenv.project.Project.sources', new_callable=PropertyMock)
@patch('delegator.run')
def test_pip_install_should_return_the_last_error_if_no_cmd_worked(self, mocked_delegator, mocked_sources):
sources = [
{'url': 'http://dontexistis.in.pypi/simple'},
{'url': 'http://dontexistis.in.pypi/simple'}
]
mocked_sources.return_value = sources
first_cmd_return = Mock()
first_cmd_return.return_code = 1
second_cmd_return = Mock()
second_cmd_return.return_code = 1
mocked_delegator.side_effect = [first_cmd_return, second_cmd_return]
c = pip_install('package')
assert c.return_code == 1
assert c == second_cmd_return
@patch('pipenv.project.Project.sources', new_callable=PropertyMock)
@patch('delegator.run')
def test_pip_install_should_return_the_first_cmd_that_worked(self, mocked_delegator, mocked_sources):
sources = [
{'url': 'http://existis.in.pypi/simple'},
{'url': 'http://existis.in.pypi/simple'}
]
mocked_sources.return_value = sources
first_cmd_return = Mock()
first_cmd_return.return_code = 0
second_cmd_return = Mock()
second_cmd_return.return_code = 0
mocked_delegator.side_effect = [first_cmd_return, second_cmd_return]
c = pip_install('package')
assert c.return_code == 0
assert c == first_cmd_return
@patch('pipenv.project.Project.sources', new_callable=PropertyMock)
@patch('delegator.run')
def test_pip_download_should_try_every_possible_source(self, mocked_delegator, mocked_sources):
sources = [
{'url': 'http://dontexistis.in.pypi/simple'},
{'url': 'http://existis.in.pypi/simple'}
]
mocked_sources.return_value = sources
first_cmd_return = Mock()
first_cmd_return.return_code = 1
second_cmd_return = Mock()
second_cmd_return.return_code = 0
mocked_delegator.side_effect = [first_cmd_return, second_cmd_return]
c = pip_download('package')
assert c.return_code == 0
@patch('pipenv.project.Project.sources', new_callable=PropertyMock)
@patch('delegator.run')
def test_pip_download_should_return_the_last_error_if_no_cmd_worked(self, mocked_delegator, mocked_sources):
sources = [
{'url': 'http://dontexistis.in.pypi/simple'},
{'url': 'http://dontexistis.in.pypi/simple'}
]
mocked_sources.return_value = sources
first_cmd_return = Mock()
first_cmd_return.return_code = 1
second_cmd_return = Mock()
second_cmd_return.return_code = 1
mocked_delegator.side_effect = [first_cmd_return, second_cmd_return]
c = pip_download('package')
assert c.return_code == 1
assert c == second_cmd_return
@patch('pipenv.project.Project.sources', new_callable=PropertyMock)
@patch('delegator.run')
def test_pip_download_should_return_the_first_cmd_that_worked(self, mocked_delegator, mocked_sources):
sources = [
{'url': 'http://existis.in.pypi/simple'},
{'url': 'http://existis.in.pypi/simple'}
]
mocked_sources.return_value = sources
first_cmd_return = Mock()
first_cmd_return.return_code = 0
second_cmd_return = Mock()
second_cmd_return.return_code = 0
mocked_delegator.side_effect = [first_cmd_return, second_cmd_return]
c = pip_download('package')
assert c.return_code == 0
assert c == first_cmd_return
def test_lock_requirements_file(self):
delegator.run('mkdir test_pipenv_requirements')
os.chdir('test_pipenv_requirements')
os.environ['PIPENV_VENV_IN_PROJECT'] = '1'
assert delegator.run('copy /y nul Pipfile').return_code == 0
assert delegator.run('pipenv install requests==2.14.0').return_code == 0
assert delegator.run('pipenv install flask==0.12.2').return_code == 0
assert delegator.run('pipenv install --dev pytest==3.1.1').return_code == 0
req_list = ("requests==2.14.0", "flask==0.12.2", "pytest==3.1.1")
# Validate requirements.txt.
c = delegator.run('pipenv lock -r')
assert c.return_code == 0
for req in req_list:
assert req in c.out
# Cleanup.
os.chdir('..')
shutil.rmtree('test_pipenv_requirements')
-14
View File
@@ -1,14 +0,0 @@
import delegator
from pipenv.utils import python_version
FULL_PYTHON_PATH = 'C:\\Python36-x64\\python.exe'
class TestUtilsWindows():
def test_python_version_from_full_path(self):
print(delegator.run('{0} --version'.format(FULL_PYTHON_PATH)).out)
assert python_version(FULL_PYTHON_PATH) == "3.6.1"
-142
View File
@@ -17,122 +17,6 @@ os.environ['PIPENV_IGNORE_VIRTUALENVS'] = 'True'
class TestPipenv():
def test_requirements_to_pipfile(self):
delegator.run('mkdir test_requirements_to_pip')
os.chdir('test_requirements_to_pip')
os.environ['PIPENV_VENV_IN_PROJECT'] = '1'
os.environ['PIPENV_MAX_DEPTH'] = '1'
with open('requirements.txt', 'w') as f:
f.write('requests[socks]==2.18.1\n'
'git+https://github.com/kennethreitz/records.git@v0.5.0#egg=records\n'
'-e git+https://github.com/kennethreitz/tablib.git@v0.11.5#egg=tablib\n'
'six==1.10.0\n')
assert delegator.run('pipenv --python python').return_code == 0
print(delegator.run('pipenv lock').err)
assert delegator.run('pipenv lock').return_code == 0
pipfile_output = delegator.run('cat Pipfile').out
lockfile_output = delegator.run('cat Pipfile.lock').out
# Ensure extras work.
assert 'socks' in pipfile_output
assert 'pysocks' in lockfile_output
# Ensure vcs dependencies work.
assert 'records' in pipfile_output
assert '"git": "https://github.com/kennethreitz/records.git"' in lockfile_output
# Ensure editable packages work.
assert 'ref = "v0.11.5"' in pipfile_output
assert '"editable": true' in lockfile_output
# Ensure BAD_PACKAGES aren't copied into Pipfile from requirements.txt.
assert 'six = "==1.10.0"' not in pipfile_output
os.chdir('..')
delegator.run('rm -fr test_requirements_to_pip')
del os.environ['PIPENV_MAX_DEPTH']
def test_timeout_long(self):
delegator.run('mkdir test_timeout_long')
os.chdir('test_timeout_long')
os.environ['PIPENV_VENV_IN_PROJECT'] = '1'
os.environ['PIPENV_TIMEOUT'] = '60'
assert delegator.run('touch Pipfile').return_code == 0
assert delegator.run('pipenv --python python').return_code == 0
os.chdir('..')
delegator.run('rm -fr test_timeout_long')
del os.environ['PIPENV_TIMEOUT']
def test_timeout_short(self):
delegator.run('mkdir test_timeout_short')
os.chdir('test_timeout_short')
os.environ['PIPENV_VENV_IN_PROJECT'] = '1'
os.environ['PIPENV_TIMEOUT'] = '1'
assert delegator.run('touch Pipfile').return_code == 0
assert delegator.run('pipenv --python python').return_code == 1
os.chdir('..')
delegator.run('rm -fr test_timeout_short')
del os.environ['PIPENV_TIMEOUT']
def test_pipenv_run(self):
working_dir = 'test_pipenv_run'
delegator.run('mkdir {0}'.format(working_dir))
os.chdir(working_dir)
# Build the environment.
os.environ['PIPENV_VENV_IN_PROJECT'] = '1'
delegator.run('touch Pipfile')
# Install packages for test.
# print(delegator.run('pipenv install pep8').err)
assert delegator.run('pipenv install pep8').return_code == 0
assert delegator.run('pipenv install pytest').return_code == 0
# Run test commands.
assert delegator.run('pipenv run python -c \'print("test")\'').return_code == 0
assert delegator.run('pipenv run pep8 --version').return_code == 0
assert delegator.run('pipenv run pytest --version').return_code == 0
os.chdir('..')
delegator.run('rm -fr {0}'.format(working_dir))
@pytest.mark.parametrize('shell, extension', [
('/bin/bash', ''),
('/bin/fish', '.fish'),
('/bin/csh', '.csh'),
('/bin/unknown', '')]
)
def test_activate_virtualenv(self, shell, extension):
orig_shell = os.environ['SHELL']
os.environ['SHELL'] = shell
# Get standard activation command for bash
command = activate_virtualenv()
# Return environment to initial shell config.
os.environ['SHELL'] = orig_shell
venv = Project().virtualenv_location
assert command == 'source {0}/bin/activate{1}'.format(venv, extension)
def test_activate_virtualenv_no_source(self):
command = activate_virtualenv(source=False)
venv = Project().virtualenv_location
assert command == '{0}/bin/activate'.format(venv)
@patch('pipenv.project.Project.sources', new_callable=PropertyMock)
@patch('delegator.run')
def test_pip_install_should_try_every_possible_source(self, mocked_delegator, mocked_sources):
@@ -232,29 +116,3 @@ class TestPipenv():
c = pip_download('package')
assert c.return_code == 0
assert c == first_cmd_return
def test_lock_requirements_file(self):
delegator.run('mkdir test_pipenv_requirements')
os.chdir('test_pipenv_requirements')
pip_str = ("[packages]\n"
"requests = \"==2.14.0\"\n"
"flask = \"==0.12.2\"\n\n"
"[dev-packages]\n"
"pytest = \"==3.1.1\"\n")
req_list = ("requests==2.14.0", "flask==0.12.2", "pytest==3.1.1")
# Build the environment.
os.environ['PIPENV_VENV_IN_PROJECT'] = '1'
assert delegator.run('echo \'{0}\' > Pipfile'.format(pip_str)).return_code == 0
# Validate requirements.txt.
c = delegator.run('pipenv lock -r')
assert c.return_code == 0
for req in req_list:
assert req in c.out
# Cleanup.
os.chdir('..')
delegator.run('rm -fr test_pipenv_requirements')
+93 -1
View File
@@ -5,8 +5,10 @@ import json
import pytest
from pipenv.cli import activate_virtualenv
from pipenv.vendor import toml
from pipenv.vendor import delegator
from pipenv.project import Project
os.environ['PIPENV_DONT_USE_PYENV'] = '1'
@@ -170,8 +172,9 @@ class TestPipenv:
assert 'urllib3' in p.lockfile['default']
assert 'certifi' in p.lockfile['default']
@pytest.mark.install
@pytest.mark.dev
@pytest.mark.run
@pytest.mark.install
def test_basic_dev_install(self):
with PipenvInstance() as p:
c = p.pipenv('install requests --dev')
@@ -186,6 +189,7 @@ class TestPipenv:
c = p.pipenv('run python -m requests.help')
assert c.return_code == 0
@pytest.mark.run
@pytest.mark.uninstall
def test_uninstall(self):
with PipenvInstance() as p:
@@ -251,6 +255,7 @@ class TestPipenv:
assert 'urllib3' in p.lockfile['default']
assert 'certifi' in p.lockfile['default']
@pytest.mark.run
@pytest.mark.install
def test_multiprocess_bug_and_install(self):
os.environ['PIPENV_MAX_SUBPROCESS'] = '2'
@@ -309,6 +314,7 @@ tpfd = "*"
c = p.pipenv('run python -c "import requests; import idna; import certifi; import records; import tpfd; import parse;"')
assert c.return_code == 0
@pytest.mark.run
@pytest.mark.markers
@pytest.mark.install
def test_package_environment_markers(self):
@@ -330,6 +336,7 @@ requests = {version = "*", markers="os_name=='splashwear'"}
c = p.pipenv('run python -c "import requests;"')
assert c.return_code == 1
@pytest.mark.run
@pytest.mark.alt
@pytest.mark.install
def test_specific_package_environment_markers(self):
@@ -351,6 +358,7 @@ requests = {version = "*", os_name = "== 'splashwear'"}
c = p.pipenv('run python -c "import requests;"')
assert c.return_code == 1
@pytest.mark.run
@pytest.mark.alt
@pytest.mark.install
def test_alternative_version_specifier(self):
@@ -378,12 +386,14 @@ requests = {version = "*"}
@pytest.mark.bad
@pytest.mark.install
def test_bad_packages(self):
with PipenvInstance() as p:
c = p.pipenv('install NotAPackage')
assert c.return_code > 0
@pytest.mark.dotvenv
def test_venv_in_project(self):
os.environ['PIPENV_VENV_IN_PROJECT'] = '1'
with PipenvInstance() as p:
c = p.pipenv('install requests')
@@ -393,8 +403,10 @@ requests = {version = "*"}
del os.environ['PIPENV_VENV_IN_PROJECT']
@pytest.mark.run
@pytest.mark.dotenv
def test_env(self):
with PipenvInstance(pipfile=False) as p:
with open('.env', 'w') as f:
f.write('HELLO=WORLD')
@@ -407,6 +419,7 @@ requests = {version = "*"}
@pytest.mark.install
@pytest.mark.skip(reason="this doesn't work on windows")
def test_e_dot(self):
with PipenvInstance() as p:
path = os.path.abspath(os.path.sep.join([os.path.dirname(__file__), '..']))
c = p.pipenv('install -e \'{0}\' --dev'.format(path))
@@ -422,6 +435,7 @@ requests = {version = "*"}
@pytest.mark.install
@pytest.mark.skip(reason="this doesn't work on travis")
def test_code_import_manual(self):
with PipenvInstance() as p:
with PipenvInstance(chdir=True) as p:
@@ -435,6 +449,7 @@ requests = {version = "*"}
@pytest.mark.check
@pytest.mark.unused
def test_check_unused(self):
with PipenvInstance() as p:
with PipenvInstance(chdir=True) as p:
@@ -450,6 +465,7 @@ requests = {version = "*"}
@pytest.mark.check
@pytest.mark.style
def test_flake8(self):
with PipenvInstance() as p:
with PipenvInstance(chdir=True) as p:
@@ -459,7 +475,83 @@ requests = {version = "*"}
c = p.pipenv('check --style .')
assert 'requests' in c.out
@pytest.mark.extras
@pytest.mark.install
@pytest.mark.requirements
def test_requirements_to_pipfile(self):
with PipenvInstance(pipfile=False, chdir=True) as p:
# Write a requirements file
with open('requirements.txt', 'w') as f:
f.write('requests[socks]==2.18.1\n')
c = p.pipenv('install')
assert c.return_code == 0
print(c.out)
print(c.err)
print(delegator.run('ls -l').out)
# assert stuff in pipfile
assert 'requests' in p.pipfile['packages']
assert 'extras' in p.pipfile['packages']['requests']
# assert stuff in lockfile
assert 'requests' in p.lockfile['default']
assert 'chardet' in p.lockfile['default']
assert 'idna' in p.lockfile['default']
assert 'urllib3' in p.lockfile['default']
assert 'pysocks' in p.lockfile['default']
@pytest.mark.code
@pytest.mark.virtualenv
@pytest.mark.parametrize('shell, extension', [
('/bin/bash', ''),
('/bin/fish', '.fish'),
('/bin/csh', '.csh'),
('/bin/unknown', '')]
)
@pytest.mark.skip(reason="this doesn't work on app veyor")
def test_activate_virtualenv(self, shell, extension):
orig_shell = os.environ['SHELL']
os.environ['SHELL'] = shell
# Get standard activation command for bash
command = activate_virtualenv()
# Return environment to initial shell config.
os.environ['SHELL'] = orig_shell
venv = Project().virtualenv_location
assert command == 'source {0}/bin/activate{1}'.format(venv, extension)
@pytest.mark.code
@pytest.mark.virtualenv
def test_activate_virtualenv_no_source(self):
command = activate_virtualenv(source=False)
venv = Project().virtualenv_location
assert command == '{0}/bin/activate'.format(venv)
@pytest.mark.lock
@pytest.mark.requirements
def test_lock_requirements_file(self):
with PipenvInstance() as p:
with open(p.pipfile_path, 'w') as f:
contents = """
[packages]
requests = "==2.14.0"
flask = "==0.12.2"
[dev-packages]
pytest = "==3.1.1"
""".strip()
f.write(contents)
req_list = ("requests==2.14.0", "flask==0.12.2", "pytest==3.1.1")
c = p.pipenv('lock -r')
assert c.return_code == 0
for req in req_list:
assert req in c.out