From fc87ea1c0afef5353b50255b8b4ef3ba6a08dcdd Mon Sep 17 00:00:00 2001 From: Pavel Novotny Date: Thu, 23 May 2024 13:43:41 +0200 Subject: [PATCH] ui_session: return airgun session as a context manager (#15050) In `Satellite.ui_session()` context manager method, `airgun.session.Session()` is also a context manager and needs to be returned using the `with-yield` contruct, so the Session's `__enter__` and `__exit__` methods are executed. This fixes the problem where `Session.__exit__()` method was not called and thus screenshot was not taken and the browser window was not closed at the end of the test. Also the `except Exception: raise` part was removed as redundant. (cherry picked from commit 2618e01768c22921302da9dc3841809bd74e840b) --- robottelo/hosts.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/robottelo/hosts.py b/robottelo/hosts.py index e63945899a..0099a7c017 100644 --- a/robottelo/hosts.py +++ b/robottelo/hosts.py @@ -1889,17 +1889,15 @@ def get_caller(): return None try: - ui_session = Session( + with Session( session_name=testname or get_caller(), user=user or settings.server.admin_username, password=password or settings.server.admin_password, url=url, hostname=self.hostname, login=login, - ) - yield ui_session - except Exception: - raise + ) as ui_session: + yield ui_session finally: if self.record_property is not None and settings.ui.record_video: video_url = settings.ui.grid_url.replace(