import logging 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 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) @parameterized.expand( [ # ("by_avg_view_duration", "avg-views-duration-percent"), ("by_likes", "likes-in-period"), ("by_dislikes", "dislikes-in-period"), ("by_comments", "comments-in-period"), ("by_shares", "shares-in-period"), ] ) @allure.story("AP-5192") @allure.severity(allure.severity_level.NORMAL) @allure.title("[4913] [YT > New Video Page] Data table legend verification. 'Views and Sources' filter is set to 'Other metrics'.") @allure.description( """TC verifies new table Legend view with Video types that user can use when ‘Other metrics’ values are selected in ‘Views and Sources’ filter.""" ) def test_youtube_nvp_source_other_metrics_legend(self, source_view, default_sort): self.loginPage.login_with_worker() self.tp.open_youtube_video_page(isrc=AppConfig.get("track54")["isrc"], market=AppConfig.get("market")["global"]["url"]) # step 1, 6-7 self.tp.vp_youtube_change_source_view(param=AppConfig.get("source")[source_view]) # step 12, 14, 18, 25 self.tp.vp_youtube_kpi_verify_columns_hover() kpi_table = self.tp.vp_youtube_get_kpi_table() # step 2, 8, 19 assert_that([int(d.split("\n")[0].split(" ")[0]) for d in kpi_table[default_sort][:-1]]).is_sorted(reverse=True) # step 3, 9, 20 self.tp.vp_youtube_click_column(column=default_sort) kpi_table = self.tp.vp_youtube_get_kpi_table() assert_that([int(d.split("\n")[0].split(" ")[0]) for d in kpi_table[default_sort][:-1]]).is_sorted() # step 4, 10, 21 self.tp.vp_youtube_kpi_verify_sorting() # step 5, 11, 13, 15-17, 22-24, 26 self.tp.nvp_youtube_check_videos(count=1) video_id = self.tp.parameter_from_url(self.tp.str_gr_video) self.tp.kpi_verify_calculations_other_views(markets=[AppConfig.get("market")["global"]["api"]], video_id=video_id) # step 27 self.tp.market_dd_choose_few_countries([AppConfig.get("market")["us"]["name"]], tab="youtube_nvp") self.tp.kpi_verify_calculations_other_views(markets=[AppConfig.get("market")["us"]["market"]], video_id=video_id) # step 28 self.tp.stream_and_source_choose_region(self.tp.REGION_ASIA, dd="youtube_nvp") self.tp.kpi_verify_calculations_other_views( markets=[ "kh", "cn", "fj", "hk", "id", "jp", "la", "mo", "my", "np", "pg", "ph", "sg", "kr", "lk", "tw", "th", "vn", "in", ], video_id=video_id, )