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.dsp_comparison_page import DSPComparison 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) page = "Comparison Page" periods = ["2 Weeks", "4 Weeks", "8 Weeks", "12 Weeks", "26 Weeks", "1 Year"] custom_period = "Custom" @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) self.dsp_comparison = DSPComparison(self.driver) @allure.story("AP-6891") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-6746][Amplitude] Changing date range on DSP Comparison") @allure.description("""TC verifies event fired upon changing date range on the DSP Comparison page""") def test_dsp_comparison_1_16(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-2 self.track_page.open_spotify_track_page(AppConfig.get("track49")["id"]) self.track_page.tp_navigate_to_dsp_comparison() events = self.amplitude_helper.wait_and_get_amplitude_events(3) for p in self.periods: self.track_page.change_period_in_date_picker(p) events = self.amplitude_helper.wait_and_get_amplitude_events(1) self.amplitude_helper.verify_for_event_type(events[0], self.amplitude_helper.DSP_COMPARISON_PAGE["date_range_changed"]) assert_that(events[0]["event_properties"]["page"]).is_equal_to(self.page) assert_that(events[0]["event_properties"]["period"]).is_equal_to(p) start_date = self.track_page.get_calendar_start_date() end_date = self.track_page.get_calendar_end_date() date_range = self.track_page.graph_get_count_days_from_calendar() assert_that(events[0]["event_properties"]["start_date"]).is_equal_to(start_date) assert_that(events[0]["event_properties"]["end_date"]).is_equal_to(end_date) assert_that(events[0]["event_properties"]["total_days"]).is_equal_to(date_range) # step 3 self.track_page.calendar_select_date_range(["May 20 2021", "May 24 2021"]) events = self.amplitude_helper.wait_and_get_amplitude_events(1) self.amplitude_helper.verify_for_event_type(events[0], self.amplitude_helper.DSP_COMPARISON_PAGE["date_range_changed"]) assert_that(events[0]["event_properties"]["page"]).is_equal_to(self.page) assert_that(events[0]["event_properties"]["period"]).is_equal_to(self.custom_period) start_date = self.track_page.get_calendar_start_date() end_date = self.track_page.get_calendar_end_date() date_range = self.track_page.graph_get_count_days_from_calendar() assert_that(events[0]["event_properties"]["start_date"]).is_equal_to(start_date) assert_that(events[0]["event_properties"]["end_date"]).is_equal_to(end_date) assert_that(events[0]["event_properties"]["total_days"]).is_equal_to(date_range)