Monkey-patch pipfile.api to use the mocked index

This commit is contained in:
Tzu-ping Chung
2018-03-27 23:15:51 +08:00
committed by Dan Ryan
parent 1c9792434d
commit 6cd545b8c6
2 changed files with 44 additions and 45 deletions
+8 -1
View File
@@ -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
View File
@@ -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."""