import logging 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.issue("https://data-analytics.atlassian.net/browse/AP-7105") @pytest.mark.flaky(reruns=0) @allure.story("AP-5547") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-5478] Video Page -> LB/LF view. Data calculations") @allure.description("TC verifies the correctness of data calculation on the Lean Fwd/Back graph.") def test_youtube_nvp_deep_linking_lb_lf_view(self): self.loginPage.login_with_worker() self.tp.open_youtube_video_page(isrc=AppConfig.get("track40")["isrc"], market=AppConfig.get("market")["us"]["url"]) base_url = self.tp.get_url() self.tp.open_current_url_with_param("&str_gr_start_date=2021-02-15&str_gr_end_date=2021-02-15") # step 1-2 api_resp = self.api_client.get_delphi_videos( isrc=AppConfig.get("track40")["isrc"], params="group_by=date%2Cvideo_id&sort_by=views&limit=20&views=1000&expand_to=related_isrcs&content_type=partner_uploaded%2Cpremium_ugc&", ) video_ids = [i["video_id"] for i in api_resp] self.tp.verify_legend_video_performance( markets=[AppConfig.get("market")["us"]["market"]], isrc=AppConfig.get("track40")["isrc"], video_ids=video_ids, ) # step 3 self.tp.open_url(f"{base_url}&str_gr_start_date=2021-02-15&str_gr_end_date=2021-02-21") # step 4 self.tp.vp_youtube_change_source_view(param=AppConfig.get("source")["lf_lb"]) lb_lf_legend_ui = self.tp.youtube_performance_get_legend_values() lb_lf_legend_ui = [int(v.split("\n")[0]) for v in lb_lf_legend_ui] values_api = self.tp.get_lb_lf_legend_values_api( markets=[AppConfig.get("market")["us"]["market"]], isrc=AppConfig.get("track40")["isrc"], video_ids=video_ids, ) self.tp.compare_ui_api(values_api, lb_lf_legend_ui) # step 5 self.tp.select_predefined_period(self.tp.dp_predefined_periods[1]) lb_lf_legend_ui = self.tp.youtube_performance_get_legend_values() lb_lf_legend_ui = [int(v.split("\n")[0]) for v in lb_lf_legend_ui] api_resp = self.api_client.get_delphi_videos( isrc=AppConfig.get("track40")["isrc"], params="group_by=date%2Cvideo_id&sort_by=views&limit=20&views=1000&expand_to=related_isrcs&content_type=partner_uploaded%2Cpremium_ugc&", ) video_ids = [i["video_id"] for i in api_resp] values_api = self.tp.get_lb_lf_legend_values_api( markets=[AppConfig.get("market")["us"]["market"]], isrc=AppConfig.get("track40")["isrc"], video_ids=video_ids, ) self.tp.compare_ui_api(values_api, lb_lf_legend_ui) # step 6 self.tp.market_dd_choose_few_countries(param=[self.tp.all_markets], tab="youtube_nvp") lb_lf_legend_ui = self.tp.youtube_performance_get_legend_values() lb_lf_legend_ui = [int(v.split("\n")[0]) for v in lb_lf_legend_ui] values_api = self.tp.get_lb_lf_legend_values_api( markets=[AppConfig.get("market")["global"]["api"]], isrc=AppConfig.get("track40")["isrc"], video_ids=video_ids, ) self.tp.compare_ui_api(values_api, lb_lf_legend_ui) # step 7 self.tp.nvp_youtube_check_videos(2) lb_lf_legend_ui = self.tp.youtube_performance_get_legend_values() lb_lf_legend_ui = [int(v.split("\n")[0]) for v in lb_lf_legend_ui] video_ids = self.tp.parameter_from_url(self.tp.str_gr_video).split(",") values_api = self.tp.get_lb_lf_legend_values_api( markets=[AppConfig.get("market")["global"]["api"]], isrc=AppConfig.get("track40")["isrc"], video_ids=video_ids, ) self.tp.compare_ui_api(values_api, lb_lf_legend_ui) # step 8 self.tp.market_dd_choose_few_countries( param=[ AppConfig.get("market")["canada"]["name"], AppConfig.get("market")["australia"]["name"], AppConfig.get("market")["us"]["name"], ], tab="youtube_nvp", ) lb_lf_legend_ui = self.tp.youtube_performance_get_legend_values() lb_lf_legend_ui = [int(v.split("\n")[0]) for v in lb_lf_legend_ui] values_api = self.tp.get_lb_lf_legend_values_api( markets=[ AppConfig.get("market")["canada"]["market"], AppConfig.get("market")["australia"]["market"], AppConfig.get("market")["us"]["market"], ], isrc=AppConfig.get("track40")["isrc"], video_ids=video_ids, ) self.tp.compare_ui_api(values_api, lb_lf_legend_ui) # step 9 self.tp.stream_and_source_choose_region(param=self.tp.REGION_EUROPE, dd="youtube_nvp") lb_lf_legend_ui = self.tp.youtube_performance_get_legend_values() lb_lf_legend_ui = [int(v.split("\n")[0]) for v in lb_lf_legend_ui] values_api = self.tp.get_lb_lf_legend_values_api(markets=self.tp.europe_region_countries, isrc=AppConfig.get("track40")["isrc"], video_ids=video_ids) self.tp.compare_ui_api(values_api, lb_lf_legend_ui) # NOT AUTOMATED - STEP 10