From 29e03098b9925571e2a9f47133cf106d0cd451d3 Mon Sep 17 00:00:00 2001 From: Frost Ming Date: Mon, 23 Mar 2020 22:29:01 +0800 Subject: [PATCH] fix failed testing --- pdm/cli/actions.py | 6 ++---- pdm/iostream.py | 6 ++++++ tests/resolver/test_resolve.py | 10 ++++++---- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/pdm/cli/actions.py b/pdm/cli/actions.py index 8efd3d26..767c0f3b 100644 --- a/pdm/cli/actions.py +++ b/pdm/cli/actions.py @@ -4,7 +4,6 @@ from pathlib import Path from typing import Dict, Iterable, Optional, Sequence import click -import halo import pythonfinder import tomlkit from pkg_resources import safe_name @@ -48,9 +47,8 @@ def do_lock( provider = project.get_provider(strategy, tracked_names) requirements = requirements or project.all_dependencies - # TODO: switch reporter at io level. - with halo.Halo( - text="Resolving dependencies", spinner="dots" + with stream.open_spinner( + title="Resolving dependencies", spinner="dots" ) as spin, stream.logging("lock"): reporter = project.get_reporter(requirements, tracked_names, spin) resolver = project.core.resolver_class(provider, reporter) diff --git a/pdm/iostream.py b/pdm/iostream.py index 7c4658ba..8adbdb51 100644 --- a/pdm/iostream.py +++ b/pdm/iostream.py @@ -8,6 +8,7 @@ from tempfile import mktemp from typing import List, Optional import click +import halo COLORS = ("red", "green", "yellow", "blue", "black", "magenta", "cyan", "white") @@ -106,5 +107,10 @@ class IOStream: except OSError: pass + @contextlib.contextmanager + def open_spinner(self, title: str, spinner: str = "dots"): + with halo.Halo(title, spinner=spinner) as spin: + yield spin + stream = IOStream() diff --git a/tests/resolver/test_resolve.py b/tests/resolver/test_resolve.py index 7c31f153..d2d37e95 100644 --- a/tests/resolver/test_resolve.py +++ b/tests/resolver/test_resolve.py @@ -3,6 +3,7 @@ import itertools import pytest from pdm.exceptions import NoVersionsAvailable, ResolutionImpossible +from pdm.iostream import stream from pdm.models.candidates import identify from pdm.models.requirements import parse_requirement from pdm.models.specifiers import PySpecSet @@ -11,7 +12,7 @@ from pdm.resolver import ( EagerUpdateProvider, Resolver, ReusePinProvider, - SimpleReporter, + SpinnerReporter, resolve, ) from tests import FIXTURES @@ -50,9 +51,10 @@ def resolve_requirements( flat_reqs = list( itertools.chain(*[deps.values() for _, deps in requirements.items()]) ) - reporter = SimpleReporter(flat_reqs) - resolver = Resolver(provider, reporter) - mapping, *_ = resolve(resolver, requirements, requires_python) + with stream.open_spinner("Resolving dependencies") as spin: + reporter = SpinnerReporter(spin, flat_reqs) + resolver = Resolver(provider, reporter) + mapping, *_ = resolve(resolver, requirements, requires_python) return mapping -- GitLab