import logging import unittest import allure import pytest from parameterized import parameterized 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.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.api_client = ApiClient() self.ts = TestStatus(self.driver) @parameterized.expand( [ ( AppConfig.get("track40")["isrc"], [AppConfig.get("market")["global"]], AppConfig.get("source")["by_source"], ), ( AppConfig.get("track40")["isrc"], [AppConfig.get("market")["global"]], AppConfig.get("source")["all_views"], ), ( AppConfig.get("track40")["isrc"], [AppConfig.get("market")["global"]], AppConfig.get("source")["by_video"], ), # (AppConfig.get("track40")["isrc"], [AppConfig.get("market")["global"]], AppConfig.get("source")["by_avg_view_duration"]), ( AppConfig.get("track40")["isrc"], [AppConfig.get("market")["global"]], AppConfig.get("source")["by_likes"], ), ( AppConfig.get("track40")["isrc"], [AppConfig.get("market")["global"]], AppConfig.get("source")["by_dislikes"], ), ( AppConfig.get("track40")["isrc"], [AppConfig.get("market")["global"]], AppConfig.get("source")["by_comments"], ), ( AppConfig.get("track40")["isrc"], [AppConfig.get("market")["global"]], AppConfig.get("source")["by_shares"], ), ( AppConfig.get("track40")["isrc"], [AppConfig.get("market")["us"], AppConfig.get("market")["canada"]], AppConfig.get("source")["by_source"], ), ( AppConfig.get("track40")["isrc"], [AppConfig.get("market")["us"], AppConfig.get("market")["canada"]], AppConfig.get("source")["all_views"], ), ( AppConfig.get("track40")["isrc"], [AppConfig.get("market")["us"], AppConfig.get("market")["canada"]], AppConfig.get("source")["by_video"], ), # (AppConfig.get("track40")["isrc"], [AppConfig.get("market")["us"], AppConfig.get("market")["canada"]], AppConfig.get("source")["by_avg_view_duration"]), ( AppConfig.get("track40")["isrc"], [AppConfig.get("market")["us"], AppConfig.get("market")["canada"]], AppConfig.get("source")["by_likes"], ), ( AppConfig.get("track40")["isrc"], [AppConfig.get("market")["us"], AppConfig.get("market")["canada"]], AppConfig.get("source")["by_dislikes"], ), ( AppConfig.get("track40")["isrc"], [AppConfig.get("market")["us"], AppConfig.get("market")["canada"]], AppConfig.get("source")["by_comments"], ), ( AppConfig.get("track40")["isrc"], [AppConfig.get("market")["us"], AppConfig.get("market")["canada"]], AppConfig.get("source")["by_shares"], ), ] ) @allure.story("AP-5193") @allure.severity(allure.severity_level.NORMAL) @allure.title("[4913] [YT > New Video Page > Perfomance tab] Export verification.") @allure.description("TC verifies that user has possibility to export views data coming from Videos, " "so that I will be able to export data in csv and analyze Videos side using exported file.") def test_youtube_nvp_vp_export(self, track, markets, view): self.loginPage.login_with_worker() # step 5 self.tp.open_youtube_video_page(track, market=AppConfig.get("market")["global"]["url"]) self.tp.is_youtube_video_page_opened() self.tp.is_graph_period_displayed() self.tp.verify_nvp_export_button_hover() # 6, 7, 9-24 # default date range, all videos if markets != [AppConfig.get("market")["global"]]: self.tp.market_dd_choose_few_countries(param=[m["name"] for m in markets], tab="youtube_nvp") self.tp.nvp_vp_verify_file_name_export_date_country(track) self.tp.vp_youtube_change_source_view(view) if view == AppConfig.get("source")["by_source"]: self.tp.youtube_change_sources(param=["Playlists", "Suggested Videos"], dd="nvp") self.tp.nvp_vp_verify_export([m["api"] for m in markets], view, track, " (1)") # custom date range, 1 video selected and 2 self.tp.select_previous_mounth_period() self.tp.is_graph_period_displayed() self.tp.nvp_youtube_check_videos(count=2) self.tp.nvp_vp_verify_file_name_export_date_country(track, " (2)") # 1, 2, 3, 4, 8 - not automated