import datetime 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 app.api_client import ApiClient from app.src.pages.login_page import LoginPage from app.src.pages.track_page import TrackPage from app.src.pages.youtube_video_popup import YoutubeVideoPopup @pytest.mark.usefixtures("set_up", "one_time_set_up") class DeepLinkingTrackPageTest(unittest.TestCase): @pytest.fixture(autouse=True) def classSetup(self): self.loginPage = LoginPage(self.driver) self.tp = TrackPage(self.driver) self.youtube_popup = YoutubeVideoPopup(self.driver) self.api_client = ApiClient() self.ts = TestStatus(self.driver) @allure.story("AP-5898") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-5888] Video Page. 'PERIOD' date picker") @allure.description("TC verifies ‘PERIOD’ date picker on Video Page.") def test_youtube_nvp_period(self): self.loginPage.login_with_worker() self.tp.open_youtube_video_page(isrc=AppConfig.get("track40")["isrc"], market=AppConfig.get("market")["us"]["url"]) # step 2-3 start = self.tp.get_calendar_start_date() end = self.tp.get_calendar_end_date() latest_date = self.api_client.get_latest_date_all()["youtube"] assert_that(end).is_equal_to(latest_date) assert_that((datetime.datetime.strptime(end, "%Y-%m-%d").date() - datetime.datetime.strptime(start, "%Y-%m-%d").date()).days).is_equal_to(27) # step 4 self.tp.verify_date_picker() # step 5 sources_0 = self.tp.get_text("youtube-performance-sources-dd") market_1 = self.tp.graph_get_selected_market("youtube_nvp") self.tp.verify_graph_view_chosen("Area Graph") self.tp.graph_verify_predefined_periods(True) sources_1 = self.tp.get_text("youtube-performance-sources-dd") market_2 = self.tp.graph_get_selected_market("youtube_nvp") self.tp.verify_graph_view_chosen("Area Graph") assert_that(sources_0).is_equal_to(sources_1) assert_that(market_1).is_equal_to(market_2) # step 6 self.tp.select_previous_mounth_period() sources_2 = self.tp.get_text("youtube-performance-sources-dd") market_3 = self.tp.graph_get_selected_market("youtube_nvp") self.tp.verify_graph_view_chosen("Area Graph") assert_that(sources_2).is_equal_to(sources_1) assert_that(market_3).is_equal_to(market_2) start = self.tp.get_calendar_start_date() end = self.tp.get_calendar_end_date() assert_that((datetime.datetime.strptime(end, "%Y-%m-%d").date() - datetime.datetime.strptime(start, "%Y-%m-%d").date()).days).is_equal_to(27) # NOT AUTOMATED STEP - 1