From 7a8d01edc3b7e095cebfb018fc5f35ecaed80922 Mon Sep 17 00:00:00 2001 From: Dan Ryan Date: Tue, 17 Apr 2018 01:16:49 -0400 Subject: [PATCH] Fix tests and index url fetching code per requests Signed-off-by: Dan Ryan --- pipenv/core.py | 2 +- pipenv/project.py | 19 +++++++----- tests/integration/test_install_uri.py | 12 ++++---- tests/integration/test_project.py | 43 ++++++++++----------------- 4 files changed, 34 insertions(+), 42 deletions(-) diff --git a/pipenv/core.py b/pipenv/core.py index 39013c0f..0a960668 100644 --- a/pipenv/core.py +++ b/pipenv/core.py @@ -1859,7 +1859,7 @@ def do_install( index, extra_indexes = None, None if more_packages and any(more_packages[0].startswith(s) for s in index_indicators): line, index = split_argument(' '.join(line), short='i', long_='index') - line, extra_indexes = split_argumetn(line, long_='extra-index-url') + line, extra_indexes = split_argument(line, long_='extra-index-url') package_names = line.split() package_name = package_names[0] if len(package_names) > 1: diff --git a/pipenv/project.py b/pipenv/project.py index 99bac0a3..4cdcdab3 100644 --- a/pipenv/project.py +++ b/pipenv/project.py @@ -650,17 +650,20 @@ class Project(object): def get_source(self, name=None, url=None): def find_source(sources, name=None, url=None): - if url: + source = None + if name: + source = [s for s in sources if s.get('name') == name] + elif url: source = [s for s in sources if s.get('url') in url] - else: - source = [s for s in sources if s.get('name') == name] - return first(source) + if source: + return first(source) found_source = find_source(self.sources, name=name, url=url) - if not found_source: - found_source = find_source(self.pipfile_sources, name=name, url=url) - if found_source: - return found_source + if found_source: + return found_source + found_source = find_source(self.pipfile_sources, name=name, url=url) + if found_source: + return found_source raise SourceNotFound(name or url) def destroy_lockfile(self): diff --git a/tests/integration/test_install_uri.py b/tests/integration/test_install_uri.py index 5133e507..b664718d 100644 --- a/tests/integration/test_install_uri.py +++ b/tests/integration/test_install_uri.py @@ -102,20 +102,20 @@ def test_install_named_index_alias(PipenvInstance, pypi): with open(p.pipfile_path, 'w') as f: contents = """ [[source]] -url = "{0}" -verify_ssl = false -name = "testindex" +url = "https://pypi.python.org/simple" +verify_ssl = true +name = "pypi" [[source]] url = "https://test.pypi.org/simple" -verify_ssl = "true" +verify_ssl = true name = "testpypi" [packages] -six = * +six = "*" [dev-packages] - """.format(os.environ['PIPENV_TEST_INDEX']).strip() + """.strip() f.write(contents) c = p.pipenv('install pipenv-test-private-package --index testpypi') assert c.return_code == 0 diff --git a/tests/integration/test_project.py b/tests/integration/test_project.py index df241d6e..f3efdd2d 100644 --- a/tests/integration/test_project.py +++ b/tests/integration/test_project.py @@ -2,6 +2,7 @@ import pytest import os from pipenv.project import Project +import unittest @pytest.mark.project @@ -28,7 +29,7 @@ pytz = "*" six = {{version = "*", index = "pypi"}} [dev-packages] - """.format(os.environ.get('PIPENV_TEST_INDEX')).strip() + """.format(os.environ['PIPENV_TEST_INDEX']).strip() f.write(contents) c = p.pipenv('lock') assert c.return_code == 0 @@ -39,21 +40,15 @@ six = {{version = "*", index = "pypi"}} ] for src in sources: name, url = src - source = [s for s in project.sources if s.get('name') == name] - assert source[0]['name'] == name - assert source[0]['url'] == url - source = project.get_source(name=name) - assert source['name'] == name - assert source['url'] == url - source = project.get_source(url=url) - assert source['name'] == name - assert source['url'] == url - source = project.find_source(name) - assert source['name'] == name - assert source['url'] == url - source = project.find_source(url) + source = [s for s in project.pipfile_sources if s.get('name') == name] + assert source + source = source[0] assert source['name'] == name assert source['url'] == url + assert unittest.assertDictEqual(source, project.get_source(name=name)) + assert unittest.assertDictEqual(source, project.get_source(url=url)) + assert unittest.assertDictEqual(source, project.find_source(name)) + assert unittest.assertDictEqual(source, project.find_source(url)) @pytest.mark.project @@ -80,7 +75,7 @@ pytz = "*" six = {{version = "*", index = "pypi"}} [dev-packages] - """.format(os.environ.get('PIPENV_TEST_INDEX')).strip() + """.format(os.environ['PIPENV_TEST_INDEX']).strip() f.write(contents) project = Project() sources = [ @@ -90,17 +85,11 @@ six = {{version = "*", index = "pypi"}} for src in sources: name, url = src source = [s for s in project.pipfile_sources if s.get('name') == name] - assert source[0]['name'] == name - assert source[0]['url'] == url - source = project.get_source(name=name) - assert source['name'] == name - assert source['url'] == url - source = project.get_source(url=url) - assert source['name'] == name - assert source['url'] == url - source = project.find_source(name) - assert source['name'] == name - assert source['url'] == url - source = project.find_source(url) + assert source + source = source[0] assert source['name'] == name assert source['url'] == url + assert unittest.assertDictEqual(source, project.get_source(name=name)) + assert unittest.assertDictEqual(source, project.get_source(url=url)) + assert unittest.assertDictEqual(source, project.find_source(name)) + assert unittest.assertDictEqual(source, project.find_source(url))