import logging import unittest import allure import pytest from assertpy import assert_that from ui_automation_framework.utils import logger as cl from app.src.helpers.api_data_provider import ApiDataProvider from app.src.pages.chart_digest_page import ChartDigestPage from app.src.pages.login_page import LoginPage from app.src.pages.profile_page import ProfilePage from app.src.pages.search_page import SearchPage from app.src.pages.track_page import TrackPage @pytest.mark.usefixtures("set_up", "one_time_set_up", "authorized_api") class DspLatencyTest(unittest.TestCase): log = cl.Logger(logging.DEBUG) @pytest.fixture(autouse=True) def classSetup(self, authorized_api): self.api = authorized_api self.loginPage = LoginPage(self.driver, authorized_api) self.profilePage = ProfilePage(self.driver) self.chartDigestPage = ChartDigestPage(self.driver, authorized_api) self.trackPage = TrackPage(self.driver, authorized_api) self.searchPage = SearchPage(self.driver, authorized_api) self.data_provider = ApiDataProvider(authorized_api) @allure.story("AG-5980") @allure.severity(allure.severity_level.NORMAL) @allure.title("DSP latency on the track page") @allure.description("Markets popup should contain streams representation accordingly to global and selected market") @allure.testcase("https://data-analytics.atlassian.net/browse/AG-5082," "https://data-analytics.atlassian.net/browse/AG-5079," "https://data-analytics.atlassian.net/browse/AG-5078," "https://data-analytics.atlassian.net/browse/AG-5080," "https://data-analytics.atlassian.net/browse/AG-5081") @pytest.mark.smoke def test_dsp_latency_track_page(self): market = "Albania" track_without_streams = "Sheena is a Punk" track_without_market_latency = "Dance Monkey" track_with_dsp_latency = self.data_provider.get_top_charts_spotify_track_data() self.loginPage.login_as_regular_user().select_search_tab() self.searchPage.search_for(track_with_dsp_latency[0]).open_track_page_from_results(1) dates = self.trackPage.get_market_card_dates() self.trackPage.open_markets_popup().expand_popup(height=0.10) assert_that(self.trackPage.is_dsp_latency_global_displayed(), "DSP latency is displayed").is_true() assert_that(self.trackPage.are_dsp_latency_dates_matching(dates), "DSP latency dates are valid").is_true() self.trackPage.close_popup_by_swipe().click_select_market_button().select_market_via_search(market).open_markets_popup().expand_popup(height=0.10).expand_popup(0.10) assert_that(self.trackPage.is_dsp_latency_global_displayed(), "DSP latency is displayed").is_true() assert_that(self.trackPage.is_dsp_latency_market_displayed(market, dates), "DSP latency is displayed").is_true() assert_that(self.trackPage.are_dsp_latency_dates_matching(dates), "DSP latency dates are valid").is_true() self.trackPage.close_popup_by_swipe().click_back_button() self.searchPage.search_for(track_without_streams).open_track_page_from_results(1) self.trackPage.open_markets_popup().expand_popup() assert_that(self.trackPage.no_dsp_latency_global_displayed(), "DSP latency is not displayed").is_true() assert_that(self.trackPage.no_dsp_latency_market_displayed(market), "DSP latency is not displayed").is_true() self.trackPage.close_popup_by_swipe().click_back_button() self.searchPage.clear_search_field().search_for(track_without_market_latency).open_track_page_from_results(1) self.trackPage.open_markets_popup().expand_popup().expand_popup() assert_that(self.trackPage.is_dsp_latency_global_displayed(), "DSP latency is displayed").is_true() assert_that(self.trackPage.no_dsp_latency_market_displayed(market), "DSP latency is not displayed").is_true() @allure.story("AG-5980") @allure.severity(allure.severity_level.NORMAL) @allure.title("DSP latency on the market details page") @allure.description("Streams Overview popup should contain streams representation accordingly to selected market") @allure.testcase("https://data-analytics.atlassian.net/browse/AG-5404," "https://data-analytics.atlassian.net/browse/AG-5405," "https://data-analytics.atlassian.net/browse/AG-5406," "https://data-analytics.atlassian.net/browse/AG-5407," "https://data-analytics.atlassian.net/browse/AG-5498") @pytest.mark.smoke def test_dsp_latency_market_details_page(self): market = ["Australia", "au"] track_without_streams = "Self Esteem" market_without_streams = "Belarus" track_with_streams = self.data_provider.get_top_charts_spotify_track_data(market[1]) self.loginPage.login_as_regular_user().select_search_tab() self.searchPage.search_for(track_with_streams[0]).open_track_page_from_results(1) dates = self.trackPage.get_market_card_dates() self.trackPage.open_market_detailed_page().open_streams_overview_popup().expand_popup() assert_that(self.trackPage.is_market_details_dsp_latency_global_displayed(), "DSP latency is displayed").is_true() assert_that(self.trackPage.are_market_dsp_latency_dates_matching(dates), "DSP latency dates are valid").is_true() self.trackPage.close_popup_by_swipe().click_back_button().click_select_market_button().select_market_via_search(market[0]).open_market_specific_market_detailed_page().open_streams_overview_popup().expand_popup() assert_that(self.trackPage.is_market_details_dsp_latency_market_displayed(market[0], dates), "DSP latency is displayed").is_true() self.trackPage.close_popup_by_swipe().click_back_button().click_back_button() self.searchPage.search_for(track_without_streams).open_track_page_from_results(1) self.trackPage.open_market_detailed_page().click_market_selector().select_market_via_search(market_without_streams).open_streams_overview_popup().expand_popup() assert_that(self.trackPage.no_market_details_dsp_latency_market_displayed(), "DSP latency is not displayed").is_true()