import unittest import allure import pytest from ui_automation_framework.core import TestStatus from app.api_client import ApiClient 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.ts = TestStatus(self.driver) @allure.story("AP-5972") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-3984] NMF. Sticky header verification") @allure.description("TC verifies sticky header on NMF page.") def test_nmf_sticky_header_verification(self): self.loginPage.login_with_worker() self.left_panel.open_right_hamburger_menu_pages(self.left_panel.link_nmf) self.nmf.header_is_present() self.nmf.select_date_in_date_dd(1) # step 1-3 nmf_dates = self.api_client.get_playlists_summary_nmf()["available_dates"] self.nmf.scroll_to_last_visible_track() self.nmf.verify_sticky_headers(nmf_dates[2]) # step 4 self.nmf.verify_clock_icon_hover() # step 5 self.nmf.sort_by(self.nmf.sort_track_position) self.nmf.scroll_to_last_visible_track() self.nmf.verify_sticky_headers(nmf_dates[2], self.nmf.sort_track_position) # step 8 self.tp.change_param_in_url_new(self.nmf.nmf_date, nmf_dates[2]) self.nmf.scroll_to_last_visible_track() self.nmf.verify_sticky_headers(nmf_dates[2]) # CAN NOT BE AUTOMATED - STEPS 6-7