From c724abe7f3944b0cc36694e3b634b32bb793ffab Mon Sep 17 00:00:00 2001 From: Pedro Crespo-Valero <32402063+pcrespov@users.noreply.github.com> Date: Fri, 27 Sep 2024 09:50:05 +0200 Subject: [PATCH 1/4] minor modifications --- .../src/pytest_simcore/helpers/playwright.py | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/packages/pytest-simcore/src/pytest_simcore/helpers/playwright.py b/packages/pytest-simcore/src/pytest_simcore/helpers/playwright.py index 50c32767eeba..e8d42bdda278 100644 --- a/packages/pytest-simcore/src/pytest_simcore/helpers/playwright.py +++ b/packages/pytest-simcore/src/pytest_simcore/helpers/playwright.py @@ -196,7 +196,6 @@ def __call__(self, message: str) -> None: class SocketIONodeProgressCompleteWaiter: node_id: str logger: logging.Logger - _last_call_return: bool = False _current_progress: dict[NodeProgressType, float] = field( default_factory=defaultdict ) @@ -224,24 +223,24 @@ def __call__(self, message: str) -> bool: self._current_progress[ node_progress_event.progress_type ] = new_progress + self.logger.info( - "current startup progress: %s", + "Current startup progress [expected number of states=%d]: %s", + NodeProgressType.required_types_for_started_service(), f"{json.dumps({k:round(v,1) for k,v in self._current_progress.items()})}", ) - self._last_call_return = all( - progress_type in self._current_progress - for progress_type in NodeProgressType.required_types_for_started_service() - ) and all( + return self.has_progress_on_all_expected_node_states() and all( round(progress, 1) == 1.0 for progress in self._current_progress.values() ) - return self._last_call_return - self._last_call_return = False return False - def get_last_call_return(self): - return self._last_call_return + def has_progress_on_all_expected_node_states(self): + return all( + progress_type in self._current_progress + for progress_type in NodeProgressType.required_types_for_started_service() + ) def get_current_progress(self): return self._current_progress.values() @@ -346,9 +345,9 @@ def expected_service_running( yield service_running except PlaywrightTimeoutError: - if waiter.get_last_call_return() is False: + if waiter.has_progress_on_all_expected_node_states(): ctx.logger.warning( - "⚠️ Progress bar didn't receive 100 percent: %s ⚠️", # https://github.com/ITISFoundation/osparc-simcore/issues/6449 + "⚠️ Progress bar didn't receive 100 percent but all states are there: %s ⚠️", # https://github.com/ITISFoundation/osparc-simcore/issues/6449 waiter.get_current_progress(), ) else: From 811912bd8d68ffabddedcf87b076693423524d76 Mon Sep 17 00:00:00 2001 From: Pedro Crespo-Valero <32402063+pcrespov@users.noreply.github.com> Date: Fri, 27 Sep 2024 10:12:35 +0200 Subject: [PATCH 2/4] rename --- .../src/pytest_simcore/helpers/playwright.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/pytest-simcore/src/pytest_simcore/helpers/playwright.py b/packages/pytest-simcore/src/pytest_simcore/helpers/playwright.py index e8d42bdda278..46416bbccf49 100644 --- a/packages/pytest-simcore/src/pytest_simcore/helpers/playwright.py +++ b/packages/pytest-simcore/src/pytest_simcore/helpers/playwright.py @@ -230,13 +230,13 @@ def __call__(self, message: str) -> bool: f"{json.dumps({k:round(v,1) for k,v in self._current_progress.items()})}", ) - return self.has_progress_on_all_expected_node_states() and all( + return self.received_required_node_progress_types() and all( round(progress, 1) == 1.0 for progress in self._current_progress.values() ) return False - def has_progress_on_all_expected_node_states(self): + def received_required_node_progress_types(self): return all( progress_type in self._current_progress for progress_type in NodeProgressType.required_types_for_started_service() @@ -338,6 +338,7 @@ def expected_service_running( service_running = ServiceRunning(iframe_locator=None) try: + with websocket.expect_event("framereceived", waiter, timeout=timeout): if press_start_button: _trigger_service_start(page, node_id) @@ -345,7 +346,7 @@ def expected_service_running( yield service_running except PlaywrightTimeoutError: - if waiter.has_progress_on_all_expected_node_states(): + if waiter.received_required_node_progress_types(): ctx.logger.warning( "⚠️ Progress bar didn't receive 100 percent but all states are there: %s ⚠️", # https://github.com/ITISFoundation/osparc-simcore/issues/6449 waiter.get_current_progress(), From 9f628fbc69799ec68d70d4add214330be0aa4e67 Mon Sep 17 00:00:00 2001 From: Pedro Crespo-Valero <32402063+pcrespov@users.noreply.github.com> Date: Fri, 27 Sep 2024 16:57:13 +0200 Subject: [PATCH 3/4] minor --- .../src/pytest_simcore/helpers/playwright.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/pytest-simcore/src/pytest_simcore/helpers/playwright.py b/packages/pytest-simcore/src/pytest_simcore/helpers/playwright.py index 46416bbccf49..3f00636fd3ca 100644 --- a/packages/pytest-simcore/src/pytest_simcore/helpers/playwright.py +++ b/packages/pytest-simcore/src/pytest_simcore/helpers/playwright.py @@ -225,18 +225,18 @@ def __call__(self, message: str) -> bool: ] = new_progress self.logger.info( - "Current startup progress [expected number of states=%d]: %s", + "Current startup progress [expected number of node-progress-types=%d]: %s", NodeProgressType.required_types_for_started_service(), f"{json.dumps({k:round(v,1) for k,v in self._current_progress.items()})}", ) - return self.received_required_node_progress_types() and all( + return self.got_expected_node_progress_types() and all( round(progress, 1) == 1.0 for progress in self._current_progress.values() ) return False - def received_required_node_progress_types(self): + def got_expected_node_progress_types(self): return all( progress_type in self._current_progress for progress_type in NodeProgressType.required_types_for_started_service() @@ -346,7 +346,7 @@ def expected_service_running( yield service_running except PlaywrightTimeoutError: - if waiter.received_required_node_progress_types(): + if waiter.got_expected_node_progress_types(): ctx.logger.warning( "⚠️ Progress bar didn't receive 100 percent but all states are there: %s ⚠️", # https://github.com/ITISFoundation/osparc-simcore/issues/6449 waiter.get_current_progress(), From e7b85d0256a9bc381c10a3d04478ba768fbdb616 Mon Sep 17 00:00:00 2001 From: Pedro Crespo-Valero <32402063+pcrespov@users.noreply.github.com> Date: Fri, 27 Sep 2024 16:58:59 +0200 Subject: [PATCH 4/4] doc --- .../pytest-simcore/src/pytest_simcore/helpers/playwright.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/pytest-simcore/src/pytest_simcore/helpers/playwright.py b/packages/pytest-simcore/src/pytest_simcore/helpers/playwright.py index 3f00636fd3ca..76693b90d484 100644 --- a/packages/pytest-simcore/src/pytest_simcore/helpers/playwright.py +++ b/packages/pytest-simcore/src/pytest_simcore/helpers/playwright.py @@ -348,7 +348,7 @@ def expected_service_running( except PlaywrightTimeoutError: if waiter.got_expected_node_progress_types(): ctx.logger.warning( - "⚠️ Progress bar didn't receive 100 percent but all states are there: %s ⚠️", # https://github.com/ITISFoundation/osparc-simcore/issues/6449 + "⚠️ Progress bar didn't receive 100 percent but all expected node-progress-types are in place: %s ⚠️", # https://github.com/ITISFoundation/osparc-simcore/issues/6449 waiter.get_current_progress(), ) else: