mirror of
https://github.com/kennethreitz/pipenv.git
synced 2026-06-05 22:50:18 +00:00
Monkey-patch pipfile.api to use the mocked index
This commit is contained in:
@@ -9,6 +9,13 @@ import sys
|
||||
import os
|
||||
|
||||
|
||||
DEFAULT_SOURCE = {
|
||||
u'url': u'https://pypi.python.org/simple',
|
||||
u'verify_ssl': True,
|
||||
u'name': u'pypi',
|
||||
}
|
||||
|
||||
|
||||
def format_full_version(info):
|
||||
version = '{0.major}.{0.minor}.{0.micro}'.format(info)
|
||||
kind = info.releaselevel
|
||||
@@ -89,7 +96,7 @@ class PipfileParser(object):
|
||||
|
||||
# Load the default configuration.
|
||||
default_config = {
|
||||
u'source': [{u'url': u'https://pypi.python.org/simple', u'verify_ssl': True, 'name': "pypi"}],
|
||||
u'source': [DEFAULT_SOURCE],
|
||||
u'packages': {},
|
||||
u'requires': {},
|
||||
u'dev-packages': {}
|
||||
|
||||
+36
-44
@@ -12,6 +12,7 @@ import hashlib
|
||||
import contoml
|
||||
import delegator
|
||||
import pipfile
|
||||
import pipfile.api
|
||||
import toml
|
||||
|
||||
from pip9 import ConfigOptionParser
|
||||
@@ -51,6 +52,26 @@ if PIPENV_PIPFILE:
|
||||
_pipfile_cache = {}
|
||||
|
||||
|
||||
if PIPENV_TEST_INDEX:
|
||||
DEFAULT_SOURCE = {
|
||||
u'url': PIPENV_TEST_INDEX,
|
||||
u'verify_ssl': True,
|
||||
u'name': u'custom',
|
||||
}
|
||||
else:
|
||||
DEFAULT_SOURCE = {
|
||||
u'url': u'https://pypi.python.org/simple',
|
||||
u'verify_ssl': True,
|
||||
u'name': u'pypi',
|
||||
}
|
||||
|
||||
pipfile.api.DEFAULT_SOURCE = DEFAULT_SOURCE
|
||||
|
||||
|
||||
class SourceNotFound(KeyError):
|
||||
pass
|
||||
|
||||
|
||||
class Project(object):
|
||||
"""docstring for Project"""
|
||||
|
||||
@@ -490,35 +511,20 @@ class Project(object):
|
||||
config_parser = ConfigOptionParser(name=self.name)
|
||||
install = dict(config_parser.get_config_section('install'))
|
||||
indexes = install.get('extra-index-url', '').lstrip('\n').split('\n')
|
||||
if PIPENV_TEST_INDEX:
|
||||
sources = [
|
||||
{
|
||||
u'url': PIPENV_TEST_INDEX,
|
||||
u'verify_ssl': True,
|
||||
u'name': u'custom',
|
||||
}
|
||||
]
|
||||
else:
|
||||
# Default source.
|
||||
pypi_source = {
|
||||
u'url': u'https://pypi.python.org/simple',
|
||||
u'verify_ssl': True,
|
||||
u'name': 'pypi',
|
||||
}
|
||||
sources = [pypi_source]
|
||||
for i, index in enumerate(indexes):
|
||||
if not index:
|
||||
continue
|
||||
sources = [DEFAULT_SOURCE]
|
||||
for i, index in enumerate(indexes):
|
||||
if not index:
|
||||
continue
|
||||
|
||||
source_name = 'pip_index_{}'.format(i)
|
||||
verify_ssl = index.startswith('https')
|
||||
sources.append(
|
||||
{
|
||||
u'url': index,
|
||||
u'verify_ssl': verify_ssl,
|
||||
u'name': source_name,
|
||||
}
|
||||
)
|
||||
source_name = 'pip_index_{}'.format(i)
|
||||
verify_ssl = index.startswith('https')
|
||||
sources.append(
|
||||
{
|
||||
u'url': index,
|
||||
u'verify_ssl': verify_ssl,
|
||||
u'name': source_name,
|
||||
}
|
||||
)
|
||||
data = {
|
||||
u'source': sources,
|
||||
# Default packages.
|
||||
@@ -565,23 +571,8 @@ class Project(object):
|
||||
|
||||
if 'source' in self.parsed_pipfile:
|
||||
return self.parsed_pipfile['source']
|
||||
|
||||
elif PIPENV_TEST_INDEX:
|
||||
return [
|
||||
{
|
||||
u'url': PIPENV_TEST_INDEX,
|
||||
u'verify_ssl': True,
|
||||
u'name': u'custom',
|
||||
}
|
||||
]
|
||||
else:
|
||||
return [
|
||||
{
|
||||
u'url': u'https://pypi.python.org/simple',
|
||||
u'verify_ssl': True,
|
||||
u'name': u'pypi',
|
||||
}
|
||||
]
|
||||
return [DEFAULT_SOURCE]
|
||||
|
||||
def get_source(self, name=None, url=None):
|
||||
for source in self.sources:
|
||||
@@ -592,6 +583,7 @@ class Project(object):
|
||||
elif url:
|
||||
if source.get('url') in url:
|
||||
return source
|
||||
raise SourceNotFound(name or url)
|
||||
|
||||
def destroy_lockfile(self):
|
||||
"""Deletes the lockfile."""
|
||||
|
||||
Reference in New Issue
Block a user