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) @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.tp = TrackPage(self.driver) @allure.story("AP-8384") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-8213][Amplitude] Amazon playlist page view tracking") @allure.description("""[AP-8213][Amplitude] Amazon playlist page view tracking""") def test_amazon_playlist_page_view_tracking_verification(self): self.loginPage.login_with_worker() events1 = self.amplitude_helper.wait_and_get_amplitude_events(2, False) self.tp.select_market(AppConfig.get("market")["us"]["name"]) self.amplitude_helper.wait_and_get_amplitude_events(3, False) self.amplitude_helper.is_initializer_event(events1[0]) self.amplitude_helper.verify_event_user_properties(events1[0]) self.tp.open_spotify_track_page(AppConfig.get("track49")["id"]) self.amplitude_helper.wait_and_get_amplitude_events(2) # step 1 self.tp.td_change_dsp(AppConfig.get("dsp")["amazon"]) self.tp.td_change_entities(AppConfig.get("source")["playlists"]) self.tp.td_cps_tab_sort_by_column("track-position") self.amplitude_helper.wait_and_get_amplitude_events(2) playlist_id = self.tp.td_get_playlist_ids()[0] playlist_name = self.tp.td_click_on_playlist_name(position=0) events = self.amplitude_helper.wait_and_get_amplitude_events(2) self.amplitude_helper.verify_for_event_type(events[-1], self.amplitude_helper.PLAYLIST_PAGE["event_type"]) assert_that(events[-1]["event_properties"]["dsp_type"]).is_equal_to(AppConfig.get("dsp")["amazon"]) assert_that(events[-1]["event_properties"]["playlist_id"].split("_")[0]).is_equal_to(playlist_id.split("_")[0]) assert_that(events[-1]["event_properties"]["playlist_name"]).is_equal_to(playlist_name) # step 2 self.tp.open_url(self.tp.get_url()) events = self.amplitude_helper.wait_and_get_amplitude_events(3, False) self.amplitude_helper.verify_for_event_type(events[-1], self.amplitude_helper.PLAYLIST_PAGE["event_type"]) assert_that(events[-1]["event_properties"]["dsp_type"]).is_equal_to(AppConfig.get("dsp")["amazon"]) assert_that(events[-1]["event_properties"]["playlist_id"].split("_")[0]).is_equal_to(playlist_id.split("_")[0]) assert_that(events[-1]["event_properties"]["playlist_name"]).is_equal_to(playlist_name)