import logging import unittest import allure import pytest from assertpy import assert_that from parameterized import parameterized from ui_automation_framework.core import TestStatus from ui_automation_framework.utils import AppConfig from ui_automation_framework.utils import logger as cl from ...pages.album_page import AlbumPage from ...pages.login_page import LoginPage from ...pages.track_page import TrackPage @pytest.mark.usefixtures("set_up", "one_time_set_up") class DeepLinkingTrackPageTest(unittest.TestCase): log = cl.Logger(logging.DEBUG) @pytest.fixture(autouse=True) def classSetup(self): self.loginPage = LoginPage(self.driver) self.tp = TrackPage(self.driver) self.ap = AlbumPage(self.driver) self.ts = TestStatus(self.driver) @parameterized.expand( [ ("track", "", AppConfig.get("track40")["id"], AppConfig.get("dsp")["spotify"]), ("track", "", AppConfig.get("track40")["id"], AppConfig.get("dsp")["amazon"]), ("track", "", AppConfig.get("track40")["id"], AppConfig.get("dsp")["apple"]), ("track", "", AppConfig.get("track40")["id"], AppConfig.get("dsp")["by_dsp"]), ("track", "", AppConfig.get("track40")["id"], AppConfig.get("dsp")["total_streams"]), ("album", "Album", AppConfig.get("album2")["id"], AppConfig.get("dsp")["spotify"]), ("album", "Album", AppConfig.get("album2")["id"], AppConfig.get("dsp")["apple"]), ("album", "Track", AppConfig.get("album2")["id"], AppConfig.get("dsp")["spotify"]), ("album", "Track", AppConfig.get("album2")["id"], AppConfig.get("dsp")["apple"]), ("album", "Track", AppConfig.get("album2")["id"], AppConfig.get("dsp")["total_streams"]), ] ) @allure.story("AP-4784") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-4429] Regions verification in country selection - STEPS 1-8") @allure.description("""TC verifies that user can select a group of countries by clicking on respective region name. STEPS 1-8""") def test_regions_in_country_selection_verification_steps_1_8(self, page_type, album_tab, id, dsp): self.loginPage.login_with_worker() self.tp.open_spotify_page(id=id, page_type=page_type) self.tp.select_market(AppConfig.get("market")["us"]["name"]) if page_type == "album": self.ap.switch_to_tab(album_tab) # step 1 self.tp.markets_dd_click() self.tp.graph_market_dd_verify_regions() self.tp.markets_dd_click() self.tp.select_dsp(dsp) # step 2-7 for r, a in zip( [self.tp.REGION_ASIA, self.tp.REGION_CIS, self.tp.REGION_EUROPE, self.tp.REGION_LATIN_IBERIA, self.tp.REGION_MIDDLE_EAST, self.tp.REGION_OCEANIA, self.tp.REGION_AFRICA, self.tp.REGION_EX_US, self.tp.REGION_UK, self.tp.REGION_NORTH_AMERICA], ["asia", "cis", "europe", "latin_iberia", "middle_east", "oceania", "africa", "ex_us", "uk", "north_america"], ): self.tp.stream_and_source_choose_region(r) self.tp.markets_dd_click() markets_count = self.tp.graph_verify_selected_countries_and_hover(r, AppConfig.get("regions")[a]["countries"]) self.tp.markets_dd_click() # step 8 ap = False if page_type == "album": ap = True self.ap.verify_export_album_track(f"{markets_count} markets", ap, album_tab, [AppConfig.get("market")["us"]["market"], AppConfig.get("market")["canada"]["market"]]) @parameterized.expand( [ ("track", "", AppConfig.get("track40")["id"], AppConfig.get("dsp")["spotify"]), ("track", "", AppConfig.get("track40")["id"], AppConfig.get("dsp")["amazon"]), ("track", "", AppConfig.get("track40")["id"], AppConfig.get("dsp")["apple"]), ("track", "", AppConfig.get("track40")["id"], AppConfig.get("dsp")["by_dsp"]), ("track", "", AppConfig.get("track40")["id"], AppConfig.get("dsp")["total_streams"]), ("album", "Album", AppConfig.get("album2")["id"], AppConfig.get("dsp")["spotify"]), ("album", "Album", AppConfig.get("album2")["id"], AppConfig.get("dsp")["apple"]), ("album", "Album", AppConfig.get("album2")["id"], AppConfig.get("dsp")["by_dsp"]), ("album", "Album", AppConfig.get("album2")["id"], AppConfig.get("dsp")["total_streams"]), ("album", "Track", AppConfig.get("album2")["id"], AppConfig.get("dsp")["spotify"]), ("album", "Track", AppConfig.get("album2")["id"], AppConfig.get("dsp")["apple"]), ("album", "Track", AppConfig.get("album2")["id"], AppConfig.get("dsp")["total_streams"]), ] ) @allure.story("AP-4784") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-4429] Regions verification in country selection - STEPS 9-14") @allure.description("""TC verifies that user can select a group of countries by clicking on respective region name. STEPS 9-14""") def test_regions_in_country_selection_verification_steps_9_14(self, page_type, album_tab, id, dsp): self.loginPage.login_with_worker() self.tp.open_spotify_page(id=id, page_type=page_type) self.tp.select_market(AppConfig.get("market")["us"]["name"]) if page_type == "album": self.ap.switch_to_tab(album_tab) # step 9-10, 14 self.tp.select_dsp(dsp) self.tp.stream_and_source_choose_region(self.tp.REGION_ASIA) self.tp.market_dd_choose_few_countries(param=[AppConfig.get("market")["us"]["name"]], uncheck_selected=False) market_graph = self.tp.graph_get_selected_market() assert_that(" Markets" in market_graph).is_true() # step 11 self.tp.stream_and_source_choose_region(self.tp.REGION_EX_US) market_graph = self.tp.graph_get_selected_market() assert_that(market_graph).is_equal_to(self.tp.REGION_EX_US) # step 12 self.tp.graph_region_verify_bold(self.tp.REGION_EX_US) # step 13 self.tp.stream_and_source_deselect_countries([AppConfig.get("market")["canada"]["name"]]) self.tp.graph_region_verify_bold(self.tp.REGION_EX_US, False)