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 app.src.pages.amazon_playlist_page import AmazonPlaylistPage from app.src.pages.login_page import LoginPage from app.src.pages.new_music_friday import NewMusicFridayPage 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.amazon_playlist = AmazonPlaylistPage(self.driver) self.nmf = NewMusicFridayPage(self.driver) self.ts = TestStatus(self.driver) @allure.story("AP-8387") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-8187][Amazon Playlist Page] Deeplinking verification. STEPS 1-6") @allure.description("DL on Amazon Playlist Page. STEPS 1-6") def test_amazon_playlist_page_dl_verification_steps_1_6(self): self.loginPage.login_with_worker() self.tp.select_market(AppConfig.get("market")["global"]["name"]) self.amazon_playlist.open_amazon_playlist_page(AppConfig.get("playlist35")["amazon_id"]) # step 1 assert_that(self.tp.get_url()).ends_with(f"""/amazon/playlist/{AppConfig.get("playlist35")["amazon_id"]}?hd_filter_market={AppConfig.get("market")["us"]["market"]}""") # step 2 self.amazon_playlist.change_market(AppConfig.get("market")["canada"]["name"]) self.tp.verify_params_in_url({self.amazon_playlist.hd_filter_market: AppConfig.get("market")["canada"]["market"]}) # step 3 self.tp.select_market(AppConfig.get("market")["australia"]["name"]) self.tp.verify_params_in_url({self.amazon_playlist.hd_filter_market: AppConfig.get("market")["australia"]["market"]}) # step 4 self.tp.select_market(AppConfig.get("market")["albania"]["name"]) self.tp.verify_params_in_url({self.amazon_playlist.hd_filter_market: AppConfig.get("market")["us"]["market"]}) # step 5 self.tp.refresh() market_ui = self.amazon_playlist.get_selected_market() assert_that(market_ui).is_equal_to(AppConfig.get("market")["us"]["name"]) self.tp.verify_params_in_url({self.amazon_playlist.hd_filter_market: AppConfig.get("market")["us"]["market"]}) # step 6 self.tp.go_back() market_ui = self.amazon_playlist.get_selected_market() assert_that(market_ui).is_equal_to(AppConfig.get("market")["australia"]["name"]) self.tp.verify_params_in_url({self.amazon_playlist.hd_filter_market: AppConfig.get("market")["australia"]["market"]}) self.tp.go_back() market_ui = self.amazon_playlist.get_selected_market() assert_that(market_ui).is_equal_to(AppConfig.get("market")["canada"]["name"]) self.tp.verify_params_in_url({self.amazon_playlist.hd_filter_market: AppConfig.get("market")["canada"]["market"]}) self.tp.go_back() market_ui = self.amazon_playlist.get_selected_market() assert_that(market_ui).is_equal_to(AppConfig.get("market")["us"]["name"]) self.tp.verify_params_in_url({self.amazon_playlist.hd_filter_market: AppConfig.get("market")["us"]["market"]}) @allure.story("AP-8387") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-8187][Amazon Playlist Page] Deeplinking verification. STEPS 7-10") @allure.description("DL on Amazon Playlist Page. STEPS 7-10") def test_amazon_playlist_page_dl_verification_steps_7_10(self): self.loginPage.login_with_worker() self.tp.select_market(AppConfig.get("market")["global"]["name"]) self.amazon_playlist.open_amazon_playlist_page(AppConfig.get("playlist38")["amazon_id"]) # step 7 url_step7 = self.tp.get_url() playlist_name = self.amazon_playlist.get_metadata()["title"] assert_that(playlist_name).is_equal_to(AppConfig.get("playlist38")["name"]) # step 8 self.amazon_playlist.change_market(AppConfig.get("market")["uk"]["name"]) self.tp.refresh() self.tp.verify_params_in_url({self.amazon_playlist.hd_filter_market: AppConfig.get("market")["uk"]["market"]}) # step 9 url_before_step9 = self.tp.get_url() self.amazon_playlist.tl_change_date(4) assert_that(url_before_step9).is_equal_to(self.tp.get_url()) self.amazon_playlist.filter_table("abc") assert_that(url_before_step9).is_equal_to(self.tp.get_url()) self.amazon_playlist.sort_table_by_column("days-in-playlist") assert_that(url_before_step9).is_equal_to(self.tp.get_url()) # step 10 self.tp.change_param_in_url_new(self.amazon_playlist.hd_filter_market, "casf") self.amazon_playlist.get_selected_market() assert_that(url_step7).is_equal_to(self.tp.get_url()) @allure.issue("https://data-analytics.atlassian.net/browse/AP-8726") @pytest.mark.flaky(reruns=0) @allure.story("AP-8387") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-8187][Amazon Playlist Page] Deeplinking verification. STEP 11") @allure.description("DL on Amazon Playlist Page. STEP 11") def test_amazon_playlist_page_dl_verification_step_11(self): self.loginPage.login_with_worker() self.tp.select_market(AppConfig.get("market")["global"]["name"]) # step 11 self.amazon_playlist.open_amazon_playlist_page(AppConfig.get("playlist38")["amazon_id"][:-4], False) self.nmf.verify_404()