Commit 06cdc773 by finswimmer Committed by Sébastien Eustace

fix (#1654): exporting to requirements.txt always prepends -e to dependencies (#1656)

* fix (locker): add `develop = false` in `poetry.lock` if set in `pyproject.toml`
fix (locker): read `develop` value from `poetry.lock` so it is respect when exporting to `requirements.txt`

* fix (test_installer): adopt expected result

* change (test_installer): move develop key from source to package in lock file

* fix (test_installer): make black happy
parent e943a4e1
...@@ -138,6 +138,9 @@ class Locker(object): ...@@ -138,6 +138,9 @@ class Locker(object):
package.add_dependency(dep_name, constraint) package.add_dependency(dep_name, constraint)
if "develop" in info:
package.develop = info["develop"]
if "source" in info: if "source" in info:
package.source_type = info["source"].get("type", "") package.source_type = info["source"].get("type", "")
package.source_url = info["source"]["url"] package.source_url = info["source"]["url"]
...@@ -301,5 +304,7 @@ class Locker(object): ...@@ -301,5 +304,7 @@ class Locker(object):
} }
if package.source_type: if package.source_type:
data["source"]["type"] = package.source_type data["source"]["type"] = package.source_type
if package.source_type == "directory":
data["develop"] = package.develop
return data return data
...@@ -275,6 +275,7 @@ class Provider: ...@@ -275,6 +275,7 @@ class Provider:
) )
package.source_url = dependency.path.as_posix() package.source_url = dependency.path.as_posix()
package.develop = dependency.develop
if dependency.base is not None: if dependency.base is not None:
package.root_dir = dependency.base.as_posix() package.root_dir = dependency.base.as_posix()
......
[[package]] [[package]]
category = "main" category = "main"
description = "" description = ""
develop = true
name = "project-with-extras" name = "project-with-extras"
optional = false optional = false
python-versions = "*" python-versions = "*"
...@@ -18,6 +19,7 @@ url = "tests/fixtures/directory/project_with_transitive_directory_dependencies/. ...@@ -18,6 +19,7 @@ url = "tests/fixtures/directory/project_with_transitive_directory_dependencies/.
[[package]] [[package]]
category = "main" category = "main"
description = "" description = ""
develop = true
name = "project-with-transitive-directory-dependencies" name = "project-with-transitive-directory-dependencies"
optional = false optional = false
python-versions = "*" python-versions = "*"
......
...@@ -9,6 +9,7 @@ version = "1.4.4" ...@@ -9,6 +9,7 @@ version = "1.4.4"
[[package]] [[package]]
category = "main" category = "main"
description = "" description = ""
develop = true
name = "project-with-extras" name = "project-with-extras"
optional = false optional = false
python-versions = "*" python-versions = "*"
......
...@@ -9,6 +9,7 @@ python-versions = "*" ...@@ -9,6 +9,7 @@ python-versions = "*"
[[package]] [[package]]
name = "my-package" name = "my-package"
version = "0.1.2" version = "0.1.2"
develop = true
description = "Demo project." description = "Demo project."
category = "main" category = "main"
optional = false optional = false
......
...@@ -29,6 +29,7 @@ version = "1.4.4" ...@@ -29,6 +29,7 @@ version = "1.4.4"
[[package]] [[package]]
category = "main" category = "main"
description = "" description = ""
develop = true
name = "project-with-transitive-file-dependencies" name = "project-with-transitive-file-dependencies"
optional = false optional = false
python-versions = "*" python-versions = "*"
......
...@@ -25,6 +25,9 @@ from tests.repositories.test_legacy_repository import ( ...@@ -25,6 +25,9 @@ from tests.repositories.test_legacy_repository import (
from tests.repositories.test_pypi_repository import MockRepository from tests.repositories.test_pypi_repository import MockRepository
fixtures_dir = Path("tests/fixtures")
class Installer(BaseInstaller): class Installer(BaseInstaller):
def _get_installer(self): def _get_installer(self):
return NoopInstaller() return NoopInstaller()
...@@ -662,7 +665,7 @@ def test_installer_with_pypi_repository(package, locker, installed): ...@@ -662,7 +665,7 @@ def test_installer_with_pypi_repository(package, locker, installed):
def test_run_installs_with_local_file(installer, locker, repo, package): def test_run_installs_with_local_file(installer, locker, repo, package):
file_path = Path("tests/fixtures/distributions/demo-0.1.0-py2.py3-none-any.whl") file_path = fixtures_dir / "distributions/demo-0.1.0-py2.py3-none-any.whl"
package.add_dependency("demo", {"file": str(file_path)}) package.add_dependency("demo", {"file": str(file_path)})
repo.add_package(get_package("pendulum", "1.4.4")) repo.add_package(get_package("pendulum", "1.4.4"))
...@@ -677,8 +680,8 @@ def test_run_installs_with_local_file(installer, locker, repo, package): ...@@ -677,8 +680,8 @@ def test_run_installs_with_local_file(installer, locker, repo, package):
def test_run_installs_wheel_with_no_requires_dist(installer, locker, repo, package): def test_run_installs_wheel_with_no_requires_dist(installer, locker, repo, package):
file_path = Path( file_path = (
"tests/fixtures/wheel_with_no_requires_dist/demo-0.1.0-py2.py3-none-any.whl" fixtures_dir / "wheel_with_no_requires_dist/demo-0.1.0-py2.py3-none-any.whl"
) )
package.add_dependency("demo", {"file": str(file_path)}) package.add_dependency("demo", {"file": str(file_path)})
...@@ -694,7 +697,7 @@ def test_run_installs_wheel_with_no_requires_dist(installer, locker, repo, packa ...@@ -694,7 +697,7 @@ def test_run_installs_wheel_with_no_requires_dist(installer, locker, repo, packa
def test_run_installs_with_local_poetry_directory_and_extras( def test_run_installs_with_local_poetry_directory_and_extras(
installer, locker, repo, package, tmpdir installer, locker, repo, package, tmpdir
): ):
file_path = Path("tests/fixtures/project_with_extras") file_path = fixtures_dir / "project_with_extras"
package.add_dependency( package.add_dependency(
"project-with-extras", {"path": str(file_path), "extras": ["extras_a"]} "project-with-extras", {"path": str(file_path), "extras": ["extras_a"]}
) )
...@@ -713,8 +716,8 @@ def test_run_installs_with_local_poetry_directory_and_extras( ...@@ -713,8 +716,8 @@ def test_run_installs_with_local_poetry_directory_and_extras(
def test_run_installs_with_local_poetry_directory_transitive( def test_run_installs_with_local_poetry_directory_transitive(
installer, locker, repo, package, tmpdir installer, locker, repo, package, tmpdir
): ):
file_path = Path( file_path = (
"tests/fixtures/directory/project_with_transitive_directory_dependencies/" fixtures_dir / "directory/project_with_transitive_directory_dependencies/"
) )
package.add_dependency( package.add_dependency(
"project-with-transitive-directory-dependencies", {"path": str(file_path)} "project-with-transitive-directory-dependencies", {"path": str(file_path)}
...@@ -735,9 +738,7 @@ def test_run_installs_with_local_poetry_directory_transitive( ...@@ -735,9 +738,7 @@ def test_run_installs_with_local_poetry_directory_transitive(
def test_run_installs_with_local_poetry_file_transitive( def test_run_installs_with_local_poetry_file_transitive(
installer, locker, repo, package, tmpdir installer, locker, repo, package, tmpdir
): ):
file_path = Path( file_path = fixtures_dir / "directory/project_with_transitive_file_dependencies/"
"tests/fixtures/directory/project_with_transitive_file_dependencies/"
)
package.add_dependency( package.add_dependency(
"project-with-transitive-file-dependencies", {"path": str(file_path)} "project-with-transitive-file-dependencies", {"path": str(file_path)}
) )
...@@ -757,7 +758,7 @@ def test_run_installs_with_local_poetry_file_transitive( ...@@ -757,7 +758,7 @@ def test_run_installs_with_local_poetry_file_transitive(
def test_run_installs_with_local_setuptools_directory( def test_run_installs_with_local_setuptools_directory(
installer, locker, repo, package, tmpdir installer, locker, repo, package, tmpdir
): ):
file_path = Path("tests/fixtures/project_with_setup/") file_path = fixtures_dir / "project_with_setup/"
package.add_dependency("my-package", {"path": str(file_path)}) package.add_dependency("my-package", {"path": str(file_path)})
repo.add_package(get_package("pendulum", "1.4.4")) repo.add_package(get_package("pendulum", "1.4.4"))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment