From b27a2597a09a80f011207144b6f1d836a0afae9f Mon Sep 17 00:00:00 2001 From: Oleg Reshetnikov Date: Sun, 24 Oct 2021 21:47:25 +0300 Subject: [PATCH] add feature to display plugins list --- tests/test_terminal.py | 10 ++++++++++ ward/_run.py | 1 + ward/_terminal.py | 3 +++ 3 files changed, 14 insertions(+) diff --git a/tests/test_terminal.py b/tests/test_terminal.py index 46facaab..d797e70a 100644 --- a/tests/test_terminal.py +++ b/tests/test_terminal.py @@ -1,4 +1,5 @@ from pathlib import Path +from types import ModuleType from typing import Union from unittest.mock import Mock @@ -88,6 +89,7 @@ def prelude(): python_impl="CPython", python_version="4.2", ward_version="1.0.0dev1", + list_of_plugins=[], ) @@ -110,6 +112,14 @@ def _(prelude: SessionPrelude = prelude): assert next(render_iter) == "Loaded config from [b]pyproject.toml[/b]." +@test("SessionPrelude displays list of plugins discovered when it is supplied") +def _(prelude: SessionPrelude = prelude): + prelude.list_of_plugins = [("ward", ModuleType("ward"))] + render_iter = prelude.__rich_console__(None, None) + next(render_iter) + assert next(render_iter) == "The list of plugins discovered: ['ward']" + + @fixture def timing_stats_panel(): return TestTimingStatsPanel( diff --git a/ward/_run.py b/ward/_run.py index 64726426..bd62f035 100644 --- a/ward/_run.py +++ b/ward/_run.py @@ -215,6 +215,7 @@ def test( num_tests_collected=suite.num_tests_with_parameterisation, num_fixtures_collected=len(_DEFINED_FIXTURES), config_path=config_path, + list_of_plugins=plugins.list_name_plugin(), ) ) writer = TestResultWriter( diff --git a/ward/_terminal.py b/ward/_terminal.py index 041b003b..af7dc91c 100644 --- a/ward/_terminal.py +++ b/ward/_terminal.py @@ -277,6 +277,7 @@ class SessionPrelude: python_impl: str = field(default=platform.python_implementation()) python_version: str = field(default=platform.python_version()) ward_version: str = field(default=__version__) + list_of_plugins: Optional[List] = field(default_factory=list) def __rich_console__(self, c: Console, co: ConsoleOptions) -> RenderResult: yield Rule( @@ -285,6 +286,8 @@ def __rich_console__(self, c: Console, co: ConsoleOptions) -> RenderResult: style="title", ) ) + if self.list_of_plugins: + yield f"The list of plugins discovered: {[name for name, plugin in self.list_of_plugins]}" if self.config_path: try: path: Union[Path, str] = self.config_path.relative_to(Path.cwd())