Commit 6a927b5c by Sébastien Eustace

Raise an error when dependency name != package name

parent 12913a11
......@@ -225,6 +225,14 @@ class Provider:
finally:
shutil.rmtree(tmp_dir.as_posix())
if dependency.name != package.name:
# For now, the dependency's name must match the actual package's name
raise RuntimeError(
"The dependency name for {} does not match the actual package's name: {}".format(
dependency.name, package.name
)
)
return [package]
def search_for_file(self, dependency): # type: (FileDependency) -> List[Package]
......
import pytest
import shutil
try:
import urllib.parse as urlparse
except ImportError:
import urlparse
from poetry.utils._compat import Path
def mock_clone(self, source, dest):
# Checking source to determine which folder we need to copy
parts = urlparse.urlparse(source)
folder = (
Path(__file__).parent.parent
/ "fixtures"
/ "git"
/ parts.netloc
/ parts.path.lstrip("/").rstrip(".git")
)
shutil.rmtree(str(dest))
shutil.copytree(str(folder), str(dest))
@pytest.fixture(autouse=True)
def setup(mocker):
# Patch git module to not actually clone projects
mocker.patch("poetry.vcs.git.Git.clone", new=mock_clone)
mocker.patch("poetry.vcs.git.Git.checkout", new=lambda *_: None)
p = mocker.patch("poetry.vcs.git.Git.rev_parse")
p.return_value = "9cf87a285a2d3fbb0b9fa621997b3acc3631ed24"
yield
......@@ -886,3 +886,10 @@ def test_solver_duplicate_dependencies_sub_dependencies(solver, repo, package):
op = ops[3]
assert op.package.requirements == {"python": ">=3.4"}
def test_solver_fails_if_dependency_name_does_not_match_package(solver, repo, package):
package.add_dependency("my-demo", {"git": "https://github.com/demo/demo.git"})
with pytest.raises(RuntimeError):
solver.solve()
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