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.src.pages.amplitude_helper import AmplitudeHelper 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 Amplitude(unittest.TestCase): log = cl.Logger(logging.DEBUG) views_by_markets_tab = "Views by Markets" video_performance_tab = "Video Performance" sources_view_list = [ AppConfig.get("source")["all_views"], AppConfig.get("source")["by_video"], AppConfig.get("source")["lf_lb"], AppConfig.get("source")["by_likes"], AppConfig.get("source")["by_dislikes"], AppConfig.get("source")["by_comments"], AppConfig.get("source")["by_shares"], AppConfig.get("source")["by_source"], ] @pytest.fixture(autouse=True) def classSetup(self): self.log = cl.Logger(logging.DEBUG) self.loginPage = LoginPage(self.driver) self.ts = TestStatus(self.driver) self.amplitude_helper = AmplitudeHelper(self.driver) self.track_page = TrackPage(self.driver) @allure.story("AP-5553") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-5377][Amplitude] Export on Video Page") @allure.description("""TC Verifies events when different filters are applied and export performed on the Video page""") def test_export_in_video_page(self): self.loginPage.login_with_worker() self.track_page.select_market(AppConfig.get("market")["us"]["name"]) events = self.amplitude_helper.wait_and_get_amplitude_events(5, False) self.amplitude_helper.is_initializer_event(events[0]) self.amplitude_helper.verify_event_user_properties(events[0]) # step 1 self.track_page.open_youtube_video_page(isrc=AppConfig.get("track6")["isrc"], market=AppConfig.get("market")["us"]["url"]) self.track_page.click_export() events = self.amplitude_helper.wait_and_get_amplitude_events(3) self.amplitude_helper.verify_for_event_type(events[2], self.amplitude_helper.VIDEO_PAGE["filtered_event_type"]) assert_that(events[2]["event_properties"]["vp_export"]).is_equal_to(self.video_performance_tab) # step 2 # youtube -> sources views for view in self.sources_view_list: self.track_page.vp_youtube_change_source_view(view) self.track_page.click_export() events = self.amplitude_helper.wait_and_get_amplitude_events(2) self.amplitude_helper.verify_for_event_type(events[1], self.amplitude_helper.VIDEO_PAGE["filtered_event_type"]) assert_that(assert_that(events[1]["event_properties"]["vp_export"]).is_equal_to(self.video_performance_tab)) # step 3 self.track_page.vp_youtube_change_source_view(AppConfig.get("source")["by_video"]) self.track_page.choose_graph_view_area_graph_percentage() self.track_page.click_export() events = self.amplitude_helper.wait_and_get_amplitude_events(3) self.amplitude_helper.verify_for_event_type(events[2], self.amplitude_helper.VIDEO_PAGE["filtered_event_type"]) assert_that(assert_that(events[2]["event_properties"]["vp_export"]).is_equal_to(self.video_performance_tab)) self.track_page.choose_graph_view_area_graph() self.track_page.click_export() events = self.amplitude_helper.wait_and_get_amplitude_events(2) self.amplitude_helper.verify_for_event_type(events[1], self.amplitude_helper.VIDEO_PAGE["filtered_event_type"]) assert_that(assert_that(events[1]["event_properties"]["vp_export"]).is_equal_to(self.video_performance_tab)) self.track_page.choose_graph_view_line_graph_direct() self.track_page.click_export() events = self.amplitude_helper.wait_and_get_amplitude_events(2) self.amplitude_helper.verify_for_event_type(events[1], self.amplitude_helper.VIDEO_PAGE["filtered_event_type"]) assert_that(assert_that(events[1]["event_properties"]["vp_export"]).is_equal_to(self.video_performance_tab)) # step 4 self.track_page.youtube_switch_to_views_by_market_tab() self.track_page.youtube_views_by_markets_click_export() events = self.amplitude_helper.wait_and_get_amplitude_events(2) self.amplitude_helper.verify_for_event_type(events[1], self.amplitude_helper.VIDEO_PAGE["filtered_event_type"]) assert_that(events[1]["event_properties"]["vp_export"]).is_equal_to(self.views_by_markets_tab) # step 5 # sony offices self.track_page.stream_and_source_choose_region(self.track_page.sony_offices, "youtube_vbm") self.track_page.youtube_views_by_markets_click_export() events = self.amplitude_helper.wait_and_get_amplitude_events(2) self.amplitude_helper.verify_for_event_type(events[1], self.amplitude_helper.VIDEO_PAGE["filtered_event_type"]) assert_that(events[1]["event_properties"]["vp_export"]).is_equal_to(self.views_by_markets_tab) # all markets self.track_page.market_dd_choose_few_countries(param=[self.track_page.all_markets], tab="youtube_vbm") self.track_page.youtube_views_by_markets_click_export() events = self.amplitude_helper.wait_and_get_amplitude_events(2) self.amplitude_helper.verify_for_event_type(events[1], self.amplitude_helper.VIDEO_PAGE["filtered_event_type"]) assert_that(events[1]["event_properties"]["vp_export"]).is_equal_to(self.views_by_markets_tab) # step 6 self.track_page.choose_graph_view_bar_chart() self.track_page.youtube_views_by_markets_click_export() events = self.amplitude_helper.wait_and_get_amplitude_events(2) self.amplitude_helper.verify_for_event_type(events[1], self.amplitude_helper.VIDEO_PAGE["filtered_event_type"]) assert_that(events[1]["event_properties"]["vp_export"]).is_equal_to(self.views_by_markets_tab)