from allure_commons._allure import step from playwright.sync_api import Page, expect from src.helpers.date_utils import get_ui_date_from_url from src.helpers.logger import Logger from src.locators.artist_page.performance.artist_sas_tab import ArtistPageSASTabLocators from src.pages.apollo_header_main import ApolloHeader from src.ui_elements.base_ui_element import BaseUIElement from src.ui_elements.dropdown_ui_element import DropDownUIElement from src.ui_elements.multiselect_ui_element import MarketDDUIElement tab_name = "Artist Page Streams and Sources tab - " class ArtistPageSASTab(ApolloHeader): log = Logger() def __init__(self, page: Page): super().__init__(page) self.page = page self.entity_type = '' self.url = f'/{self.entity_type}' self.info_block = BaseUIElement(self.page, ArtistPageSASTabLocators.INFO_BLOCK, tab_name + "info block") self.clock_icon = BaseUIElement(self.page, ArtistPageSASTabLocators.CLOCK_ICON, tab_name + "clock icon") self.clock_icon_tooltip = BaseUIElement(self.page, ArtistPageSASTabLocators.CLOCK_ICON_TOOLTIP, tab_name + "clock icon tooltip") self.dsp_dd = DropDownUIElement(self.page, ArtistPageSASTabLocators.DSP_DD, tab_name + "dsp dd") self.market_dd = MarketDDUIElement(self.page, ArtistPageSASTabLocators.MARKET_DD, tab_name + "market dd") self.graph_view = DropDownUIElement(self.page, ArtistPageSASTabLocators.GRAPH_VIEW, tab_name + "graph view") self.export_button = BaseUIElement(self.page, ArtistPageSASTabLocators.EXPORT_BUTTON, tab_name + "export button") self.showing_n_days = BaseUIElement(self.page, ArtistPageSASTabLocators.SHOWING_N_DAYS, tab_name + "showing n days label") self.legend_values = BaseUIElement(self.page, ArtistPageSASTabLocators.LEGEND_VALUES, tab_name + "legend values") @step(tab_name + "verify clock icon tooltip - {dates}") def verify_clock_icon_tooltip(self, dates): self.clock_icon._element.hover() expect(self.clock_icon_tooltip._element)\ .to_have_text(f"""Spotify data up to {get_ui_date_from_url(dates["spotify"])}.Apple Music data up to {get_ui_date_from_url(dates["apple"])}.Amazon data up to {get_ui_date_from_url(dates["amazon"])}.""")