import logging import unittest import allure import pytest 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.api_client import ApiClient from app.mysql_db_client_custom import MySqlClient from app.src.pages.artist_page import ArtistPage from app.src.pages.chart_digest import ChartDigestPage from app.src.pages.left_navigation_panel import LeftNavigationPanel 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 TopChartsPageTest(unittest.TestCase): log = cl.Logger(logging.DEBUG) track4 = AppConfig.get("track4") @pytest.fixture(autouse=True) def classSetup(self): self.loginPage = LoginPage(self.driver) self.left_panel = LeftNavigationPanel(self.driver) self.chart_digest = ChartDigestPage(self.driver) self.trackPage = TrackPage(self.driver) self.artist_page = ArtistPage(self.driver) self.api_client = ApiClient() self.sql_client = MySqlClient() self.ts = TestStatus(self.driver) @allure.story("AP-1656") @allure.severity(allure.severity_level.NORMAL) @allure.title("Verification of displaying Sony label for tracks that Sony " "has rights for only in specific countries") @allure.description( """TC verifies that Sony label is shown only for specific markets where SME has rights for the album that the track belongs to.""" ) def test_sony_label_for_countries(self): self.loginPage.login_with_worker() self.loginPage.is_logged_in() aut0_id = self.loginPage.get_auth0_id() self.sql_client.clear_most_visited_history(id=aut0_id) self.trackPage.select_market(AppConfig.get("market")["australia"]["name"]) # step 1-6 for t in list(range(0, 5)): self.trackPage.open_spotify_track_page(self.track4["id2"]) # title = self.trackPage.is_track_page_title_present(self.track4["name"]) self.trackPage.verify_sony_label(self.track4["name"]) # step 7-8 self.chart_digest.open_charts_digest_page() mv_cards = self.chart_digest.get_most_visited_cards() self.ts.markFinal( self.track4["name"] and "SONY" in mv_cards[0], "sony track: {} is displayed as most visited".format(self.track4["name"]), ) # step 9-10 self.trackPage.select_market(AppConfig.get("market")["canada"]["name"]) mv_cards = self.chart_digest.get_most_visited_cards() self.ts.markFinal(self.track4["name"] in mv_cards[0], "track: {} is displayed as most visited".format(self.track4["name"])) self.ts.markFinal("SONY" not in mv_cards[0], "sony: {} is not displayed as most visited".format(self.track4["name"])) # step 11 self.trackPage.select_market(AppConfig.get("market")["global"]["name"]) mv_cards = self.chart_digest.get_most_visited_cards() self.ts.markFinal( self.track4["name"] and "SONY" in mv_cards[0], "sony track: {} is displayed as most visited".format(self.track4["name"]), )