From 58f6d56fb462e9efddb613d5a5648c4e2f7c6af0 Mon Sep 17 00:00:00 2001 From: David Hotham Date: Thu, 3 Nov 2022 21:15:05 +0000 Subject: [PATCH] tests: removing tomlkit from poetry locker (#131) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit companion to https://github.com/python-poetry/poetry/pull/6562 Co-authored-by: Randy Döring <30527984+radoering@users.noreply.github.com> --- tests/conftest.py | 9 ++++++++- tests/helpers.py | 20 ++++++++++---------- tests/test_exporter.py | 4 +--- 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index cf04914..6cc23d4 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -5,6 +5,7 @@ from pathlib import Path from typing import TYPE_CHECKING from typing import Any +from typing import cast import pytest @@ -179,7 +180,13 @@ def _factory( poetry = Factory().create_poetry(project_dir) - locker = TestLocker(poetry.locker.lock.path, poetry.locker._local_config) + lock = poetry.locker.lock + if isinstance(lock, Path): + lock_path = cast("Path", lock) + else: + # poetry < 1.3 + lock_path = lock.path + locker = TestLocker(lock_path, poetry.locker._local_config) locker.write() poetry.set_locker(locker) diff --git a/tests/helpers.py b/tests/helpers.py index 4ab87c0..b88dd24 100644 --- a/tests/helpers.py +++ b/tests/helpers.py @@ -3,20 +3,19 @@ import os from contextlib import contextmanager +from pathlib import Path from typing import TYPE_CHECKING from typing import Any from typing import Iterator +from typing import cast from poetry.console.application import Application -from poetry.core.toml.file import TOMLFile from poetry.factory import Factory from poetry.installation.executor import Executor from poetry.packages import Locker if TYPE_CHECKING: - from pathlib import Path - from poetry.core.packages.package import Package from poetry.installation.operations.operation import Operation from poetry.poetry import Poetry @@ -34,17 +33,18 @@ def reset_poetry(self) -> None: self._poetry = Factory().create_poetry(poetry.file.path.parent) self._poetry.set_pool(poetry.pool) self._poetry.set_config(poetry.config) - self._poetry.set_locker( - TestLocker(poetry.locker.lock.path, self._poetry.local_config) - ) + lock = poetry.locker.lock + if isinstance(lock, Path): + lock_path = cast("Path", lock) + else: + # poetry < 1.3 + lock_path = lock.path + self._poetry.set_locker(TestLocker(lock_path, self._poetry.local_config)) class TestLocker(Locker): def __init__(self, lock: str | Path, local_config: dict[str, Any]) -> None: - self._lock = TOMLFile(lock) - self._local_config = local_config - self._lock_data: TOMLDocument | None = None - self._content_hash = self._get_content_hash() + super().__init__(lock, local_config) self._locked = False self._write = False self._contains_credential = False diff --git a/tests/test_exporter.py b/tests/test_exporter.py index 9dd4375..7acecc4 100644 --- a/tests/test_exporter.py +++ b/tests/test_exporter.py @@ -9,7 +9,6 @@ from cleo.io.null_io import NullIO from poetry.core.packages.dependency import Dependency from poetry.core.packages.dependency_group import MAIN_GROUP -from poetry.core.toml.file import TOMLFile from poetry.core.version.markers import parse_marker from poetry.factory import Factory from poetry.packages import Locker as BaseLocker @@ -46,9 +45,8 @@ class Locker(BaseLocker): def __init__(self, fixture_root: Path) -> None: - self._lock = TOMLFile(fixture_root / "poetry.lock") + super().__init__(fixture_root / "poetry.lock", {}) self._locked = True - self._content_hash = self._get_content_hash() def locked(self, is_locked: bool = True) -> Locker: self._locked = is_locked