From f8772b4fa1aaee558e37e7acae5282ba9eeb8ea7 Mon Sep 17 00:00:00 2001 From: Yevheniia Berdnyk Date: Sat, 28 Sep 2024 15:27:16 +0300 Subject: [PATCH] e2e: added gathering Status.log for failed tests --- test/appium/tests/base_test_case.py | 37 +++++++++++++---------------- test/appium/views/base_view.py | 4 ++-- test/appium/views/sign_in_view.py | 24 +++++++++---------- 3 files changed, 30 insertions(+), 35 deletions(-) diff --git a/test/appium/tests/base_test_case.py b/test/appium/tests/base_test_case.py index 7cc9aef48d..179c3b1d64 100644 --- a/test/appium/tests/base_test_case.py +++ b/test/appium/tests/base_test_case.py @@ -111,13 +111,11 @@ def get_app_path(): return app_path -def pull_geth(driver): - result = driver.pull_file(get_app_path() + 'geth.log') - return base64.b64decode(result) +log_file_names = ['geth', 'requests', 'Status'] -def pull_requests_log(driver): - result = driver.pull_file(get_app_path() + 'requests.log') +def pull_log_file(driver, log_file_name): + result = driver.pull_file(get_app_path() + '%s.log' % log_file_name) return base64.b64decode(result) @@ -216,7 +214,7 @@ class SingleDeviceTestCase(AbstractTestCase): self.print_sauce_lab_info(self.driver) try: self.add_alert_text_to_report(self.driver) - geth_content = pull_geth(self.driver) + geth_content = pull_log_file(self.driver, 'geth') self.driver.quit() if pytest_config_global['docker']: appium_container.stop_container() @@ -279,7 +277,7 @@ class SauceMultipleDeviceTestCase(AbstractTestCase): self.add_alert_text_to_report(self.drivers[driver]) geth_names.append( '%s_geth%s.log' % (test_suite_data.current_test.name, str(self.drivers[driver].number))) - geth_contents.append(pull_geth(self.drivers[driver])) + geth_contents.append(pull_log_file(self.drivers[driver], log_file_name='geth')) self.drivers[driver].quit() except (WebDriverException, AttributeError): pass @@ -383,14 +381,12 @@ class SauceSharedMultipleDeviceTestCase(AbstractTestCase): try: self.print_sauce_lab_info(self.drivers[driver]) self.add_alert_text_to_report(self.drivers[driver]) - log_names.append( - '%s_geth%s.log' % (test_suite_data.current_test.name, str(self.drivers[driver].number))) - log_contents.append(pull_geth(self.drivers[driver])) - log_names.append( - '%s_requests%s.log' % (test_suite_data.current_test.name, str(self.drivers[driver].number))) - log_contents.append(pull_requests_log(self.drivers[driver])) - except (WebDriverException, AttributeError, RemoteDisconnected, ProtocolError): - pass + for log in log_file_names: + log_names.append( + '%s_%s%s.log' % (test_suite_data.current_test.name, log, str(self.drivers[driver].number))) + log_contents.append(pull_log_file(self.drivers[driver], log_file_name=log)) + except (WebDriverException, AttributeError, RemoteDisconnected, ProtocolError) as e: + raise e finally: try: logs = {log_names[i]: log_contents[i] for i in range(len(log_names))} @@ -420,15 +416,14 @@ class SauceSharedMultipleDeviceTestCase(AbstractTestCase): try: for i, driver in cls.drivers.items(): if group_setup_failed: - log_contents.append(pull_geth(driver=driver)) - log_names.append('%s_geth%s.log' % (cls.__name__, i)) - log_contents.append(pull_requests_log(driver=driver)) - log_names.append('%s_requests%s.log' % (cls.__name__, i)) + for log in log_file_names: + log_contents.append(pull_log_file(driver=driver, log_file_name=log)) + log_names.append('%s_%s%s.log' % (cls.__name__, log, i)) session_id = driver.session_id try: sauce.jobs.update_job(username=sauce_username, job_id=session_id, name=cls.__name__) - except (RemoteDisconnected, SauceException, requests.exceptions.ConnectionError): - pass + except (RemoteDisconnected, SauceException, requests.exceptions.ConnectionError) as e: + raise e try: driver.quit() except WebDriverException: diff --git a/test/appium/views/base_view.py b/test/appium/views/base_view.py index 607c81e9b9..91c8a9860f 100644 --- a/test/appium/views/base_view.py +++ b/test/appium/views/base_view.py @@ -747,8 +747,8 @@ class BaseView(object): return items_in_logcat def find_values_in_geth(self, *args): - from tests.base_test_case import pull_geth - b64_log = pull_geth(self.driver) + from tests.base_test_case import pull_log_file + b64_log = pull_log_file(self.driver, log_file_name='geth') file = base64.b64decode(b64_log) result = False for value in args: diff --git a/test/appium/views/sign_in_view.py b/test/appium/views/sign_in_view.py index 5f5ba2c304..a843540096 100644 --- a/test/appium/views/sign_in_view.py +++ b/test/appium/views/sign_in_view.py @@ -263,20 +263,20 @@ class SignInView(BaseView): # self.identifiers_button.wait_and_click(30) if enable_notifications: self.enable_notifications_button.wait_and_click() - self.cancel_button.click_if_shown() # TODO: remove when issue 20806 is fixed - for _ in range(3): - self.allow_button.click_if_shown(sec=10) - self.cancel_button.click_if_shown() # TODO: remove when issue 20806 is fixed - self.enable_notifications_button.click_if_shown() - if self.chats_tab.is_element_displayed(): - break + # self.cancel_button.click_if_shown() # TODO: remove when issue 20806 is fixed + # for _ in range(3): + self.allow_button.click_if_shown(sec=10) + # self.cancel_button.click_if_shown() # TODO: remove when issue 20806 is fixed + # self.enable_notifications_button.click_if_shown() + # if self.chats_tab.is_element_displayed(): + # break else: self.maybe_later_button.wait_and_click() - for _ in range(3): - self.cancel_button.click_if_shown() # TODO: remove when issue 20806 is fixed - self.maybe_later_button.click_if_shown() - if self.chats_tab.is_element_displayed(): - break + # for _ in range(3): + # self.cancel_button.click_if_shown() # TODO: remove when issue 20806 is fixed + # self.maybe_later_button.click_if_shown() + # if self.chats_tab.is_element_displayed(): + # break self.chats_tab.wait_for_visibility_of_element(30) self.driver.info("## New multiaccount is created successfully!", device=False) return self.get_home_view()