import unittest from itertools import chain 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.api_client import ApiClient from app.mysql_db_client_custom import MySqlClient from app.src.pages.left_navigation_panel import LeftNavigationPanel from app.src.pages.login_page import LoginPage from app.src.pages.new_music_friday import NewMusicFridayPage from app.src.pages.new_music_friday_popup import NewMusicFridayPopup from app.src.pages.track_page import TrackPage @pytest.mark.usefixtures("set_up", "one_time_set_up") class NewMusicFridayPageTest(unittest.TestCase): @pytest.fixture(autouse=True) def classSetup(self): self.loginPage = LoginPage(self.driver) self.nmf = NewMusicFridayPage(self.driver) self.nmf_popup = NewMusicFridayPopup(self.driver) self.left_panel = LeftNavigationPanel(self.driver) self.tp = TrackPage(self.driver) self.api_client = ApiClient() self.sql_client = MySqlClient() self.ts = TestStatus(self.driver) @allure.story("AP-6024") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-3985] NMF -> Pop-Up general checks.") @allure.description("That user can see full track NMF data by opening Popup on NMF page in the end of markets list.") def test_nmf_popup_general_checks_verification(self): self.loginPage.login_with_worker() self.tp.select_market(AppConfig.get("market")["us"]["name"]) self.left_panel.open_right_hamburger_menu_pages(self.left_panel.link_nmf) self.nmf.header_is_present() self.nmf.get_track_indicators() self.nmf.select_date_in_date_dd(1) # step 1 track_indicators_nmf = self.nmf.get_track_indicators() self.nmf_popup.open() # step 3 self.nmf_popup.verify_title() # step 4 self.nmf_popup.verify_track_art() # steps 5-7 self.nmf_popup.verify_track_name_and_hover() # steps 8-10 self.nmf_popup.verify_artist_name_and_hover() # step 12-13 home_market = tuple(self.nmf_popup.get_home_market_and_verify(True).values()) positions_all = self.nmf_popup.get_region_positions() assert_that(list(chain.from_iterable([n.keys() for n in positions_all.values()]))).contains(home_market[1].upper()) assert_that(list(chain.from_iterable([n.values() for n in positions_all.values()]))).contains(home_market[0]) # step 14 track_indicators_nmf_popup = self.nmf_popup.get_track_indicators() assert_that(track_indicators_nmf_popup).is_equal_to(track_indicators_nmf) # step 15, 21 self.nmf_popup.get_and_verify_region_markets() # step 22 self.nmf_popup.close() self.nmf.header_is_present() # NOT AUTOMATED - STEP 2, 11, 16-20