mirror of
https://github.com/kennethreitz/pipenv.git
synced 2026-06-05 22:50:18 +00:00
Don't throw a TypeError for requirements.txt in Python 3
Opening the file as `r` instead or `rb` ensures that we don't have any implicit encoding/decoding of strings (so Python 3 is happy). Includes a test that passes on both Python 2 and Python 3 which checks this works correctly.
This commit is contained in:
+1
-1
@@ -330,7 +330,7 @@ def cli(ctx, where=False, bare=False, three=False):
|
||||
@click.argument('package_name', default=False)
|
||||
@click.argument('more_packages', nargs=-1)
|
||||
@click.option('--dev','-d', is_flag=True, default=False, help="Install package(s) in [dev-packages].")
|
||||
@click.option('-r', type=click.File('rb'), default=None, help="Use requirements.txt file.")
|
||||
@click.option('-r', type=click.File('r'), default=None, help="Use requirements.txt file.")
|
||||
@click.option('--system', is_flag=True, default=False, help="System pip management.")
|
||||
def install(package_name=False, more_packages=False, r=False, dev=False, system=False):
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import pytest
|
||||
|
||||
from pipenv.cli import from_requirements_file
|
||||
import pipenv.utils
|
||||
|
||||
|
||||
@@ -58,3 +59,19 @@ def test_convert_from_pip():
|
||||
assert dep == {u'MyProject': {u'svn': u'svn://svn.myproject.org/svn/MyProject', 'editable': True}}
|
||||
|
||||
|
||||
def test_install_from_requirements_file():
|
||||
|
||||
# requests
|
||||
r = open('tests/requirements_requests.txt')
|
||||
dep = from_requirements_file(r)
|
||||
assert dep == ['requests']
|
||||
|
||||
# Django>1.10
|
||||
r = open('tests/requirements_django.txt')
|
||||
dep = from_requirements_file(r)
|
||||
assert dep == ['Django>1.10']
|
||||
|
||||
# requests[sock]
|
||||
r = open('tests/requirements_requests_socks.txt')
|
||||
dep = from_requirements_file(r)
|
||||
assert dep == ['requests[socks]']
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
Django>1.10
|
||||
@@ -0,0 +1 @@
|
||||
requests
|
||||
@@ -0,0 +1 @@
|
||||
requests[socks]
|
||||
Reference in New Issue
Block a user