From c932706bbe9b1bd4e0e4a1698e5b9689163f130e Mon Sep 17 00:00:00 2001 From: "Brandon L. Reiss" Date: Wed, 5 Apr 2017 18:32:36 -0400 Subject: Split relative paths tests to avoid timeout Tests are timing out and also not following requirements/install test factorization. Split to conform to test organization and to prevent test timeout. --- tests/functional/test_install_reqs.py | 51 ++++++++++++++++++++++++----------- 1 file changed, 35 insertions(+), 16 deletions(-) (limited to 'tests/functional/test_install_reqs.py') diff --git a/tests/functional/test_install_reqs.py b/tests/functional/test_install_reqs.py index f3b4cfbee..eba98139f 100644 --- a/tests/functional/test_install_reqs.py +++ b/tests/functional/test_install_reqs.py @@ -3,7 +3,7 @@ import textwrap import pytest -from tests.lib import (pyversion, path_to_url, requirements_file, +from tests.lib import (pyversion, requirements_file, _create_test_package_with_subdirectory) from tests.lib.local_repos import local_checkout @@ -53,25 +53,44 @@ def test_schema_check_in_requirements_file(script): def test_relative_requirements_file(script, data): """ - Test installing from a requirements file with a relative path with an - egg= definition.. + Test installing from a requirements file with a relative path. For path + URLs, use an egg= definition. """ - url = path_to_url( - os.path.join(data.root, "packages", "..", "packages", "FSPkg") - ) + '#egg=FSPkg' - script.scratch_path.join("file-egg-req.txt").write(textwrap.dedent("""\ - %s - """ % url)) - result = script.pip( - 'install', '-vvv', '-r', script.scratch_path / 'file-egg-req.txt' - ) - assert ( + egg_info_file = ( script.site_packages / 'FSPkg-0.1.dev0-py%s.egg-info' % pyversion - ) in result.files_created, str(result) - assert (script.site_packages / 'fspkg') in result.files_created, ( - str(result.stdout) ) + egg_link_file = ( + script.site_packages / 'FSPkg.egg-link' + ) + package_folder = script.site_packages / 'fspkg' + + # Compute relative install path to FSPkg from scratch path. + full_rel_path = data.packages.join('FSPkg') - script.scratch_path + embedded_rel_path = script.scratch_path.join(full_rel_path) + + # For each relative path, install as either editable or not using either + # URLs with egg links or not. + for req_path in (full_rel_path, + 'file:' + full_rel_path + '?egg=FSPkg', + embedded_rel_path, + 'file:' + embedded_rel_path + '?egg=FSPkg'): + # Regular install. + with requirements_file(req_path + '\n', + script.scratch_path) as reqs_file: + result = script.pip('install', '-vvv', '-r', reqs_file.name, + cwd=script.scratch_path) + assert egg_info_file in result.files_created, str(result) + assert package_folder in result.files_created, str(result) + script.pip('uninstall', '-y', 'fspkg') + + # Editable install. + with requirements_file('-e ' + req_path + '\n', + script.scratch_path) as reqs_file: + result = script.pip('install', '-vvv', '-r', reqs_file.name, + cwd=script.scratch_path) + assert egg_link_file in result.files_created, str(result) + script.pip('uninstall', '-y', 'fspkg') @pytest.mark.network -- cgit v1.2.1