diff options
author | Benjamin Schubert <contact@benschubert.me> | 2020-05-12 15:44:44 +0000 |
---|---|---|
committer | Benjamin Schubert <contact@benschubert.me> | 2020-05-12 19:46:15 +0000 |
commit | 2c9180bd4f2e1efa53c8212fff9cd340c81acad2 (patch) | |
tree | 991adf7a7a6ba558ac4895a4196c4518b9326619 /tests/integration/pip_source.py | |
parent | 011f591b79e3a4def535ac829c3d885707381133 (diff) | |
download | buildstream-bschubert/remove-pip-source.tar.gz |
pip.py: Remove the 'pip' source plugin, it's in bst-plugins-experimentalbschubert/remove-pip-source
Diffstat (limited to 'tests/integration/pip_source.py')
-rw-r--r-- | tests/integration/pip_source.py | 177 |
1 files changed, 0 insertions, 177 deletions
diff --git a/tests/integration/pip_source.py b/tests/integration/pip_source.py deleted file mode 100644 index 5d314974d..000000000 --- a/tests/integration/pip_source.py +++ /dev/null @@ -1,177 +0,0 @@ -# Pylint doesn't play well with fixtures and dependency injection from pytest -# pylint: disable=redefined-outer-name - -import os -import pytest - -from buildstream import _yaml - -from buildstream.testing import cli_integration as cli # pylint: disable=unused-import -from buildstream.testing.integration import assert_contains -from buildstream.testing._utils.site import HAVE_SANDBOX - -from tests.testutils.python_repo import setup_pypi_repo # pylint: disable=unused-import - - -pytestmark = pytest.mark.integration - - -DATA_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "project") - - -@pytest.mark.datafiles(DATA_DIR) -def test_pip_source_import_packages(cli, datafiles, setup_pypi_repo): - project = str(datafiles) - checkout = os.path.join(cli.directory, "checkout") - element_path = os.path.join(project, "elements") - element_name = "pip/hello.bst" - - # check that exotically named packages are imported correctly - myreqs_packages = "hellolib" - dependencies = ["app2", "app.3", "app-4", "app_5", "app.no.6", "app-no-7", "app_no_8"] - mock_packages = {myreqs_packages: {package: {} for package in dependencies}} - - # create mock pypi repository - pypi_repo = os.path.join(project, "files", "pypi-repo") - os.makedirs(pypi_repo, exist_ok=True) - setup_pypi_repo(mock_packages, pypi_repo) - - element = { - "kind": "import", - "sources": [ - {"kind": "local", "path": "files/pip-source"}, - {"kind": "pip", "url": "file://{}".format(os.path.realpath(pypi_repo)), "packages": [myreqs_packages]}, - ], - } - os.makedirs(os.path.dirname(os.path.join(element_path, element_name)), exist_ok=True) - _yaml.roundtrip_dump(element, os.path.join(element_path, element_name)) - - result = cli.run(project=project, args=["source", "track", element_name]) - assert result.exit_code == 0 - - result = cli.run(project=project, args=["build", element_name]) - assert result.exit_code == 0 - - result = cli.run(project=project, args=["artifact", "checkout", element_name, "--directory", checkout]) - assert result.exit_code == 0 - - assert_contains( - checkout, - [ - "/.bst_pip_downloads", - "/.bst_pip_downloads/hellolib-0.1.tar.gz", - "/.bst_pip_downloads/app2-0.1.tar.gz", - "/.bst_pip_downloads/app.3-0.1.tar.gz", - "/.bst_pip_downloads/app-4-0.1.tar.gz", - "/.bst_pip_downloads/app_5-0.1.tar.gz", - "/.bst_pip_downloads/app.no.6-0.1.tar.gz", - "/.bst_pip_downloads/app-no-7-0.1.tar.gz", - "/.bst_pip_downloads/app_no_8-0.1.tar.gz", - ], - ) - - -@pytest.mark.datafiles(DATA_DIR) -def test_pip_source_import_requirements_files(cli, datafiles, setup_pypi_repo): - project = str(datafiles) - checkout = os.path.join(cli.directory, "checkout") - element_path = os.path.join(project, "elements") - element_name = "pip/hello.bst" - - # check that exotically named packages are imported correctly - myreqs_packages = "hellolib" - dependencies = ["app2", "app.3", "app-4", "app_5", "app.no.6", "app-no-7", "app_no_8"] - mock_packages = {myreqs_packages: {package: {} for package in dependencies}} - - # create mock pypi repository - pypi_repo = os.path.join(project, "files", "pypi-repo") - os.makedirs(pypi_repo, exist_ok=True) - setup_pypi_repo(mock_packages, pypi_repo) - - element = { - "kind": "import", - "sources": [ - {"kind": "local", "path": "files/pip-source"}, - { - "kind": "pip", - "url": "file://{}".format(os.path.realpath(pypi_repo)), - "requirements-files": ["myreqs.txt"], - }, - ], - } - os.makedirs(os.path.dirname(os.path.join(element_path, element_name)), exist_ok=True) - _yaml.roundtrip_dump(element, os.path.join(element_path, element_name)) - - result = cli.run(project=project, args=["source", "track", element_name]) - assert result.exit_code == 0 - - result = cli.run(project=project, args=["build", element_name]) - assert result.exit_code == 0 - - result = cli.run(project=project, args=["artifact", "checkout", element_name, "--directory", checkout]) - assert result.exit_code == 0 - - assert_contains( - checkout, - [ - "/.bst_pip_downloads", - "/.bst_pip_downloads/hellolib-0.1.tar.gz", - "/.bst_pip_downloads/app2-0.1.tar.gz", - "/.bst_pip_downloads/app.3-0.1.tar.gz", - "/.bst_pip_downloads/app-4-0.1.tar.gz", - "/.bst_pip_downloads/app_5-0.1.tar.gz", - "/.bst_pip_downloads/app.no.6-0.1.tar.gz", - "/.bst_pip_downloads/app-no-7-0.1.tar.gz", - "/.bst_pip_downloads/app_no_8-0.1.tar.gz", - ], - ) - - -@pytest.mark.datafiles(DATA_DIR) -@pytest.mark.skipif(not HAVE_SANDBOX, reason="Only available with a functioning sandbox") -def test_pip_source_build(cli, datafiles, setup_pypi_repo): - project = str(datafiles) - element_path = os.path.join(project, "elements") - element_name = "pip/hello.bst" - - # check that exotically named packages are imported correctly - myreqs_packages = "hellolib" - dependencies = ["app2", "app.3", "app-4", "app_5", "app.no.6", "app-no-7", "app_no_8"] - mock_packages = {myreqs_packages: {package: {} for package in dependencies}} - - # create mock pypi repository - pypi_repo = os.path.join(project, "files", "pypi-repo") - os.makedirs(pypi_repo, exist_ok=True) - setup_pypi_repo(mock_packages, pypi_repo) - - element = { - "kind": "manual", - "depends": ["base.bst"], - "sources": [ - {"kind": "local", "path": "files/pip-source"}, - { - "kind": "pip", - "url": "file://{}".format(os.path.realpath(pypi_repo)), - "requirements-files": ["myreqs.txt"], - "packages": dependencies, - }, - ], - "config": { - "install-commands": [ - "pip3 install --no-index --prefix %{install-root}/usr .bst_pip_downloads/*.tar.gz", - "install app1.py %{install-root}/usr/bin/", - ] - }, - } - os.makedirs(os.path.dirname(os.path.join(element_path, element_name)), exist_ok=True) - _yaml.roundtrip_dump(element, os.path.join(element_path, element_name)) - - result = cli.run(project=project, args=["source", "track", element_name]) - assert result.exit_code == 0 - - result = cli.run(project=project, args=["build", element_name]) - assert result.exit_code == 0 - - result = cli.run(project=project, args=["shell", element_name, "/usr/bin/app1.py"]) - assert result.exit_code == 0 - assert result.output == "Hello App1! This is hellolib\n" |