From 31489b76b4431a23484096deee0f7f863edc9f61 Mon Sep 17 00:00:00 2001 From: Anna Tasiopoulou Date: Fri, 25 Apr 2025 12:14:53 +0300 Subject: [PATCH 1/2] Fix #13072 Terminal tab process reporting issue --- src/_pytest/terminal.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/_pytest/terminal.py b/src/_pytest/terminal.py index 3297c38e848..4ba68eda703 100644 --- a/src/_pytest/terminal.py +++ b/src/_pytest/terminal.py @@ -628,6 +628,24 @@ def pytest_runtest_logreport(self, report: TestReport) -> None: else: markup = {} self._progress_nodeids_reported.add(rep.nodeid) + + # Calculate and send progress information to terminal tab + if self._show_progress_info: + total_items = 0 + if hasattr(self, "_session") and self._session is not None: + if hasattr(self._session, "items"): + total_items = len(self._session.items) + + if total_items > 0: + # Calculate progress percentage (0-100) + progress = int(len(self._progress_nodeids_reported) / total_items * 100) + # OSC 9;4;1;XX ST sequence for progress reporting + # 1 = set progress value, followed by percentage (0-100) + progress_sequence = f"\033]9;4;1;{progress}\033\\" + # Only write the sequence if we're in a terminal + if hasattr(self._tw, "_file") and self._tw._file.isatty(): + print(progress_sequence, end="", file=self._tw._file, flush=True) + if self.config.get_verbosity(Config.VERBOSITY_TEST_CASES) <= 0: self._tw.write(letter, **markup) # When running in xdist, the logreport and logfinish of multiple From 96b871fb7304a039aea41cdc3ead5b53438d89b3 Mon Sep 17 00:00:00 2001 From: Anna Tasiopoulou Date: Fri, 25 Apr 2025 12:22:56 +0300 Subject: [PATCH 2/2] Added #13072 changelog file and name to AUTHORS --- AUTHORS | 1 + changelog/13072.feature.rst | 9 +++++++++ 2 files changed, 10 insertions(+) create mode 100644 changelog/13072.feature.rst diff --git a/AUTHORS b/AUTHORS index e19a0ae5871..1df4ff81cc3 100644 --- a/AUTHORS +++ b/AUTHORS @@ -39,6 +39,7 @@ Andrzej Klajnert Andrzej Ostrowski Andy Freeland Anita Hammer +Anna Tasiopoulou Anthon van der Neut Anthony Shaw Anthony Sottile diff --git a/changelog/13072.feature.rst b/changelog/13072.feature.rst new file mode 100644 index 00000000000..73bba0ae2eb --- /dev/null +++ b/changelog/13072.feature.rst @@ -0,0 +1,9 @@ +Terminal tab progress reporting + +Added support for displaying test progress in the terminal tab using OSC 9;4; ANSI sequence. +When pytest runs in a supported terminal emulator (like GNOME Terminal or ConEmu), +you'll see the test progress as a percentage in the terminal tab, allowing you to monitor +test execution progress without having to switch to the pytest tab. + +This feature is automatically enabled when running in a compatible terminal and requires +no additional configuration.