import unittest import allure import pytest from assertpy import assert_that from parameterized import parameterized from ui_automation_framework.core import TestStatus from ui_automation_framework.utils import AppConfig from app.api_client import ApiClient 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 FilteringTest(unittest.TestCase): date_1 = "2021-03-28" date_2 = "2021-04-27" @pytest.fixture(autouse=True) def classSetup(self): self.loginPage = LoginPage(self.driver) self.trackPage = TrackPage(self.driver) self.gtp = GlobalTrackPrioritiesPage(self.driver) self.api_client = ApiClient() self.ts = TestStatus(self.driver) @parameterized.expand( [ ("2021-07-12", AppConfig.get("market")["belgium"]["market"], "2021-07-13"), # positive diagonal arrow ("2021-07-12", AppConfig.get("market")["czechia"]["market"], "2021-07-13"), # positive straight arrow ("2021-07-19", AppConfig.get("market")["canada"]["market"], "2021-07-20"), # negative diagonal arrow ("2021-07-19", AppConfig.get("market")["germany"]["market"], "2021-07-20"), # negative straight arrow ("2021-07-19", AppConfig.get("market")["belgium"]["market"], "2021-07-20"), # zero straight arrow ] ) @allure.story("AP-6090") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-5765][YT> Trending> Overview] Markets Position and Trend verification. STEPS 1-7") @allure.description("TC verifies YT Trending countries cards position and trend.") def test_trending_overview_position_trend_1_7(self, date_before, market, date): self.loginPage.login_with_worker() self.trackPage.select_market(AppConfig.get("market")["global"]["name"]) self.trackPage.open_youtube_video_page(isrc=AppConfig.get("track54")["isrc"], market=AppConfig.get("market")["global"]["name"]) self.trackPage.nvp_youtube_check_videos_with_trending() video_id = self.trackPage.parameter_from_url(self.trackPage.str_gr_video) self.trackPage.scroll_to_trending_datepicker() # step 1 self.trackPage.nvp_youtube_trending_filtering(sort_value=self.trackPage.YT_TRENDING_SORT_BY_VIDEO_POSITION, checkbox_params=[self.trackPage.featured]) max_trending_date = self.api_client.get_video_trending_date(video_id=video_id)["video"]["max"] self.gtp.verify_collapsed_datepicker(expected_selected_date=max_trending_date, location="nvp_trending") self.trackPage.yt_trending_verify_market_position(tab=self.trackPage.YT_TRENDING_OVERVIEW_TAB, market=AppConfig.get("market")["belgium"]["market"], video_id=video_id, date=max_trending_date) # step 2-7 self.gtp.select_date_from_datepicker_grid(date=date_before, location="nvp_trending") position_by_date_before = self.trackPage.yt_trending_verify_market_position(tab=self.trackPage.YT_TRENDING_OVERVIEW_TAB, market=market, video_id=video_id, date=date_before) self.gtp.select_date_from_datepicker_grid(date=date, location="nvp_trending") position_by_date = self.trackPage.yt_trending_verify_market_position(tab=self.trackPage.YT_TRENDING_OVERVIEW_TAB, market=market, video_id=video_id, date=date) trend = self.trackPage.yt_trending_verify_trend_value(tab=self.trackPage.YT_TRENDING_OVERVIEW_TAB, market=market, video_id=video_id, date=date) ui_trend = int(position_by_date_before) - int(position_by_date) assert_that(ui_trend).is_equal_to(trend) self.trackPage.yt_trending_verify_trend_arrow(tab=self.trackPage.YT_TRENDING_OVERVIEW_TAB, market=market, trend=trend) @allure.story("AP-6090") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-5765][YT> Trending> Overview] Markets Position and Trend verification. STEPS 8-11") @allure.description("TC verifies YT Trending countries cards position and trend.") def test_trending_overview_position_trend_8_11(self): self.loginPage.login_with_worker() self.trackPage.select_market(AppConfig.get("market")["australia"]["name"]) self.trackPage.open_youtube_video_page(isrc=AppConfig.get("track56")["isrc"], market=AppConfig.get("market")["australia"]["name"]) self.trackPage.nvp_youtube_check_videos_with_trending() video_id = self.trackPage.parameter_from_url(self.trackPage.str_gr_video) self.trackPage.scroll_to_trending_datepicker() # step 8, 10 self.gtp.select_date_from_datepicker_grid(date=self.date_1, location="nvp_trending") self.trackPage.yt_trending_verify_blue_dot(tab=self.trackPage.YT_TRENDING_OVERVIEW_TAB, market=AppConfig.get("market")["czechia"]["market"]) max_trending_date = self.api_client.get_video_trending_date(video_id=video_id)["video"]["max"] self.gtp.reset_datepicker(expected_default_date=max_trending_date) # step 9, 11 self.gtp.select_date_from_datepicker_grid(date=self.date_2, location="nvp_trending") self.trackPage.yt_trending_verify_blue_dot(tab=self.trackPage.YT_TRENDING_OVERVIEW_TAB, market=AppConfig.get("market")["australia"]["market"], new_entry=False)