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) by_views = "By Views" by_creations = "By Creations" all_contents = "All Contents" by_ugc_pgc = "By UGC/PGC" area_graph = "Area Graph" line_graph = "Line Graph" @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-6654") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-6550][Amplitude] Filtering Track page on Details -> TikTok tab") @allure.description("""TC Verifies events when different filters are selected in Track Page -> 'Performance' section -> 'TikTok' tab""") def test_tiktok_in_track_details(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_spotify_track_page(AppConfig.get("track40")["id"]) self.track_page.is_track_page_title_present(AppConfig.get("track40")["name"]) self.track_page.tp_switch_to_tiktok_tab() events = self.amplitude_helper.wait_and_get_amplitude_events(3) # by views self.track_page.tp_select_type_tiktok(self.by_views) events = self.amplitude_helper.wait_and_get_amplitude_events(1) self.amplitude_helper.verify_for_event_type(events[0], self.amplitude_helper.TRACK_PAGE["filtered_event_type"]) assert_that(events[0]["event_properties"]["tp_tt_type"]).is_equal_to(self.by_views) # by creations self.track_page.tp_select_type_tiktok(self.by_creations) events = self.amplitude_helper.wait_and_get_amplitude_events(1) self.amplitude_helper.verify_for_event_type(events[0], self.amplitude_helper.TRACK_PAGE["filtered_event_type"]) assert_that(events[0]["event_properties"]["tp_tt_type"]).is_equal_to(self.by_creations) # step 2 # by ugc/pgc self.track_page.tp_select_content_type_tiktok(self.by_ugc_pgc) events = self.amplitude_helper.wait_and_get_amplitude_events(1) self.amplitude_helper.verify_for_event_type(events[0], self.amplitude_helper.TRACK_PAGE["filtered_event_type"]) assert_that(events[0]["event_properties"]["tp_tt_content"]).is_equal_to(self.by_ugc_pgc) # step 3 # area graph self.track_page.choose_graph_view_area_graph() events = self.amplitude_helper.wait_and_get_amplitude_events(1) self.amplitude_helper.verify_for_event_type(events[0], self.amplitude_helper.TRACK_PAGE["filtered_event_type"]) assert_that(events[0]["event_properties"]["tp_graph_type_selector"]).is_equal_to(self.area_graph) # line graph self.track_page.choose_graph_view_line_graph_direct() events = self.amplitude_helper.wait_and_get_amplitude_events(1) self.amplitude_helper.verify_for_event_type(events[0], self.amplitude_helper.TRACK_PAGE["filtered_event_type"]) assert_that(events[0]["event_properties"]["tp_graph_type_selector"]).is_equal_to(self.line_graph) # step 4 # all contents self.track_page.tp_select_content_type_tiktok(self.all_contents) events = self.amplitude_helper.wait_and_get_amplitude_events(1) self.amplitude_helper.verify_for_event_type(events[0], self.amplitude_helper.TRACK_PAGE["filtered_event_type"]) assert_that(events[0]["event_properties"]["tp_tt_content"]).is_equal_to(self.all_contents) # step 5 # australia self.track_page.market_dd_choose_few_countries(param=[AppConfig.get("market")["australia"]["name"]], tab="tp_tiktok") events = self.amplitude_helper.wait_and_get_amplitude_events(1) self.amplitude_helper.verify_for_event_type(events[0], self.amplitude_helper.TRACK_PAGE["filtered_event_type"]) assert_that(events[0]["event_properties"]["tp_dsp_market_selector"]).is_equal_to([AppConfig.get("market")["australia"]["name"]]) # us self.track_page.market_dd_choose_few_countries(param=[AppConfig.get("market")["us"]["name"]], tab="tp_tiktok") events = self.amplitude_helper.wait_and_get_amplitude_events(1) self.amplitude_helper.verify_for_event_type(events[0], self.amplitude_helper.TRACK_PAGE["filtered_event_type"]) assert_that(events[0]["event_properties"]["tp_dsp_market_selector"]).is_equal_to([AppConfig.get("market")["us"]["name"]]) # all markets self.track_page.market_dd_choose_few_countries(param=[self.track_page.all_markets], tab="tp_tiktok") events = self.amplitude_helper.wait_and_get_amplitude_events(1) self.amplitude_helper.verify_for_event_type(events[0], self.amplitude_helper.TRACK_PAGE["filtered_event_type"]) assert_that(events[0]["event_properties"]["tp_dsp_market_selector"]).is_equal_to("All markets") # us + canada self.track_page.market_dd_choose_few_countries(param=[AppConfig.get("market")["us"]["name"], AppConfig.get("market")["canada"]["name"]], tab="tp_tiktok") events = self.amplitude_helper.wait_and_get_amplitude_events(1) self.amplitude_helper.verify_for_event_type(events[0], self.amplitude_helper.TRACK_PAGE["filtered_event_type"]) assert_that(events[0]["event_properties"]["tp_dsp_market_selector"]).is_equal_to([AppConfig.get("market")["canada"]["name"], AppConfig.get("market")["us"]["name"]]) # step 6 # Ex-US self.track_page.stream_and_source_choose_region(param=self.track_page.REGION_EX_US, dd="tp_tiktok") events = self.amplitude_helper.wait_and_get_amplitude_events(1) self.amplitude_helper.verify_for_event_type(events[0], self.amplitude_helper.TRACK_PAGE["filtered_event_type"]) assert_that(assert_that(events[0]["event_properties"]["tp_dsp_market_selector_fast_selection"]).is_equal_to(self.track_page.REGION_EX_US)) # Sony Offices self.track_page.stream_and_source_choose_region(self.track_page.sony_offices, dd="tp_tiktok") events = self.amplitude_helper.wait_and_get_amplitude_events(1) self.amplitude_helper.verify_for_event_type(events[0], self.amplitude_helper.TRACK_PAGE["filtered_event_type"]) assert_that(assert_that(events[0]["event_properties"]["tp_dsp_market_selector_fast_selection"]).is_equal_to(self.track_page.sony_offices)) # Asia self.track_page.stream_and_source_choose_region(self.track_page.REGION_ASIA, dd="tp_tiktok") events = self.amplitude_helper.wait_and_get_amplitude_events(1) self.amplitude_helper.verify_for_event_type(events[0], self.amplitude_helper.TRACK_PAGE["filtered_event_type"]) assert_that(assert_that(events[0]["event_properties"]["tp_dsp_market_selector_fast_selection"]).is_equal_to(self.track_page.REGION_ASIA)) # Europe self.track_page.stream_and_source_choose_region(self.track_page.REGION_EUROPE, dd="tp_tiktok") events = self.amplitude_helper.wait_and_get_amplitude_events(1) self.amplitude_helper.verify_for_event_type(events[0], self.amplitude_helper.TRACK_PAGE["filtered_event_type"]) assert_that(assert_that(events[0]["event_properties"]["tp_dsp_market_selector_fast_selection"]).is_equal_to(self.track_page.REGION_EUROPE)) # step 7 self.track_page.verify_tiktok_by_markets_button() events = self.amplitude_helper.wait_and_get_amplitude_events(1) self.amplitude_helper.verify_for_event_type(events[0], self.amplitude_helper.TRACK_PAGE["tiktok_by_markets_btn_event"])