import logging import random 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 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-5141") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-4919] [Track->Video Performance] Legend with Sources by Video verification") @allure.description("TC verifies data calculation for legend with sources for different video amount calculation.") def test_youtube_vp_source_by_videos(self): self.loginPage.login_with_worker() track = random.choice(["track40", "track6"]) self.tp.open_spotify_track_page_with_market_id(track_id=AppConfig.get(track)["id"], market_id=AppConfig.get("market")["global"]["url"]) self.tp.switch_to_youtube_video_performance() # step 1 self.tp.td_youtube_sort_by_column(column="title") self.tp.td_youtube_sort_by_column(column="title") video_ids = self.tp.td_youtube_get_all_from_table()["video_ids"] self.tp.verify_legend_video_performance(markets=[AppConfig.get("market")["global"]["api"]], isrc=AppConfig.get(track)["isrc"], video_ids=video_ids) # step 2 one_video = 1 self.tp.vp_youtube_check_videos(count=one_video) video_ids_1 = self.tp.parameter_from_url(self.tp.str_gr_video).split(",") self.tp.verify_legend_video_performance(markets=[AppConfig.get("market")["global"]["api"]], isrc=AppConfig.get(track)["isrc"], video_ids=video_ids_1) # step 3 two_video = 2 self.tp.vp_youtube_check_videos(count=two_video) video_ids_2 = self.tp.parameter_from_url(self.tp.str_gr_video).split(",") self.tp.verify_legend_video_performance(markets=[AppConfig.get("market")["global"]["api"]], isrc=AppConfig.get(track)["isrc"], video_ids=video_ids_2) # step 4 self.tp.select_previous_mounth_period() self.tp.vp_youtube_check_videos(count=two_video) ui_before = self.tp.verify_legend_video_performance( markets=[AppConfig.get("market")["global"]["api"]], isrc=AppConfig.get(track)["isrc"], video_ids=self.tp.parameter_from_url(self.tp.str_gr_video).split(","), ) # step 5 color_before = self.tp.get_opacity_legend_item("YT Search") self.tp.youtube_change_sources(param=["Playlists", "Suggested Videos"], dd="vp") ui_after = self.tp.youtube_performance_get_legend_values() color_after = self.tp.get_opacity_legend_item("YT Search") assert_that(ui_after).is_equal_to(ui_before) assert_that(color_after).is_not_equal_to(color_before) # step 6 for graph in ["Area Graph, %", "Area Graph"]: self.tp.select_graph_view(graph) ui_graph = self.tp.youtube_performance_get_legend_values() assert_that(ui_after).is_equal_to(ui_graph) # step 7 self.tp.market_dd_choose_few_countries(param=[AppConfig.get("market")["us"]["name"]], tab="youtube_vp") self.tp.verify_legend_video_performance( markets=[AppConfig.get("market")["us"]["api"]], isrc=AppConfig.get(track)["isrc"], video_ids=self.tp.parameter_from_url(self.tp.str_gr_video).split(","), )