import random import unittest import allure import pytest from parameterized import parameterized from ui_automation_framework.core import TestStatus from ui_automation_framework.utils import AppConfig from app.api_client import ApiClient from app.src.pages.login_page import LoginPage from app.src.pages.position_playlist_popup import PositionPlaylistPopup from app.src.pages.track_page import TrackPage @pytest.mark.usefixtures("set_up", "one_time_set_up") class DeepLinkingTrackPageTest(unittest.TestCase): @pytest.fixture(autouse=True) def classSetup(self): self.loginPage = LoginPage(self.driver) self.tp = TrackPage(self.driver) self.pip = PositionPlaylistPopup(self.driver) self.api_client = ApiClient() self.ts = TestStatus(self.driver) @parameterized.expand( [ (AppConfig.get("track6")["id"], "first_playlist", "track", AppConfig.get("market")["us"]), (AppConfig.get("track6")["id"], "previous_playlists_tab", "track", AppConfig.get("market")["us"]), (AppConfig.get("playlist11")["id"], "spotify-playlist-details-tab-tracks", "playlist", AppConfig.get("market")["us"]), ] ) @allure.story("AP-5944") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-3740/1] Spotify Playlist Details popup verification") @allure.description("TC verifies main elements on Position in Playlist popup on Track and Spotify Playlist pages.") def test_spotify_popup_details_verification(self, id, tab, page, market): self.loginPage.login_with_worker() self.tp.open_spotify_page(id, page) self.tp.select_market(market["name"]) self.tp.scroll_to_track_details() owner_category = "Spotify Radio" if page == "track": self.tp.td_switch_to_playlist(tab) self.tp.td_change_owner_category_to(owner_category) # step 1, 12-13 index_popup = random.choice([0, 1, 2, 3, 4, 5]) self.pip.open_popup(index=index_popup) # step 2 self.pip.verify_elements() # step 3 self.pip.verify_owner_category("Spotify") # step 4 self.pip.verify_chart_elements(market["api"]) # step 5 self.pip.close_popup() # step 6-9 if page == "track": self.tp.td_switch_to_playlist(tab) self.pip.open_popup(index=index_popup) self.pip.verify_links() # step 10 self.pip.close_popup() self.tp.select_market(AppConfig.get("market")["global"]["name"]) if page == "track": self.tp.td_switch_to_playlist(tab) self.tp.td_change_owner_category_to(owner_category) self.pip.open_popup(index=index_popup) # step 11 self.tp.select_month_period("August 2017") self.pip.verify_no_data() # NOT AUTOMATED STEPS 14-15