import logging 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.global_track_priorities_page import GlobalTrackPrioritiesPage 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) prev_date_not_present = "2020-08-21" @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.gtp = GlobalTrackPrioritiesPage(self.driver) self.api_client = ApiClient() self.ts = TestStatus(self.driver) @allure.story("AP-6312") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-5820][YT>Trending] Deep linking verification.") @allure.description("Trending deep linking") def test_youtube_nvp_trending_deep_linking_verification(self): self.loginPage.login_with_worker() self.tp.open_youtube_video_page(isrc=AppConfig.get("track40")["isrc"], market=AppConfig.get("market")["global"]["url"]) # step 1 self.tp.nvp_youtube_check_videos_with_trending() tr_date_ui = self.tp.get_trending_calendar_date() tr_date_url = self.tp.parameter_from_url(self.tp.trending_date) assert_that(tr_date_ui).is_equal_to(tr_date_url) # step 2 self.gtp.select_first_date_of_the_month() tr_date_ui = self.tp.get_trending_calendar_date() tr_date_url = self.tp.parameter_from_url(self.tp.trending_date) url_step_2 = self.tp.get_url() assert_that(tr_date_ui).is_equal_to(tr_date_url) # step 3 self.tp.refresh() tr_date_ui_step3 = self.tp.get_trending_calendar_date() assert_that(tr_date_ui_step3).is_equal_to(tr_date_ui) assert_that(self.tp.get_url()).is_equal_to(url_step_2) # step 4 self.tp.nvp_youtube_trending_filtering(sort_value=self.tp.YT_TRENDING_SORT_BY_ALPHABETICAL, checkbox_params=[self.tp.not_featured]) tr_date_ui_step4 = self.tp.get_trending_calendar_date() assert_that(tr_date_ui_step3).is_equal_to(tr_date_ui_step4) # step 5 self.tp.refresh() tr_date_ui_step5 = self.tp.get_trending_calendar_date() assert_that(tr_date_ui_step5).is_equal_to(tr_date_ui_step4) assert_that(self.tp.get_url()).is_equal_to(url_step_2) # step 6 self.tp.select_market(AppConfig.get("market")["france"]["name"]) videos_selected = self.tp.vp_youtube_get_selected_videos_dd() self.tp.verify_params_not_in_url([self.tp.trending_date]) assert_that(videos_selected).is_equal_to("All Videos") # step 7 self.tp.open_url(url_step_2) self.tp.get_trending_calendar_date() self.tp.change_param_in_url_new(self.tp.trending_date, self.prev_date_not_present) date_step7 = self.tp.get_trending_calendar_date() assert_that(date_step7).is_not_equal_to(self.prev_date_not_present) # step 8 self.tp.open_url(url_step_2.replace("youtube", "youtu")) self.gtp.verify_404_page_present() # step 9 self.tp.open_url(url_step_2) self.tp.nvp_youtube_trending_switch_tab(self.tp.YT_TRENDING_DETAILS_TAB) tr_date_ui_step9 = self.tp.get_trending_calendar_date() tr_date_url_step9 = self.tp.parameter_from_url(self.tp.trending_date) assert_that(tr_date_ui_step3).is_equal_to(tr_date_ui_step9) assert_that(tr_date_ui_step3).is_equal_to(tr_date_url_step9) # step 10 self.tp.nvp_youtube_trending_switch_tab(self.tp.YT_TRENDING_OVERVIEW_TAB) tr_date_ui_step10 = self.tp.get_trending_calendar_date() tr_date_url_step10 = self.tp.parameter_from_url(self.tp.trending_date) assert_that(tr_date_ui_step3).is_equal_to(tr_date_ui_step10) assert_that(tr_date_ui_step3).is_equal_to(tr_date_url_step10) # step 11 self.tp.nvp_youtube_trending_filtering(sort_value=self.tp.YT_TRENDING_SORT_BY_ALPHABETICAL, checkbox_params=[self.tp.featured]) self.tp.nvp_youtube_trending_switch_overview_control(self.tp.YT_TRENDING_OVERVIEW_BY_REGIONS) tr_date_ui_step11 = self.tp.get_trending_calendar_date() tr_date_url_step11 = self.tp.parameter_from_url(self.tp.trending_date) assert_that(tr_date_ui_step3).is_equal_to(tr_date_ui_step11) assert_that(tr_date_ui_step3).is_equal_to(tr_date_url_step11) # step 12 self.tp.refresh() tr_date_ui_step12 = self.tp.get_trending_calendar_date() tr_date_url_step12 = self.tp.parameter_from_url(self.tp.trending_date) self.tp.nvp_youtube_trending_verify_filtering(sort_value=self.tp.YT_TRENDING_SORT_BY_ALPHABETICAL, checkbox_params=[self.tp.featured, self.tp.not_featured]) self.tp.nvp_youtube_trending_verify_overview_control(self.tp.YT_TRENDING_OVERVIEW_BY_REGIONS) assert_that(tr_date_ui_step3).is_equal_to(tr_date_ui_step12) assert_that(tr_date_ui_step3).is_equal_to(tr_date_url_step12) # step 13 self.tp.nvp_youtube_trending_switch_tab(self.tp.YT_TRENDING_DETAILS_TAB) self.tp.select_market(AppConfig.get("market")["global"]["name"]) videos_selected = self.tp.vp_youtube_get_selected_videos_dd() self.tp.nvp_youtube_trending_verify_placeholder() self.tp.verify_params_not_in_url([self.tp.trending_date]) assert_that(videos_selected).is_equal_to("All Videos")