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) ugc = "ugc" pgc = "pgc" user_generated = "User Generated" premium_generated = "Premium Generated " all_contents = "All Contents" @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.issue("https://data-analytics.atlassian.net/browse/AP-8545") @pytest.mark.flaky(reruns=0) @allure.story("AP-6877") @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 -> 'Details' 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.td_switch_to_tiktok_tab() events = self.amplitude_helper.wait_and_get_amplitude_events(3) # user generated self.track_page.td_filter_by_creations_tiktok([self.ugc]) 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"]["td_tt_content"]).is_equal_to(self.user_generated) # premium generated self.track_page.td_filter_by_creations_tiktok([self.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"]["td_tt_content"]).is_equal_to(self.premium_generated) # all contents self.track_page.td_filter_by_creations_tiktok([self.ugc, self.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"]["td_tt_content"]).is_equal_to(self.all_contents) # step 3 # australia self.track_page.market_dd_choose_few_countries(param=[AppConfig.get("market")["australia"]["name"]], tab="td_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"]["td_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="td_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"]["td_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="td_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"]["td_dsp_market_selector"]).is_equal_to("All markets") # step 4 # Ex-US self.track_page.stream_and_source_choose_region(param=self.track_page.REGION_EX_US, dd="td_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"]["td_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="td_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"]["td_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="td_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"]["td_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="td_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"]["td_dsp_market_selector_fast_selection"]).is_equal_to(self.track_page.REGION_EUROPE))