Commit c2c69a3c by David Hotham Committed by GitHub

every Repository is named (#5910)

* every Repository is named

* assert repository not added to pool twice
parent f97b3722
...@@ -85,7 +85,7 @@ class DebugResolveCommand(InitCommand): ...@@ -85,7 +85,7 @@ class DebugResolveCommand(InitCommand):
pool = self.poetry.pool pool = self.poetry.pool
solver = Solver(package, pool, Repository(), Repository(), self.io) solver = Solver(package, pool, [], [], self.io)
ops = solver.solve().calculate_operations() ops = solver.solve().calculate_operations()
...@@ -98,13 +98,12 @@ class DebugResolveCommand(InitCommand): ...@@ -98,13 +98,12 @@ class DebugResolveCommand(InitCommand):
show_command.init_styles(self.io) show_command.init_styles(self.io)
packages = [op.package for op in ops] packages = [op.package for op in ops]
repo = Repository(packages=packages)
requires = package.all_requires requires = package.all_requires
for pkg in repo.packages: for pkg in packages:
for require in requires: for require in requires:
if pkg.name == require.name: if pkg.name == require.name:
show_command.display_package_tree(self.io, pkg, repo) show_command.display_package_tree(self.io, pkg, packages)
break break
return 0 return 0
...@@ -116,13 +115,13 @@ class DebugResolveCommand(InitCommand): ...@@ -116,13 +115,13 @@ class DebugResolveCommand(InitCommand):
if self.option("install"): if self.option("install"):
env = EnvManager(self.poetry).get() env = EnvManager(self.poetry).get()
pool = Pool() pool = Pool()
locked_repository = Repository() locked_repository = Repository("poetry-locked")
for op in ops: for op in ops:
locked_repository.add_package(op.package) locked_repository.add_package(op.package)
pool.add_repository(locked_repository) pool.add_repository(locked_repository)
solver = Solver(package, pool, Repository(), Repository(), NullIO()) solver = Solver(package, pool, [], [], NullIO())
with solver.use_environment(env): with solver.use_environment(env):
ops = solver.solve().calculate_operations() ops = solver.solve().calculate_operations()
......
...@@ -15,7 +15,6 @@ if TYPE_CHECKING: ...@@ -15,7 +15,6 @@ if TYPE_CHECKING:
from poetry.core.packages.package import Package from poetry.core.packages.package import Package
from poetry.core.packages.project_package import ProjectPackage from poetry.core.packages.project_package import ProjectPackage
from poetry.repositories.installed_repository import InstalledRepository
from poetry.repositories.repository import Repository from poetry.repositories.repository import Repository
...@@ -74,7 +73,6 @@ lists all packages available.""" ...@@ -74,7 +73,6 @@ lists all packages available."""
from poetry.puzzle.solver import Solver from poetry.puzzle.solver import Solver
from poetry.repositories.installed_repository import InstalledRepository from poetry.repositories.installed_repository import InstalledRepository
from poetry.repositories.pool import Pool from poetry.repositories.pool import Pool
from poetry.repositories.repository import Repository
from poetry.utils.helpers import get_package_version_display_string from poetry.utils.helpers import get_package_version_display_string
package = self.argument("package") package = self.argument("package")
...@@ -119,7 +117,7 @@ lists all packages available.""" ...@@ -119,7 +117,7 @@ lists all packages available."""
for p in packages: for p in packages:
for require in requires: for require in requires:
if p.name == require.name: if p.name == require.name:
self.display_package_tree(self.io, p, locked_repo) self.display_package_tree(self.io, p, packages)
break break
return 0 return 0
...@@ -131,8 +129,8 @@ lists all packages available.""" ...@@ -131,8 +129,8 @@ lists all packages available."""
solver = Solver( solver = Solver(
root, root,
pool=pool, pool=pool,
installed=Repository(), installed=[],
locked=locked_repo, locked=locked_packages,
io=NullIO(), io=NullIO(),
) )
solver.provider.load_deferred(False) solver.provider.load_deferred(False)
...@@ -174,11 +172,11 @@ lists all packages available.""" ...@@ -174,11 +172,11 @@ lists all packages available."""
for p in packages: for p in packages:
self.display_package_tree( self.display_package_tree(
self.io, p, locked_repo, why_package=pkg self.io, p, locked_packages, why_package=pkg
) )
else: else:
self.display_package_tree(self.io, pkg, locked_repo) self.display_package_tree(self.io, pkg, locked_packages)
return 0 return 0
...@@ -224,7 +222,9 @@ lists all packages available.""" ...@@ -224,7 +222,9 @@ lists all packages available."""
current_length = len(locked.pretty_name) current_length = len(locked.pretty_name)
if not self.io.output.is_decorated(): if not self.io.output.is_decorated():
installed_status = self.get_installed_status(locked, installed_repo) installed_status = self.get_installed_status(
locked, installed_repo.packages
)
if installed_status == "not-installed": if installed_status == "not-installed":
current_length += 4 current_length += 4
...@@ -300,7 +300,9 @@ lists all packages available.""" ...@@ -300,7 +300,9 @@ lists all packages available."""
color = "black;options=bold" color = "black;options=bold"
else: else:
installed_status = self.get_installed_status(locked, installed_repo) installed_status = self.get_installed_status(
locked, installed_repo.packages
)
if installed_status == "not-installed": if installed_status == "not-installed":
color = "red" color = "red"
...@@ -371,7 +373,7 @@ lists all packages available.""" ...@@ -371,7 +373,7 @@ lists all packages available."""
self, self,
io: IO, io: IO,
package: Package, package: Package,
installed_repo: Repository, installed_packages: list[Package],
why_package: Package | None = None, why_package: Package | None = None,
) -> None: ) -> None:
io.write(f"<c1>{package.pretty_name}</c1>") io.write(f"<c1>{package.pretty_name}</c1>")
...@@ -408,14 +410,19 @@ lists all packages available.""" ...@@ -408,14 +410,19 @@ lists all packages available."""
packages_in_tree = [package.name, dependency.name] packages_in_tree = [package.name, dependency.name]
self._display_tree( self._display_tree(
io, dependency, installed_repo, packages_in_tree, tree_bar, level + 1 io,
dependency,
installed_packages,
packages_in_tree,
tree_bar,
level + 1,
) )
def _display_tree( def _display_tree(
self, self,
io: IO, io: IO,
dependency: Dependency, dependency: Dependency,
installed_repo: Repository, installed_packages: list[Package],
packages_in_tree: list[str], packages_in_tree: list[str],
previous_tree_bar: str = "├", previous_tree_bar: str = "├",
level: int = 1, level: int = 1,
...@@ -423,7 +430,7 @@ lists all packages available.""" ...@@ -423,7 +430,7 @@ lists all packages available."""
previous_tree_bar = previous_tree_bar.replace("├", "│") previous_tree_bar = previous_tree_bar.replace("├", "│")
dependencies = [] dependencies = []
for package in installed_repo.packages: for package in installed_packages:
if package.name == dependency.name: if package.name == dependency.name:
dependencies = package.requires dependencies = package.requires
...@@ -459,7 +466,12 @@ lists all packages available.""" ...@@ -459,7 +466,12 @@ lists all packages available."""
current_tree.append(dependency.name) current_tree.append(dependency.name)
self._display_tree( self._display_tree(
io, dependency, installed_repo, current_tree, tree_bar, level + 1 io,
dependency,
installed_packages,
current_tree,
tree_bar,
level + 1,
) )
def _write_tree_line(self, io: IO, line: str) -> None: def _write_tree_line(self, io: IO, line: str) -> None:
...@@ -517,9 +529,9 @@ lists all packages available.""" ...@@ -517,9 +529,9 @@ lists all packages available."""
return "update-possible" return "update-possible"
def get_installed_status( def get_installed_status(
self, locked: Package, installed_repo: InstalledRepository self, locked: Package, installed_packages: list[Package]
) -> str: ) -> str:
for package in installed_repo.packages: for package in installed_packages:
if locked.name == package.name: if locked.name == package.name:
return "installed" return "installed"
......
...@@ -193,8 +193,8 @@ class Installer: ...@@ -193,8 +193,8 @@ class Installer:
solver = Solver( solver = Solver(
self._package, self._package,
self._pool, self._pool,
locked_repository, locked_repository.packages,
locked_repository, locked_repository.packages,
self._io, self._io,
) )
...@@ -213,7 +213,7 @@ class Installer: ...@@ -213,7 +213,7 @@ class Installer:
def _do_install(self) -> int: def _do_install(self) -> int:
from poetry.puzzle.solver import Solver from poetry.puzzle.solver import Solver
locked_repository = Repository() locked_repository = Repository("poetry-locked")
if self._update: if self._update:
if self._locker.is_locked() and not self._lock: if self._locker.is_locked() and not self._lock:
locked_repository = self._locker.locked_repository() locked_repository = self._locker.locked_repository()
...@@ -233,8 +233,8 @@ class Installer: ...@@ -233,8 +233,8 @@ class Installer:
solver = Solver( solver = Solver(
self._package, self._package,
self._pool, self._pool,
self._installed_repository, self._installed_repository.packages,
locked_repository, locked_repository.packages,
self._io, self._io,
) )
...@@ -291,7 +291,7 @@ class Installer: ...@@ -291,7 +291,7 @@ class Installer:
# Making a new repo containing the packages # Making a new repo containing the packages
# newly resolved and the ones from the current lock file # newly resolved and the ones from the current lock file
repo = Repository() repo = Repository("poetry-repo")
for package in lockfile_repo.packages + locked_repository.packages: for package in lockfile_repo.packages + locked_repository.packages:
if not package.is_direct_origin() and not repo.has_package(package): if not package.is_direct_origin() and not repo.has_package(package):
repo.add_package(package) repo.add_package(package)
...@@ -299,7 +299,11 @@ class Installer: ...@@ -299,7 +299,11 @@ class Installer:
pool.add_repository(repo) pool.add_repository(repo)
solver = Solver( solver = Solver(
root, pool, self._installed_repository, locked_repository, NullIO() root,
pool,
self._installed_repository.packages,
locked_repository.packages,
NullIO(),
) )
# Everything is resolved at this point, so we no longer need # Everything is resolved at this point, so we no longer need
# to load deferred dependencies (i.e. VCS, URL and path dependencies) # to load deferred dependencies (i.e. VCS, URL and path dependencies)
......
...@@ -102,10 +102,10 @@ class Locker: ...@@ -102,10 +102,10 @@ class Locker:
from poetry.repositories import Repository from poetry.repositories import Repository
if not self.is_locked(): if not self.is_locked():
return Repository() return Repository("poetry-locked")
lock_data = self.lock_data lock_data = self.lock_data
packages = Repository() packages = Repository("poetry-locked")
locked_packages = cast("list[dict[str, Any]]", lock_data["package"]) locked_packages = cast("list[dict[str, Any]]", lock_data["package"])
if not locked_packages: if not locked_packages:
......
...@@ -53,7 +53,6 @@ if TYPE_CHECKING: ...@@ -53,7 +53,6 @@ if TYPE_CHECKING:
from poetry.core.version.markers import BaseMarker from poetry.core.version.markers import BaseMarker
from poetry.repositories import Pool from poetry.repositories import Pool
from poetry.repositories import Repository
from poetry.utils.env import Env from poetry.utils.env import Env
...@@ -127,7 +126,7 @@ class Provider: ...@@ -127,7 +126,7 @@ class Provider:
pool: Pool, pool: Pool,
io: IO, io: IO,
env: Env | None = None, env: Env | None = None,
installed: Repository | None = None, installed: list[Package] | None = None,
) -> None: ) -> None:
self._package = package self._package = package
self._pool = pool self._pool = pool
...@@ -140,7 +139,7 @@ class Provider: ...@@ -140,7 +139,7 @@ class Provider:
self._deferred_cache: dict[Dependency, Package] = {} self._deferred_cache: dict[Dependency, Package] = {}
self._load_deferred = True self._load_deferred = True
self._source_root: Path | None = None self._source_root: Path | None = None
self._installed = installed self._installed_packages = installed if installed is not None else []
@property @property
def pool(self) -> Pool: def pool(self) -> Pool:
...@@ -201,7 +200,7 @@ class Provider: ...@@ -201,7 +200,7 @@ class Provider:
This is useful when dealing with packages that are under development, not This is useful when dealing with packages that are under development, not
published on package sources and/or only available via system installations. published on package sources and/or only available via system installations.
""" """
if not self._installed: if not self._installed_packages:
return [] return []
logger.debug( logger.debug(
...@@ -210,7 +209,7 @@ class Provider: ...@@ -210,7 +209,7 @@ class Provider:
) )
packages = [ packages = [
package package
for package in self._installed.packages for package in self._installed_packages
if package.provides(specification) if package.provides(specification)
] ]
logger.debug( logger.debug(
......
...@@ -29,7 +29,6 @@ if TYPE_CHECKING: ...@@ -29,7 +29,6 @@ if TYPE_CHECKING:
from poetry.puzzle.transaction import Transaction from poetry.puzzle.transaction import Transaction
from poetry.repositories import Pool from poetry.repositories import Pool
from poetry.repositories import Repository
from poetry.utils.env import Env from poetry.utils.env import Env
...@@ -38,15 +37,15 @@ class Solver: ...@@ -38,15 +37,15 @@ class Solver:
self, self,
package: ProjectPackage, package: ProjectPackage,
pool: Pool, pool: Pool,
installed: Repository, installed: list[Package],
locked: Repository, locked: list[Package],
io: IO, io: IO,
provider: Provider | None = None, provider: Provider | None = None,
) -> None: ) -> None:
self._package = package self._package = package
self._pool = pool self._pool = pool
self._installed = installed self._installed_packages = installed
self._locked = locked self._locked_packages = locked
self._io = io self._io = io
if provider is None: if provider is None:
...@@ -85,9 +84,9 @@ class Solver: ...@@ -85,9 +84,9 @@ class Solver:
) )
return Transaction( return Transaction(
self._locked.packages, self._locked_packages,
list(zip(packages, depths)), list(zip(packages, depths)),
installed_packages=self._installed.packages, installed_packages=self._installed_packages,
root_package=self._package, root_package=self._package,
) )
...@@ -128,7 +127,7 @@ class Solver: ...@@ -128,7 +127,7 @@ class Solver:
self._overrides.append(self._provider._overrides) self._overrides.append(self._provider._overrides)
locked: dict[str, list[DependencyPackage]] = defaultdict(list) locked: dict[str, list[DependencyPackage]] = defaultdict(list)
for package in self._locked.packages: for package in self._locked_packages:
locked[package.name].append( locked[package.name].append(
DependencyPackage(package.to_dependency(), package) DependencyPackage(package.to_dependency(), package)
) )
......
...@@ -33,6 +33,9 @@ logger = logging.getLogger(__name__) ...@@ -33,6 +33,9 @@ logger = logging.getLogger(__name__)
class InstalledRepository(Repository): class InstalledRepository(Repository):
def __init__(self) -> None:
super().__init__("poetry-installed")
@classmethod @classmethod
def get_package_paths(cls, env: Env, name: str) -> set[Path]: def get_package_paths(cls, env: Env, name: str) -> set[Path]:
""" """
......
...@@ -15,6 +15,9 @@ class LockfileRepository(Repository): ...@@ -15,6 +15,9 @@ class LockfileRepository(Repository):
but also by source type, url, etc. but also by source type, url, etc.
""" """
def __init__(self) -> None:
super().__init__("poetry-lockfile")
def has_package(self, package: Package) -> bool: def has_package(self, package: Package) -> bool:
return any(p == package for p in self.packages) return any(p == package for p in self.packages)
......
...@@ -17,12 +17,12 @@ class Pool(Repository): ...@@ -17,12 +17,12 @@ class Pool(Repository):
repositories: list[Repository] | None = None, repositories: list[Repository] | None = None,
ignore_repository_names: bool = False, ignore_repository_names: bool = False,
) -> None: ) -> None:
super().__init__() super().__init__("poetry-pool")
if repositories is None: if repositories is None:
repositories = [] repositories = []
self._lookup: dict[str | None, int] = {} self._lookup: dict[str, int] = {}
self._repositories: list[Repository] = [] self._repositories: list[Repository] = []
self._default = False self._default = False
self._has_primary_repositories = False self._has_primary_repositories = False
...@@ -33,8 +33,6 @@ class Pool(Repository): ...@@ -33,8 +33,6 @@ class Pool(Repository):
self._ignore_repository_names = ignore_repository_names self._ignore_repository_names = ignore_repository_names
super().__init__()
@property @property
def repositories(self) -> list[Repository]: def repositories(self) -> list[Repository]:
return self._repositories return self._repositories
...@@ -49,11 +47,11 @@ class Pool(Repository): ...@@ -49,11 +47,11 @@ class Pool(Repository):
return name.lower() in self._lookup return name.lower() in self._lookup
def repository(self, name: str) -> Repository: def repository(self, name: str) -> Repository:
if name is not None:
name = name.lower() name = name.lower()
if name in self._lookup: lookup = self._lookup.get(name)
return self._repositories[self._lookup[name]] if lookup is not None:
return self._repositories[lookup]
raise ValueError(f'Repository "{name}" does not exist.') raise ValueError(f'Repository "{name}" does not exist.')
...@@ -63,11 +61,10 @@ class Pool(Repository): ...@@ -63,11 +61,10 @@ class Pool(Repository):
""" """
Adds a repository to the pool. Adds a repository to the pool.
""" """
# FIXME: surely it's a problem that the repository name can be None here? repository_name = repository.name.lower()
# All nameless repositories will collide in self._lookup. if repository_name in self._lookup:
repository_name = ( raise ValueError(f"{repository_name} already added")
repository.name.lower() if repository.name is not None else None
)
if default: if default:
if self.has_default(): if self.has_default():
raise ValueError("Only one repository can be the default") raise ValueError("Only one repository can be the default")
......
...@@ -18,9 +18,7 @@ if TYPE_CHECKING: ...@@ -18,9 +18,7 @@ if TYPE_CHECKING:
class Repository: class Repository:
def __init__( def __init__(self, name: str, packages: list[Package] | None = None) -> None:
self, name: str | None = None, packages: list[Package] | None = None
) -> None:
self._name = name self._name = name
self._packages: list[Package] = [] self._packages: list[Package] = []
...@@ -28,7 +26,7 @@ class Repository: ...@@ -28,7 +26,7 @@ class Repository:
self.add_package(package) self.add_package(package)
@property @property
def name(self) -> str | None: def name(self) -> str:
return self._name return self._name
@property @property
......
...@@ -333,7 +333,7 @@ def tmp_venv(tmp_dir: str) -> Iterator[VirtualEnv]: ...@@ -333,7 +333,7 @@ def tmp_venv(tmp_dir: str) -> Iterator[VirtualEnv]:
@pytest.fixture @pytest.fixture
def installed() -> Repository: def installed() -> Repository:
return Repository() return Repository("installed")
@pytest.fixture(scope="session") @pytest.fixture(scope="session")
......
...@@ -152,7 +152,7 @@ def package() -> ProjectPackage: ...@@ -152,7 +152,7 @@ def package() -> ProjectPackage:
@pytest.fixture() @pytest.fixture()
def repo() -> Repository: def repo() -> Repository:
return Repository() return Repository("repo")
@pytest.fixture() @pytest.fixture()
......
...@@ -105,7 +105,7 @@ def package() -> ProjectPackage: ...@@ -105,7 +105,7 @@ def package() -> ProjectPackage:
@pytest.fixture() @pytest.fixture()
def repo() -> Repository: def repo() -> Repository:
return Repository() return Repository("repo")
@pytest.fixture() @pytest.fixture()
......
...@@ -24,7 +24,7 @@ class Provider(BaseProvider): ...@@ -24,7 +24,7 @@ class Provider(BaseProvider):
@pytest.fixture @pytest.fixture
def repo() -> Repository: def repo() -> Repository:
return Repository() return Repository("repo")
@pytest.fixture @pytest.fixture
......
...@@ -39,7 +39,7 @@ def root() -> ProjectPackage: ...@@ -39,7 +39,7 @@ def root() -> ProjectPackage:
@pytest.fixture @pytest.fixture
def repository() -> Repository: def repository() -> Repository:
return Repository() return Repository("repo")
@pytest.fixture @pytest.fixture
......
...@@ -65,12 +65,12 @@ def installed() -> InstalledRepository: ...@@ -65,12 +65,12 @@ def installed() -> InstalledRepository:
@pytest.fixture() @pytest.fixture()
def locked() -> Repository: def locked() -> Repository:
return Repository() return Repository("locked")
@pytest.fixture() @pytest.fixture()
def repo() -> Repository: def repo() -> Repository:
return Repository() return Repository("repo")
@pytest.fixture() @pytest.fixture()
...@@ -89,10 +89,10 @@ def solver( ...@@ -89,10 +89,10 @@ def solver(
return Solver( return Solver(
package, package,
pool, pool,
installed, installed.packages,
locked, locked.packages,
io, io,
provider=Provider(package, pool, io, installed=installed), provider=Provider(package, pool, io, installed=installed.packages),
) )
...@@ -2019,7 +2019,7 @@ def test_solver_does_not_raise_conflict_for_locked_conditional_dependencies( ...@@ -2019,7 +2019,7 @@ def test_solver_does_not_raise_conflict_for_locked_conditional_dependencies(
repo.add_package(package_a) repo.add_package(package_a)
repo.add_package(package_b) repo.add_package(package_b)
solver._locked = Repository([package_a]) solver._locked = Repository("locked", [package_a])
transaction = solver.solve(use_latest=[package_b.name]) transaction = solver.solve(use_latest=[package_b.name])
check_solver_result( check_solver_result(
...@@ -2298,7 +2298,12 @@ def test_solver_can_resolve_directory_dependencies_nested_editable( ...@@ -2298,7 +2298,12 @@ def test_solver_can_resolve_directory_dependencies_nested_editable(
package = poetry.package package = poetry.package
solver = Solver( solver = Solver(
package, pool, installed, locked, io, provider=Provider(package, pool, io) package,
pool,
installed.packages,
locked.packages,
io,
provider=Provider(package, pool, io),
) )
transaction = solver.solve() transaction = solver.solve()
...@@ -2539,7 +2544,7 @@ def test_solver_can_solve_with_legacy_repository_using_proper_dists( ...@@ -2539,7 +2544,7 @@ def test_solver_can_solve_with_legacy_repository_using_proper_dists(
repo = MockLegacyRepository() repo = MockLegacyRepository()
pool = Pool([repo]) pool = Pool([repo])
solver = Solver(package, pool, installed, locked, io) solver = Solver(package, pool, installed.packages, locked.packages, io)
package.add_dependency(Factory.create_dependency("isort", "4.3.4")) package.add_dependency(Factory.create_dependency("isort", "4.3.4"))
...@@ -2586,7 +2591,7 @@ def test_solver_can_solve_with_legacy_repository_using_proper_python_compatible_ ...@@ -2586,7 +2591,7 @@ def test_solver_can_solve_with_legacy_repository_using_proper_python_compatible_
repo = MockLegacyRepository() repo = MockLegacyRepository()
pool = Pool([repo]) pool = Pool([repo])
solver = Solver(package, pool, installed, locked, io) solver = Solver(package, pool, installed.packages, locked.packages, io)
package.add_dependency(Factory.create_dependency("isort", "4.3.4")) package.add_dependency(Factory.create_dependency("isort", "4.3.4"))
...@@ -2620,7 +2625,7 @@ def test_solver_skips_invalid_versions( ...@@ -2620,7 +2625,7 @@ def test_solver_skips_invalid_versions(
repo = MockPyPIRepository() repo = MockPyPIRepository()
pool = Pool([repo]) pool = Pool([repo])
solver = Solver(package, pool, installed, locked, io) solver = Solver(package, pool, installed.packages, locked.packages, io)
package.add_dependency(Factory.create_dependency("trackpy", "^0.4")) package.add_dependency(Factory.create_dependency("trackpy", "^0.4"))
...@@ -2667,7 +2672,7 @@ def test_solver_chooses_most_recent_version_amongst_repositories( ...@@ -2667,7 +2672,7 @@ def test_solver_chooses_most_recent_version_amongst_repositories(
repo = MockLegacyRepository() repo = MockLegacyRepository()
pool = Pool([repo, MockPyPIRepository()]) pool = Pool([repo, MockPyPIRepository()])
solver = Solver(package, pool, installed, locked, io) solver = Solver(package, pool, installed.packages, locked.packages, io)
transaction = solver.solve() transaction = solver.solve()
...@@ -2693,7 +2698,7 @@ def test_solver_chooses_from_correct_repository_if_forced( ...@@ -2693,7 +2698,7 @@ def test_solver_chooses_from_correct_repository_if_forced(
repo = MockLegacyRepository() repo = MockLegacyRepository()
pool = Pool([repo, MockPyPIRepository()]) pool = Pool([repo, MockPyPIRepository()])
solver = Solver(package, pool, installed, locked, io) solver = Solver(package, pool, installed.packages, locked.packages, io)
transaction = solver.solve() transaction = solver.solve()
...@@ -2728,13 +2733,13 @@ def test_solver_chooses_from_correct_repository_if_forced_and_transitive_depende ...@@ -2728,13 +2733,13 @@ def test_solver_chooses_from_correct_repository_if_forced_and_transitive_depende
Factory.create_dependency("tomlkit", {"version": "^0.5", "source": "legacy"}) Factory.create_dependency("tomlkit", {"version": "^0.5", "source": "legacy"})
) )
repo = Repository() repo = Repository("repo")
foo = get_package("foo", "1.0.0") foo = get_package("foo", "1.0.0")
foo.add_dependency(Factory.create_dependency("tomlkit", "^0.5.0")) foo.add_dependency(Factory.create_dependency("tomlkit", "^0.5.0"))
repo.add_package(foo) repo.add_package(foo)
pool = Pool([MockLegacyRepository(), repo, MockPyPIRepository()]) pool = Pool([MockLegacyRepository(), repo, MockPyPIRepository()])
solver = Solver(package, pool, installed, locked, io) solver = Solver(package, pool, installed.packages, locked.packages, io)
transaction = solver.solve() transaction = solver.solve()
...@@ -2774,7 +2779,7 @@ def test_solver_does_not_choose_from_secondary_repository_by_default( ...@@ -2774,7 +2779,7 @@ def test_solver_does_not_choose_from_secondary_repository_by_default(
pool.add_repository(MockPyPIRepository(), secondary=True) pool.add_repository(MockPyPIRepository(), secondary=True)
pool.add_repository(MockLegacyRepository()) pool.add_repository(MockLegacyRepository())
solver = Solver(package, pool, installed, locked, io) solver = Solver(package, pool, installed.packages, locked.packages, io)
transaction = solver.solve() transaction = solver.solve()
...@@ -2826,7 +2831,7 @@ def test_solver_chooses_from_secondary_if_explicit( ...@@ -2826,7 +2831,7 @@ def test_solver_chooses_from_secondary_if_explicit(
pool.add_repository(MockPyPIRepository(), secondary=True) pool.add_repository(MockPyPIRepository(), secondary=True)
pool.add_repository(MockLegacyRepository()) pool.add_repository(MockLegacyRepository())
solver = Solver(package, pool, installed, locked, io) solver = Solver(package, pool, installed.packages, locked.packages, io)
transaction = solver.solve() transaction = solver.solve()
...@@ -2883,7 +2888,7 @@ def test_solver_discards_packages_with_empty_markers( ...@@ -2883,7 +2888,7 @@ def test_solver_discards_packages_with_empty_markers(
repo.add_package(package_b) repo.add_package(package_b)
repo.add_package(package_c) repo.add_package(package_c)
solver = Solver(package, pool, installed, locked, io) solver = Solver(package, pool, installed.packages, locked.packages, io)
transaction = solver.solve() transaction = solver.solve()
...@@ -2989,7 +2994,7 @@ def test_solver_does_not_fail_with_locked_git_and_non_git_dependencies( ...@@ -2989,7 +2994,7 @@ def test_solver_does_not_fail_with_locked_git_and_non_git_dependencies(
repo.add_package(get_package("a", "1.2.3")) repo.add_package(get_package("a", "1.2.3"))
repo.add_package(Package("pendulum", "2.1.2")) repo.add_package(Package("pendulum", "2.1.2"))
solver = Solver(package, pool, installed, locked, io) solver = Solver(package, pool, installed.packages, locked.packages, io)
transaction = solver.solve() transaction = solver.solve()
...@@ -3067,7 +3072,7 @@ def test_solver_synchronize_single( ...@@ -3067,7 +3072,7 @@ def test_solver_synchronize_single(
locked: Repository, locked: Repository,
io: NullIO, io: NullIO,
): ):
solver = Solver(package, pool, installed, locked, io) solver = Solver(package, pool, installed.packages, locked.packages, io)
package_a = get_package("a", "1.0") package_a = get_package("a", "1.0")
installed.add_package(package_a) installed.add_package(package_a)
...@@ -3086,7 +3091,7 @@ def test_solver_with_synchronization_keeps_critical_package( ...@@ -3086,7 +3091,7 @@ def test_solver_with_synchronization_keeps_critical_package(
locked: Repository, locked: Repository,
io: NullIO, io: NullIO,
): ):
solver = Solver(package, pool, installed, locked, io) solver = Solver(package, pool, installed.packages, locked.packages, io)
package_pip = get_package("setuptools", "1.0") package_pip = get_package("setuptools", "1.0")
installed.add_package(package_pip) installed.add_package(package_pip)
......
...@@ -10,7 +10,7 @@ from poetry.repositories.legacy_repository import LegacyRepository ...@@ -10,7 +10,7 @@ from poetry.repositories.legacy_repository import LegacyRepository
def test_pool_raises_package_not_found_when_no_package_is_found(): def test_pool_raises_package_not_found_when_no_package_is_found():
pool = Pool() pool = Pool()
pool.add_repository(Repository()) pool.add_repository(Repository("repo"))
with pytest.raises(PackageNotFound): with pytest.raises(PackageNotFound):
pool.package("foo", "1.0.0") pool.package("foo", "1.0.0")
...@@ -24,7 +24,7 @@ def test_pool(): ...@@ -24,7 +24,7 @@ def test_pool():
def test_pool_with_initial_repositories(): def test_pool_with_initial_repositories():
repo = Repository() repo = Repository("repo")
pool = Pool([repo]) pool = Pool([repo])
assert len(pool.repositories) == 1 assert len(pool.repositories) == 1
......
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