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.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.track_page = TrackPage(self.driver) @allure.issue("https://data-analytics.atlassian.net/browse/AP-8545") @pytest.mark.flaky(reruns=0) @parameterized.expand([("spotify", AppConfig.get("track39")), ("apple", AppConfig.get("track44"))]) @allure.story("AP-5554") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-5377][Amplitude] Viewing Video Page") @allure.description("""TC Verifies events when user views the Video page""") def test_viewing_video_page(self, dsp, track): 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 if dsp == "spotify": self.track_page.open_track_page(apple_spotify=dsp, track_id=track["id"], market=AppConfig.get("market")["us"]["url"]) else: self.track_page.open_track_page(apple_spotify=dsp, track_id=track["apple_id"], market=AppConfig.get("market")["us"]["url"]) self.track_page.is_track_page_title_present(track["name"]) self.track_page.open_video_page_from_tab() events = self.amplitude_helper.wait_and_get_amplitude_events(3) self.amplitude_helper.verify_for_event_type(events[2], self.amplitude_helper.VIDEO_PAGE["event_type"]) assert_that(events[2]["event_properties"]["ISRC"]).is_equal_to(track["isrc"]) assert_that(events[2]["event_properties"]["vp_track_name"]).is_equal_to(track["name"]) assert_that(events[2]["event_properties"]["vp_artist"]).is_equal_to(track["artist"]) # step 2 self.track_page.navigate_back_from_video_page() self.track_page.td_switch_to_youtube_tab() events = self.amplitude_helper.wait_and_get_amplitude_events(2) self.track_page.td_open_video_page() events = self.amplitude_helper.wait_and_get_amplitude_events(4) self.amplitude_helper.verify_for_event_type(events[2], self.amplitude_helper.VIDEO_PAGE["event_type"]) assert_that(events[2]["event_properties"]["ISRC"]).is_equal_to(track["isrc"]) assert_that(events[2]["event_properties"]["vp_track_name"]).is_equal_to(track["name"]) assert_that(events[2]["event_properties"]["vp_artist"]).is_equal_to(track["artist"]) # step 3 self.track_page.open_youtube_video_page(isrc=track["isrc"], market=AppConfig.get("market")["us"]["url"]) events = self.amplitude_helper.wait_and_get_amplitude_events(2) self.amplitude_helper.verify_for_event_type(events[1], self.amplitude_helper.VIDEO_PAGE["event_type"]) assert_that(events[1]["event_properties"]["ISRC"]).is_equal_to(track["isrc"]) assert_that(events[1]["event_properties"]["vp_track_name"]).is_equal_to(track["name"]) assert_that(events[1]["event_properties"]["vp_artist"]).is_equal_to(track["artist"])