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.about_page import AboutPage from app.src.pages.account_browser import AccountBrowserPage from app.src.pages.amplitude_helper import AmplitudeHelper from app.src.pages.buzz_page import BuzzPage from app.src.pages.carousel_images_page import CarouselImagesPage from app.src.pages.chart_digest import ChartDigestPage from app.src.pages.comparison_page import TrackComparisonPage from app.src.pages.global_track_priorities_page import GlobalTrackPrioritiesPage from app.src.pages.left_navigation_panel import LeftNavigationPanel from app.src.pages.localizations_page import LocalizationsPage from app.src.pages.login_page import LoginPage from app.src.pages.market_overview_page import MarketOverviewPage from app.src.pages.most_added_track_page import MostAddedTrackPage from app.src.pages.my_starred_tracks_page import MyStarredTracksPage from app.src.pages.new_music_friday import NewMusicFridayPage from app.src.pages.playlist_categories_page import PlaylistCategoriesPage from app.src.pages.playlist_duplication_page import PlaylistDuplicationPage from app.src.pages.playlists_page import PlaylistsPage from app.src.pages.releases_push_tracks_page import ReleasesPushTracksPage from app.src.pages.sony_music_stream_chart_page import SonyMusicStreamChartPage from app.src.pages.spotify_browse_page import SpotifyBrowsePage from app.src.pages.top_filtr_playlists import TopFiltrPlaylistsPage from app.src.pages.top_spotify_playlists import TopSpotifyPlaylistsPage 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.left_panel = LeftNavigationPanel(self.driver) self.chart_digest = ChartDigestPage(self.driver) self.amplitude_helper = AmplitudeHelper(self.driver) self.comparison_page = TrackComparisonPage(self.driver) self.my_starred_page = MyStarredTracksPage(self.driver) self.gtp = GlobalTrackPrioritiesPage(self.driver) self.track_page = TrackPage(self.driver) self.nmf = NewMusicFridayPage(self.driver) self.market_overview = MarketOverviewPage(self.driver) self.buzz_page = BuzzPage(self.driver) self.account_browser = AccountBrowserPage(self.driver) self.spotify_browse = SpotifyBrowsePage(self.driver) self.playlist_duplication = PlaylistDuplicationPage(self.driver) self.most_added_track = MostAddedTrackPage(self.driver) self.sony_music_stream_chart = SonyMusicStreamChartPage(self.driver) self.about_page = AboutPage(self.driver) self.carousel_images = CarouselImagesPage(self.driver) self.localizations_page = LocalizationsPage(self.driver) self.playlists_page = PlaylistsPage(self.driver) self.playlist_categories = PlaylistCategoriesPage(self.driver) self.releases_push_tracks_page = ReleasesPushTracksPage(self.driver) self.top_filtr_playlists = TopFiltrPlaylistsPage(self.driver) self.top_spotify_playlists = TopSpotifyPlaylistsPage(self.driver) @allure.story("AP-2237") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-2127] Amplitude Events: top header menu links and pages view. STEPS 1-2, 5-7.") @allure.description("""STEPS 1-2, 5-7. TC Verifies header menu clicks and navigation throw different pages""") def test_top_header_menu_links_and_pages_view_1_2_5_7(self): self.loginPage.login_with_worker() self.chart_digest.is_opened() self.track_page.select_market(AppConfig.get("market")["us"]["name"]) self.track_page.verify_top_header_market(AppConfig.get("market")["us"]["header"]) self.chart_digest.is_opened() 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.left_panel.hamburger_menu_click() self.left_panel.hamburger_menu_is_opened() events = self.amplitude_helper.wait_and_get_amplitude_events(1) self.amplitude_helper.verify_for_event_type(events[0], self.amplitude_helper.HAMBURGER_MENU["event_type_icon"]) # step 2 self.left_panel.hamburger_menu_click() self.left_panel.hamburger_menu_is_closed() events = self.amplitude_helper.wait_and_get_amplitude_events(1) self.amplitude_helper.verify_for_event_type(events[0], self.amplitude_helper.HAMBURGER_MENU["event_type_icon"]) # step 5 # top filtr playlists self.left_panel.open_right_hamburger_menu_pages("Top Filtr Playlists") self.top_filtr_playlists.header_is_present() events = self.amplitude_helper.wait_and_get_amplitude_events(3) self.amplitude_helper.verify_for_event_type(events[1], self.amplitude_helper.HAMBURGER_MENU["event_type_link"]) assert_that(events[1]["event_properties"]["link_destination"]).is_equal_to(self.amplitude_helper.TOP_FILTR_PLAYLISTS_PAGE["link_destination"]) self.amplitude_helper.verify_for_event_type(events[-1], self.amplitude_helper.TOP_FILTR_PLAYLISTS_PAGE["event_type"]) assert_that(events[-1]["event_properties"]["owner_account"]).is_equal_to(self.amplitude_helper.TOP_FILTR_PLAYLISTS_PAGE["owner_account"]) # top spotify playlists self.left_panel.open_right_hamburger_menu_pages("Top Spotify Playlists") self.top_spotify_playlists.header_is_present() events = self.amplitude_helper.wait_and_get_amplitude_events(3) self.amplitude_helper.verify_for_event_type(events[1], self.amplitude_helper.HAMBURGER_MENU["event_type_link"]) assert_that(events[1]["event_properties"]["link_destination"]).is_equal_to(self.amplitude_helper.TOP_SPOTIFY_PLAYLISTS_PAGE["link_destination"]) self.amplitude_helper.verify_for_event_type(events[-1], self.amplitude_helper.TOP_SPOTIFY_PLAYLISTS_PAGE["event_type"]) assert_that(events[-1]["event_properties"]["owner_account"]).is_equal_to(self.amplitude_helper.TOP_SPOTIFY_PLAYLISTS_PAGE["owner_account"]) # step 6 # chart digest page self.left_panel.open_chart_digest_page() self.chart_digest.verify_hover_for_table_header(self.chart_digest.MAJOR_MOVES) events = self.amplitude_helper.wait_and_get_amplitude_events(2) self.amplitude_helper.verify_for_event_type(events[0], self.amplitude_helper.TOP_HEADER_MENU["event_type"]) assert_that(events[0]["event_properties"]["link_destination"]).is_equal_to(self.amplitude_helper.CHARTS_DIGEST_PAGE["link_destination"]) self.amplitude_helper.verify_for_event_type(events[-1], self.amplitude_helper.CHARTS_DIGEST_PAGE["event_type"]) # track comparison self.left_panel.open_comparison_page() self.comparison_page.is_title_displayed() events = self.amplitude_helper.wait_and_get_amplitude_events(2) self.amplitude_helper.verify_for_event_type(events[0], self.amplitude_helper.TOP_HEADER_MENU["event_type"]) assert_that(events[0]["event_properties"]["link_destination"]).is_equal_to(self.amplitude_helper.COMPARISON_PAGE["link_destination"]) self.amplitude_helper.verify_for_event_type(events[-1], self.amplitude_helper.COMPARISON_PAGE["event_type"]) # my starred tracks page self.left_panel.open_my_starred_tracks_page() self.my_starred_page.is_title_displayed() events = self.amplitude_helper.wait_and_get_amplitude_events(3) self.amplitude_helper.verify_for_event_type(events[0], self.amplitude_helper.TOP_HEADER_MENU["event_type"]) assert_that(events[0]["event_properties"]["link_destination"]).is_equal_to(self.amplitude_helper.MY_STARRED_TRACKS_PAGE["link_destination"]) self.amplitude_helper.verify_for_event_type(events[-1], self.amplitude_helper.MY_STARRED_TRACKS_PAGE["event_type"]) # step 7 self.left_panel.sign_out() events = self.amplitude_helper.wait_and_get_amplitude_events(2) self.amplitude_helper.verify_for_event_type(events[0], self.amplitude_helper.HAMBURGER_MENU["event_type_icon"]) self.amplitude_helper.verify_for_event_type(events[1], self.amplitude_helper.SIGN_OUT["event_type"]) @allure.story("AP-2237") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-2127] Amplitude Events: top header menu links and pages view. STEPS 3-4.") @allure.description("""STEPS 3-4. TC Verifies header menu clicks and navigation throw different pages""") def test_top_header_menu_links_and_pages_view_3_4(self): self.loginPage.login_with_worker() self.chart_digest.is_opened() self.track_page.select_market(AppConfig.get("market")["us"]["name"]) self.track_page.verify_top_header_market(AppConfig.get("market")["us"]["header"]) self.chart_digest.is_opened() events = self.amplitude_helper.wait_and_get_amplitude_events(5, False) # step 3 # track comparison page self.left_panel.open_left_hamburger_menu_pages(self.left_panel.TRACK_COMPARISON) self.comparison_page.is_title_displayed() events = self.amplitude_helper.wait_and_get_amplitude_events(3) self.amplitude_helper.verify_for_event_type(events[1], self.amplitude_helper.HAMBURGER_MENU["event_type_link"]) assert_that(events[1]["event_properties"]["link_destination"]).is_equal_to(self.amplitude_helper.COMPARISON_PAGE["link_destination"]) self.amplitude_helper.verify_for_event_type(events[-1], self.amplitude_helper.COMPARISON_PAGE["event_type"]) # chart digest page self.left_panel.open_left_hamburger_menu_pages(self.left_panel.CHARTS_DIGEST) self.chart_digest.verify_hover_for_table_header(self.chart_digest.MAJOR_MOVES) events = self.amplitude_helper.wait_and_get_amplitude_events(4) self.amplitude_helper.verify_for_event_type(events[1], self.amplitude_helper.HAMBURGER_MENU["event_type_link"]) assert_that(events[1]["event_properties"]["link_destination"]).is_equal_to(self.amplitude_helper.CHARTS_DIGEST_PAGE["link_destination"]) self.amplitude_helper.verify_for_event_type(events[-1], self.amplitude_helper.CHARTS_DIGEST_PAGE["event_type"]) # starred tracks page self.left_panel.open_left_hamburger_menu_pages(self.left_panel.MY_STARRED_TRACKS) self.my_starred_page.is_title_displayed() events = self.amplitude_helper.wait_and_get_amplitude_events(3) self.amplitude_helper.verify_for_event_type(events[1], self.amplitude_helper.HAMBURGER_MENU["event_type_link"]) assert_that(events[1]["event_properties"]["link_destination"]).is_equal_to(self.amplitude_helper.MY_STARRED_TRACKS_PAGE["link_destination"]) self.amplitude_helper.verify_for_event_type(events[-1], self.amplitude_helper.MY_STARRED_TRACKS_PAGE["event_type"]) # global track priorities self.left_panel.open_left_hamburger_menu_pages(self.left_panel.GLOBAL_TRACK_PRIORITIES) self.gtp.verify_gtp_elements() events = self.amplitude_helper.wait_and_get_amplitude_events(3) self.amplitude_helper.verify_for_event_type(events[1], self.amplitude_helper.HAMBURGER_MENU["event_type_link"]) assert_that(events[1]["event_properties"]["link_destination"]).is_equal_to(self.amplitude_helper.GTP_PAGE["link_destination"]) self.amplitude_helper.verify_for_event_type(events[-1], self.amplitude_helper.GTP_PAGE["event_type"]) # new music friday self.left_panel.open_right_hamburger_menu_pages("New Music Friday") self.nmf.header_is_present() events = self.amplitude_helper.wait_and_get_amplitude_events(3) self.amplitude_helper.verify_for_event_type(events[1], self.amplitude_helper.HAMBURGER_MENU["event_type_link"]) assert_that(events[1]["event_properties"]["link_destination"]).is_equal_to(self.amplitude_helper.NEW_MUSIC_FRIDAY_PAGE["link_destination"]) self.amplitude_helper.verify_for_event_type(events[-1], self.amplitude_helper.NEW_MUSIC_FRIDAY_PAGE["event_type"]) # market overview self.left_panel.open_right_hamburger_menu_pages("Market Overview") self.market_overview.header_is_present() events = self.amplitude_helper.wait_and_get_amplitude_events(3) self.amplitude_helper.verify_for_event_type(events[1], self.amplitude_helper.HAMBURGER_MENU["event_type_link"]) assert_that(events[1]["event_properties"]["link_destination"]).is_equal_to(self.amplitude_helper.MARKET_OVERVIEW_PAGE["link_destination"]) self.amplitude_helper.verify_for_event_type(events[-1], self.amplitude_helper.MARKET_OVERVIEW_PAGE["event_type"]) # buzz self.left_panel.open_right_hamburger_menu_pages("Buzz") self.buzz_page.overview_is_present() events = self.amplitude_helper.wait_and_get_amplitude_events(3) self.amplitude_helper.verify_for_event_type(events[1], self.amplitude_helper.HAMBURGER_MENU["event_type_link"]) assert_that(events[1]["event_properties"]["link_destination"]).is_equal_to(self.amplitude_helper.BUZZ_PAGE["link_destination"]) self.amplitude_helper.verify_for_event_type(events[-1], self.amplitude_helper.BUZZ_PAGE["event_type"]) # account browser self.left_panel.open_right_hamburger_menu_pages("Account Browser") self.account_browser.add_account_is_present() events = self.amplitude_helper.wait_and_get_amplitude_events(3) self.amplitude_helper.verify_for_event_type(events[1], self.amplitude_helper.HAMBURGER_MENU["event_type_link"]) assert_that(events[1]["event_properties"]["link_destination"]).is_equal_to(self.amplitude_helper.ACCOUNT_BROWSER_PAGE["link_destination"]) self.amplitude_helper.verify_for_event_type(events[-1], self.amplitude_helper.ACCOUNT_BROWSER_PAGE["event_type"]) # spotify browse self.left_panel.open_right_hamburger_menu_pages("Spotify Browse") self.spotify_browse.spotify_browse_page_is_opened() events = self.amplitude_helper.wait_and_get_amplitude_events(3) self.amplitude_helper.verify_for_event_type(events[1], self.amplitude_helper.HAMBURGER_MENU["event_type_link"]) assert_that(events[1]["event_properties"]["link_destination"]).is_equal_to(self.amplitude_helper.SPOTIFY_BROWSE_PAGE["link_destination"]) self.amplitude_helper.verify_for_event_type(events[-1], self.amplitude_helper.SPOTIFY_BROWSE_PAGE["event_type"]) # playlist duplication self.left_panel.open_right_hamburger_menu_pages("Playlist Duplication") self.playlist_duplication.playlist_duplication_page_is_opened() events = self.amplitude_helper.wait_and_get_amplitude_events(3) self.amplitude_helper.verify_for_event_type(events[1], self.amplitude_helper.HAMBURGER_MENU["event_type_link"]) assert_that(events[1]["event_properties"]["link_destination"]).is_equal_to(self.amplitude_helper.PLAYLIST_DUPLICATION_PAGE["link_destination"]) self.amplitude_helper.verify_for_event_type(events[-1], self.amplitude_helper.PLAYLIST_DUPLICATION_PAGE["event_type"]) # most added track self.left_panel.open_right_hamburger_menu_pages("Most Added Track") self.most_added_track.title_is_present() events = self.amplitude_helper.wait_and_get_amplitude_events(3) self.amplitude_helper.verify_for_event_type(events[1], self.amplitude_helper.HAMBURGER_MENU["event_type_link"]) assert_that(events[1]["event_properties"]["link_destination"]).is_equal_to(self.amplitude_helper.MOST_ADDED_TRACK_PAGE["link_destination"]) self.amplitude_helper.verify_for_event_type(events[-1], self.amplitude_helper.MOST_ADDED_TRACK_PAGE["event_type"]) # sony music stream chart self.left_panel.open_right_hamburger_menu_pages("Sony Music Stream Chart") self.sony_music_stream_chart.title_is_present() events = self.amplitude_helper.wait_and_get_amplitude_events(3) self.amplitude_helper.verify_for_event_type(events[1], self.amplitude_helper.HAMBURGER_MENU["event_type_link"]) assert_that(events[1]["event_properties"]["link_destination"]).is_equal_to(self.amplitude_helper.SONY_MUSIC_STREAM_CHART_PAGE["link_destination"]) self.amplitude_helper.verify_for_event_type(events[-1], self.amplitude_helper.SONY_MUSIC_STREAM_CHART_PAGE["event_type"]) # about page self.left_panel.open_right_hamburger_menu_pages("About") self.about_page.about_page_is_present() events = self.amplitude_helper.wait_and_get_amplitude_events(3) self.amplitude_helper.verify_for_event_type(events[1], self.amplitude_helper.HAMBURGER_MENU["event_type_link"]) assert_that(events[1]["event_properties"]["link_destination"]).is_equal_to(self.amplitude_helper.ABOUT_PAGE["link_destination"]) self.amplitude_helper.verify_for_event_type(events[-1], self.amplitude_helper.ABOUT_PAGE["event_type"]) # carousel images self.left_panel.open_right_hamburger_menu_pages("Carousel Images") self.carousel_images.carousel_images_is_present() events = self.amplitude_helper.wait_and_get_amplitude_events(3) self.amplitude_helper.verify_for_event_type(events[1], self.amplitude_helper.HAMBURGER_MENU["event_type_link"]) assert_that(events[1]["event_properties"]["link_destination"]).is_equal_to(self.amplitude_helper.CAROUSEL_IMAGES_PAGE["link_destination"]) self.amplitude_helper.verify_for_event_type(events[-1], self.amplitude_helper.CAROUSEL_IMAGES_PAGE["event_type"]) # localizations self.left_panel.open_right_hamburger_menu_pages("Localizations") self.localizations_page.localizations_is_present() events = self.amplitude_helper.wait_and_get_amplitude_events(3) self.amplitude_helper.verify_for_event_type(events[1], self.amplitude_helper.HAMBURGER_MENU["event_type_link"]) assert_that(events[1]["event_properties"]["link_destination"]).is_equal_to(self.amplitude_helper.LOCALIZATIONS_PAGE["link_destination"]) self.amplitude_helper.verify_for_event_type(events[-1], self.amplitude_helper.LOCALIZATIONS_PAGE["event_type"]) # playlists page self.left_panel.open_right_hamburger_menu_pages("Playlists") self.playlists_page.playlists_page_is_present() events = self.amplitude_helper.wait_and_get_amplitude_events(3) self.amplitude_helper.verify_for_event_type(events[1], self.amplitude_helper.HAMBURGER_MENU["event_type_link"]) assert_that(events[1]["event_properties"]["link_destination"]).is_equal_to(self.amplitude_helper.PLAYLISTS_PAGE["link_destination"]) self.amplitude_helper.verify_for_event_type(events[-1], self.amplitude_helper.PLAYLISTS_PAGE["event_type"]) # playlist categories page self.left_panel.open_right_hamburger_menu_pages("Playlist Categories") self.playlist_categories.playlist_categories_page_is_present() events = self.amplitude_helper.wait_and_get_amplitude_events(3) self.amplitude_helper.verify_for_event_type(events[1], self.amplitude_helper.HAMBURGER_MENU["event_type_link"]) assert_that(events[1]["event_properties"]["link_destination"]).is_equal_to(self.amplitude_helper.PLAYLISTS_CATEGORIES_PAGE["link_destination"]) self.amplitude_helper.verify_for_event_type(events[-1], self.amplitude_helper.PLAYLISTS_CATEGORIES_PAGE["event_type"]) # releases push tracks page self.left_panel.open_right_hamburger_menu_pages("Releases & Push Tracks") self.releases_push_tracks_page.page_is_present() events = self.amplitude_helper.wait_and_get_amplitude_events(3) self.amplitude_helper.verify_for_event_type(events[1], self.amplitude_helper.HAMBURGER_MENU["event_type_link"]) assert_that(events[1]["event_properties"]["link_destination"]).is_equal_to(self.amplitude_helper.RELEASES_PUSH_TRACKS_PAGE["link_destination"]) self.amplitude_helper.verify_for_event_type(events[-1], self.amplitude_helper.RELEASES_PUSH_TRACKS_PAGE["event_type"]) # step 4 self.left_panel.open_contact_us() events = self.amplitude_helper.wait_and_get_amplitude_events(2) self.amplitude_helper.verify_for_event_type(events[1], self.amplitude_helper.HAMBURGER_MENU["event_type_link"]) assert_that(events[1]["event_properties"]["link_destination"]).is_equal_to(self.amplitude_helper.CONTACT_US["link_destination"])