import logging import unittest import allure import pytest from assertpy import assert_that from ui_automation_framework.core import TestStatus from ui_automation_framework.utils import AppConfig from ui_automation_framework.utils import logger as cl from ...pages.global_search import GlobalSearch from ...pages.left_navigation_panel import LeftNavigationPanel from ...pages.login_page import LoginPage from ...pages.track_page import TrackPage @pytest.mark.usefixtures("set_up", "one_time_set_up") class GlobalSearchTest(unittest.TestCase): log = cl.Logger(logging.DEBUG) @pytest.fixture(autouse=True) def classSetup(self): self.loginPage = LoginPage(self.driver) self.gs = GlobalSearch(self.driver) self.tp = TrackPage(self.driver) self.ts = TestStatus(self.driver) self.lnp = LeftNavigationPanel(self.driver) @allure.story("AP-4173") @allure.severity(allure.severity_level.NORMAL) @allure.title("""[AP-952] Global Search. Cleaning up search field""") @allure.description( """TC verifies that search field in the global header is automatically cleaned up after selecting item from search results and other cases.""" ) def test_global_search_field_cleaning_up(self): self.loginPage.login_with_worker() self.tp.select_market(AppConfig.get("market")["us"]["name"]) # step 1 self.gs.put_focus_to_the_search_field() self.gs.verify_top_results_elements([self.gs.top_results_elements[0]]) search_field_value = self.gs.get_global_search_field_value() assert_that(search_field_value).is_empty() self.gs.verify_hint_in_search_field_in_top_header() # step 2 self.gs.put_focus_to_the_search_field() self.gs.enter_search_value(self.gs.SEARCH_VALUE) self.lnp.open_my_starred_tracks_page() search_field_value = self.gs.get_global_search_field_value() assert_that(search_field_value).is_empty() self.gs.verify_hint_in_search_field_in_top_header() # step 3 self.gs.put_focus_to_the_search_field() self.gs.enter_search_value(self.gs.SEARCH_VALUE) self.gs.clear_the_search_field() search_field_value = self.gs.get_global_search_field_value() assert_that(search_field_value).is_empty() self.gs.verify_hint_in_search_field_in_top_header() # step 4 self.gs.put_focus_to_the_search_field() self.gs.enter_search_value(self.gs.SEARCH_VALUE) self.gs.click_beyond_search_field() self.gs.verify_search_window_is_not_present() search_field_value = self.gs.get_global_search_field_value() assert_that(search_field_value).is_equal_to(self.gs.SEARCH_VALUE)