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.src.pages.login_page import LoginPage 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.ts = TestStatus(self.driver) @parameterized.expand([("apple", str(AppConfig.get("track14")["apple_id"])), ("spotify", AppConfig.get("track14")["id"])]) @allure.story("AP-4030") @allure.severity(allure.severity_level.NORMAL) @allure.title("Deep Linking: Apple Playlists toggle") @allure.description("TC verifies that the correct state of Playlists toggle is set in the URL.") def test_apple_playlist_toggle(self, page, id): self.loginPage.login_with_worker() self.tp.open_track_page(page, id, AppConfig.get("market")["global"]["name"]) self.tp.select_market(AppConfig.get("market")["global"]["name"]) # step 1 self.tp.verify_selected_td_markets_toggle(self.tp.MARKETS_TOP["tab"]) self.tp.verify_params_not_in_url([self.tp.tr_det_top_markets]) # step 2 self.tp.td_switch_market_toggle(self.tp.MARKETS_ALL["tab"]) self.tp.verify_params_in_url({self.tp.tr_det_top_markets: self.tp.MARKETS_ALL["url"]}) # step 3 self.tp.refresh() self.tp.verify_selected_td_markets_toggle(self.tp.MARKETS_ALL["tab"]) # step 4 self.tp.td_switch_to_playlist(self.tp.TD_PREVIOUS_PLAYLIST_TAB) self.tp.verify_params_in_url({self.tp.tr_det_tab: self.tp.MARKETS_ALL["url"]}) self.tp.verify_params_not_in_url([self.tp.tr_det_top_markets]) # step 5 self.tp.go_back() self.tp.verify_params_in_url({self.tp.tr_det_top_markets: self.tp.MARKETS_ALL["url"]}) self.tp.verify_selected_td_markets_toggle(self.tp.MARKETS_ALL["tab"]) # step 6 self.tp.td_switch_market_toggle(self.tp.MARKETS_TOP["tab"]) self.tp.verify_params_in_url({self.tp.tr_det_top_markets: self.tp.MARKETS_TOP["url"]}) # step 7 self.tp.refresh() self.tp.verify_selected_td_markets_toggle(self.tp.MARKETS_TOP["tab"]) self.tp.verify_params_in_url({self.tp.tr_det_top_markets: self.tp.MARKETS_TOP["url"]}) # step 8 self.tp.td_change_owner_market_to([AppConfig.get("market")["brazil"]["name"]]) self.tp.verify_selected_td_markets_toggle(self.tp.MARKETS_ALL["tab"]) self.tp.verify_params_in_url( { self.tp.market: AppConfig.get("market")["global"]["url"], self.tp.tr_det_top_markets: self.tp.MARKETS_ALL["url"], self.tp.tr_det_owner_market: AppConfig.get("market")["brazil"]["market"], } ) # step 9 self.tp.td_change_owner_market_to([AppConfig.get("market")["brazil"]["name"]]) self.tp.verify_selected_td_markets_toggle(self.tp.MARKETS_ALL["tab"]) self.tp.verify_params_in_url( { self.tp.market: AppConfig.get("market")["global"]["url"], self.tp.tr_det_top_markets: self.tp.MARKETS_ALL["url"], self.tp.tr_det_owner_market: AppConfig.get("market")["brazil"]["market"], } )