import time 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 app.api_client import ApiClient from app.src.pages.apple_playlist_page import ApplePlaylistPage from app.src.pages.chart_digest import ChartDigestPage from app.src.pages.global_track_priorities_page import GlobalTrackPrioritiesPage from app.src.pages.gtp_cpot_popup import GTPCPOTPopup from app.src.pages.left_navigation_panel import LeftNavigationPanel from app.src.pages.login_page import LoginPage from app.src.pages.track_page import TrackPage @pytest.mark.usefixtures("set_up", "one_time_set_up") class GlobalTrackPrioritiesPageTest(unittest.TestCase): date_to_change = "2023-01-01" @pytest.fixture(autouse=True) def classSetup(self): self.loginPage = LoginPage(self.driver) self.chartDigestPage = ChartDigestPage(self.driver) self.gtp = GlobalTrackPrioritiesPage(self.driver) self.gtp_cpot_popup = GTPCPOTPopup(self.driver) self.lnp = LeftNavigationPanel(self.driver) self.chart_digest = ChartDigestPage(self.driver) self.trackPage = TrackPage(self.driver) self.api_client = ApiClient() self.ap = ApplePlaylistPage(self.driver) self.ts = TestStatus(self.driver) @allure.story("AP-4972") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-4104/4] GTP. Chart Position Over Time modal KPIs") @allure.description("""TC verifies the accuracy of data shown in KPIs of Chart Position Over Time modal window.""") def test_cpot_part_4_kpis(self): self.loginPage.login_with_worker() self.gtp.open_gtp_page_from_url(market=AppConfig.get("market")["us"]["market"], date=self.date_to_change) self.gtp.open_cpot_from_table(1) # step 1 self.gtp_cpot_popup.verify_elements_kpi(local_market=AppConfig.get("market")["us"]["name"]) # step 2-5 self.verify_kpis_ui(AppConfig.get("market")["us"]["market"]) # step 6-7 self.trackPage.select_previous_mounth_period() self.verify_kpis_ui(AppConfig.get("market")["us"]["market"]) # step 8 self.gtp_cpot_popup.close_popup() self.trackPage.select_market(AppConfig.get("market")["global"]["name"]) self.gtp.open_cpot_from_table() # step 9 self.gtp_cpot_popup.verify_elements_kpi(local_market=AppConfig.get("market")["global"]["name"]) @allure.step("GPOT - verify KPIs UI") def verify_kpis_ui(self, market): markets = [AppConfig.get("market")["global"]["api3"], market] start = self.trackPage.get_calendar_start_date() end = self.trackPage.get_calendar_end_date() id = self.gtp_cpot_popup.get_track_id() streams_api = [] for m in markets: streams_api.append(sum(self.gtp_cpot_popup.get_api_streams_count(m, start, end, id))) time.sleep(5) kpis_ui = self.gtp_cpot_popup.get_kpi_values_ui() # tooltips = self.gtp_cpot_popup.get_tooltips(market) # positions_tooltips = [min([t[n] for t in tooltips]) for n in ["g_position", "m_position"]] assert_that(kpis_ui[2:]).is_equal_to(streams_api)