import logging import random import unittest import allure import pytest from ui_automation_framework.core import TestStatus from ui_automation_framework.utils import AppConfig from ui_automation_framework.utils import logger as cl from app.api_client import ApiClient from app.src.pages.album_page import AlbumPage from app.src.pages.comparison_page import TrackComparisonPage 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 DeepLinkingTrackPageTest(unittest.TestCase): log = cl.Logger(logging.DEBUG) @pytest.fixture(autouse=True) def classSetup(self): self.loginPage = LoginPage(self.driver) self.tp = TrackPage(self.driver) self.cp = TrackComparisonPage(self.driver) self.ap = AlbumPage(self.driver) self.api_client = ApiClient() self.ts = TestStatus(self.driver) @allure.story("AP-5148") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-5169] Video Page -> Side Panel. Data calculations") @allure.description( """TC verifies that the data shown on the side panel on the Video page is calculated accurately in accordance with the set filters.""" ) def test_youtube_nvp_sidebar_data_calculations(self): self.loginPage.login_with_worker() track = random.choice(["track40", "track6"]) self.tp.open_youtube_video_page(isrc=AppConfig.get(track)["isrc"], market=AppConfig.get("market")["global"]["url"]) # step 1-7 self.tp.is_graph_period_displayed() self.tp.refresh() self.tp.verify_sidebar_values(isrc=AppConfig.get(track)["isrc"], markets=[AppConfig.get("market")["global"]["api"]]) # step 8 self.tp.nvp_youtube_check_videos_by_indexes([1]) self.tp.verify_sidebar_values(isrc=AppConfig.get(track)["isrc"], markets=[AppConfig.get("market")["global"]["api"]]) # step 9 self.tp.select_predefined_period(self.tp.dp_predefined_periods[1]) self.tp.verify_sidebar_values(isrc=AppConfig.get(track)["isrc"], markets=[AppConfig.get("market")["global"]["api"]]) # step 10 self.tp.market_dd_choose_few_countries(param=[AppConfig.get("market")["us"]["name"], AppConfig.get("market")["canada"]["name"]], tab="youtube_nvp") self.tp.verify_sidebar_values( isrc=AppConfig.get(track)["isrc"], markets=[AppConfig.get("market")["us"]["market"], AppConfig.get("market")["canada"]["market"]], ) # step 11-12 self.tp.youtube_switch_to_views_by_market_tab() self.tp.market_dd_choose_few_countries([self.tp.all_markets], "youtube_vbm") self.tp.verify_sidebar_values(isrc=AppConfig.get(track)["isrc"], markets=["worldwide"]) # step 13 self.tp.stream_and_source_choose_region(self.tp.sony_offices, "youtube_vbm") self.tp.verify_sidebar_values(isrc=AppConfig.get(track)["isrc"], markets=AppConfig.get("market")["sony_markets"]) # step 14 self.tp.stream_and_source_choose_region(self.tp.top_markets, "youtube_vbm") markets_ui = self.tp.youtube_nvp_views_by_markets_get_markets() self.tp.verify_sidebar_values(isrc=AppConfig.get(track)["isrc"], markets=markets_ui) # step 15 self.tp.open_spotify_track_page_with_market_id(track_id=AppConfig.get(track)["id"], market_id=AppConfig.get("market")["global"]["url"]) self.tp.td_switch_to_youtube_tab() self.tp.td_open_video_page() self.tp.verify_sidebar_values(isrc=AppConfig.get(track)["isrc"], markets=[AppConfig.get("market")["global"]["api"]])