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 = "2020-12-14" @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-4974") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-4104/5] GTP. Chart Position Over Time modal. Partial data and error handling") @allure.description("""TC verifies Chart Position Over Time modal window.""") def test_cpot_part_5_error_handling(self): self.loginPage.login_with_worker() self.gtp.open_gtp_page_from_url(market=AppConfig.get("market")["uk"]["market"], date=self.date_to_change) self.gtp.open_cpot_from_table(7) # step 1 tooltips = self.gtp_cpot_popup.get_tooltips(market=AppConfig.get("market")["uk"]["market"]) self.ts.markFinal(all(t["g_streams"] > -1 for t in tooltips), str(tooltips)) self.ts.markFinal(all(t["m_streams"] > -1 for t in tooltips), str(tooltips)) # step 2 self.ts.markFinal(any(t["g_position"] == -1 for t in tooltips), str(tooltips)) self.ts.markFinal(any(t["m_position"] == -1 for t in tooltips), str(tooltips)) # step 4 self.trackPage.select_month_period("September 2020") self.gtp_cpot_popup.verify_chart_position_no_data() # step 5 kpis_ui = self.gtp_cpot_popup.get_kpi_values_ui() assert_that(kpis_ui[:2]).is_equal_to([-1, -1]) # step 6 tooltips = self.gtp_cpot_popup.get_tooltips(market=AppConfig.get("market")["uk"]["market"]) self.ts.markFinal(all(t["g_streams"] > -1 for t in tooltips), str(tooltips)) self.ts.markFinal(all(t["m_streams"] > -1 for t in tooltips), str(tooltips)) self.ts.markFinal(all(t["g_position"] == -1 for t in tooltips), str(tooltips)) self.ts.markFinal(all(t["m_position"] == -1 for t in tooltips), str(tooltips)) # step 7 self.trackPage.select_today_period() self.ap.popup_verify_no_data() # NOT AUTOMATED STEPS - 3, 8-14