import logging import time 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-5549") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-5478] Video Page -> LB/LF view. Deep Linking") @allure.description("TC verifies that users can share the link for Video page with Lean Forward / Lean Back view selected.") 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"]) # step 1 self.tp.vp_youtube_change_source_view(param=AppConfig.get("source")["lf_lb"]) self.tp.verify_params_in_url({self.tp.str_gr_type: 3, self.tp.str_gr_view: 1}) # step 2 time.sleep(2) self.cp.open_new_tab() time.sleep(2) self.tp.open_current_url_in_new_tab() time.sleep(2) self.tp.vp_youtube_verify_view(AppConfig.get("source")["lf_lb"]) # step 3 self.cp.switch_to_tab(1) self.tp.select_previous_mounth_period() self.tp.nvp_youtube_check_videos(count=1) self.tp.market_dd_choose_few_countries( param=[ AppConfig.get("market")["us"]["name"], AppConfig.get("market")["canada"]["name"], AppConfig.get("market")["australia"]["name"], ], tab="youtube_nvp", ) self.tp.choose_graph_view_area_graph() # step 4 start_end_dates_before = [self.tp.get_calendar_start_date, self.tp.get_calendar_end_date] video_before = self.tp.vp_youtube_get_selected_videos_dd() self.tp.open_current_url_in_new_tab() start_end_dates_after = [self.tp.get_calendar_start_date, self.tp.get_calendar_end_date] market_after = self.tp.graph_get_selected_market(dd="youtube_nvp") self.tp.vp_youtube_verify_view(AppConfig.get("source")["lf_lb"]) self.tp.verify_graph_view_chosen("Area Graph") self.tp.vp_youtube_verify_selected_videos_dd(param=video_before) assert_that(market_after).is_equal_to("3 Markets") assert_that(start_end_dates_before).is_equal_to(start_end_dates_after) # step 5 self.cp.switch_to_tab(1) self.tp.vp_youtube_change_source_view(param=AppConfig.get("source")["by_video"]) self.tp.verify_params_in_url({self.tp.str_gr_type: 4}) # step 6 self.tp.replace_param_in_url(self.tp.str_gr_type, 4, 3) self.tp.vp_youtube_verify_view(AppConfig.get("source")["lf_lb"])