From 517ee6532f9c4f84665cdcb234aaa1411513b5a3 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Wed, 4 May 2022 18:55:34 +0300 Subject: [PATCH] Move "strip_ansi_codes" to the util --- platformio/util.py | 4 ++++ tests/commands/pkg/test_exec.py | 9 ++++----- tests/commands/test_lib_complex.py | 11 +++++------ tests/commands/test_platform.py | 11 +++++------ tests/conftest.py | 9 --------- 5 files changed, 18 insertions(+), 26 deletions(-) diff --git a/platformio/util.py b/platformio/util.py index 9812887a..2eb3108e 100644 --- a/platformio/util.py +++ b/platformio/util.py @@ -287,3 +287,7 @@ def humanize_duration_time(duration): tokens.append(int(round(duration) if multiplier == 1 else fraction)) duration -= fraction * multiplier return "{:02d}:{:02d}:{:02d}.{:03d}".format(*tokens) + + +def strip_ansi_codes(text): + return re.sub(r"\x1B\[\d+(;\d+){0,2}m", "", text) diff --git a/tests/commands/pkg/test_exec.py b/tests/commands/pkg/test_exec.py index f1407d91..0b0c0f44 100644 --- a/tests/commands/pkg/test_exec.py +++ b/tests/commands/pkg/test_exec.py @@ -17,6 +17,7 @@ import pytest from platformio.package.commands.exec import package_exec_cmd +from platformio.util import strip_ansi_codes def test_pkg_not_installed(clirunner, validate_cliresult, isolated_pio_core): @@ -31,7 +32,7 @@ def test_pkg_not_installed(clirunner, validate_cliresult, isolated_pio_core): validate_cliresult(result) -def test_pkg_specified(clirunner, validate_cliresult, isolated_pio_core, strip_ansi): +def test_pkg_specified(clirunner, validate_cliresult, isolated_pio_core): # with install result = clirunner.invoke( package_exec_cmd, @@ -39,14 +40,12 @@ def test_pkg_specified(clirunner, validate_cliresult, isolated_pio_core, strip_a obj=dict(force_click_stream=True), ) validate_cliresult(result) - output = strip_ansi(result.output) + output = strip_ansi_codes(result.output) assert "Tool Manager: Installing platformio/tool-openocd" in output assert "Open On-Chip Debugger" in output -def test_unrecognized_options( - clirunner, validate_cliresult, isolated_pio_core, strip_ansi -): +def test_unrecognized_options(clirunner, validate_cliresult, isolated_pio_core): # unrecognized option result = clirunner.invoke( package_exec_cmd, diff --git a/tests/commands/test_lib_complex.py b/tests/commands/test_lib_complex.py index a362db4d..ef0c0c4b 100644 --- a/tests/commands/test_lib_complex.py +++ b/tests/commands/test_lib_complex.py @@ -20,6 +20,7 @@ import re from platformio.commands import PlatformioCLI from platformio.commands.lib.command import cli as cmd_lib from platformio.package.exception import UnknownPackageError +from platformio.util import strip_ansi_codes PlatformioCLI.leftover_args = ["--json-output"] # hook for click @@ -237,7 +238,7 @@ def test_global_lib_update_check(clirunner, validate_cliresult): ) == set(lib["name"] for lib in output) -def test_global_lib_update(clirunner, validate_cliresult, strip_ansi): +def test_global_lib_update(clirunner, validate_cliresult): # update library using package directory result = clirunner.invoke( cmd_lib, ["-g", "update", "NeoPixelBus", "--dry-run", "--json-output"] @@ -248,7 +249,7 @@ def test_global_lib_update(clirunner, validate_cliresult, strip_ansi): assert "__pkg_dir" in oudated[0] result = clirunner.invoke(cmd_lib, ["-g", "update", oudated[0]["__pkg_dir"]]) validate_cliresult(result) - assert "Removing NeoPixelBus @ 2.2.4" in strip_ansi(result.output) + assert "Removing NeoPixelBus @ 2.2.4" in strip_ansi_codes(result.output) # update rest libraries result = clirunner.invoke(cmd_lib, ["-g", "update"]) @@ -262,9 +263,7 @@ def test_global_lib_update(clirunner, validate_cliresult, strip_ansi): assert isinstance(result.exception, UnknownPackageError) -def test_global_lib_uninstall( - clirunner, validate_cliresult, isolated_pio_core, strip_ansi -): +def test_global_lib_uninstall(clirunner, validate_cliresult, isolated_pio_core): # uninstall using package directory result = clirunner.invoke(cmd_lib, ["-g", "list", "--json-output"]) validate_cliresult(result) @@ -272,7 +271,7 @@ def test_global_lib_uninstall( items = sorted(items, key=lambda item: item["__pkg_dir"]) result = clirunner.invoke(cmd_lib, ["-g", "uninstall", items[0]["__pkg_dir"]]) validate_cliresult(result) - assert ("Removing %s" % items[0]["name"]) in strip_ansi(result.output) + assert ("Removing %s" % items[0]["name"]) in strip_ansi_codes(result.output) # uninstall the rest libraries result = clirunner.invoke( diff --git a/tests/commands/test_platform.py b/tests/commands/test_platform.py index 05e586c4..604e392f 100644 --- a/tests/commands/test_platform.py +++ b/tests/commands/test_platform.py @@ -18,6 +18,7 @@ import json from platformio.commands import platform as cli_platform from platformio.package.exception import UnknownPackageError +from platformio.util import strip_ansi_codes def test_search_json_output(clirunner, validate_cliresult, isolated_pio_core): @@ -66,15 +67,13 @@ def test_install_core_3_dev_platform(clirunner, validate_cliresult, isolated_pio assert result.exit_code == 0 -def test_install_known_version( - clirunner, validate_cliresult, isolated_pio_core, strip_ansi -): +def test_install_known_version(clirunner, validate_cliresult, isolated_pio_core): result = clirunner.invoke( cli_platform.platform_install, ["atmelavr@2.0.0", "--skip-default-package", "--with-package", "tool-avrdude"], ) validate_cliresult(result) - output = strip_ansi(result.output) + output = strip_ansi_codes(result.output) assert "atmelavr @ 2.0.0" in output assert "Installing tool-avrdude @" in output assert len(isolated_pio_core.join("packages").listdir()) == 1 @@ -120,10 +119,10 @@ def test_update_check(clirunner, validate_cliresult, isolated_pio_core): assert len(isolated_pio_core.join("packages").listdir()) == 1 -def test_update_raw(clirunner, validate_cliresult, isolated_pio_core, strip_ansi): +def test_update_raw(clirunner, validate_cliresult, isolated_pio_core): result = clirunner.invoke(cli_platform.platform_update) validate_cliresult(result) - output = strip_ansi(result.output) + output = strip_ansi_codes(result.output) assert "Removing atmelavr @ 2.0.0" in output assert "Platform Manager: Installing platformio/atmelavr @" in output assert len(isolated_pio_core.join("packages").listdir()) == 2 diff --git a/tests/conftest.py b/tests/conftest.py index 1a9fd670..6f4a6088 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -15,7 +15,6 @@ import email import imaplib import os -import re import time import pytest @@ -64,14 +63,6 @@ def clirunner(request, tmpdir_factory): return CliRunner() -@pytest.fixture(scope="session") -def strip_ansi(): - def decorator(text): - return re.sub(r"\x1B\[\d+(;\d+){0,2}m", "", text) - - return decorator - - def _isolated_pio_core(request, tmpdir_factory): core_dir = tmpdir_factory.mktemp(".platformio") os.environ["PLATFORMIO_CORE_DIR"] = str(core_dir)