import json import unittest from argparse import Namespace import allure import pytest from ui_automation_framework.core import TestStatus from ui_automation_framework.utils import AppConfig from app.src.pages.login_page import LoginPage from app.src.pages.spotify_playlist_page import SpotifyPlaylistPage from app.src.pages.track_page import TrackPage @pytest.mark.usefixtures("set_up", "one_time_set_up") class SpotifyPlaylistPageTest(unittest.TestCase): playlist39 = json.loads(json.dumps(AppConfig.get("playlist39")), object_hook=lambda d: Namespace(**d)) @pytest.fixture(autouse=True) def classSetup(self): self.loginPage = LoginPage(self.driver) self.spotify_playlist = SpotifyPlaylistPage(self.driver) self.trackPage = TrackPage(self.driver) self.ts = TestStatus(self.driver) @allure.story("AP-9864") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-9709]Spotify Playlist. Sticky header and 'Back to Top' button verification") @allure.description("TC verifies sticky header and ‘Back to Top’ button on the Spotify Playlist page.") def test_spotify_sticky_header_verifications(self): self.loginPage.login_with_worker() self.spotify_playlist.open_spotify_playlist_page(self.playlist39.id) # steps 1-2 self.trackPage.scroll_to_track_details() self.spotify_playlist.table_scroll_down() self.spotify_playlist.verify_sticky_header() # step 3 self.spotify_playlist.click_back_to_top() self.spotify_playlist.is_title_displayed() # step 4 self.trackPage.scroll_to_track_details() self.spotify_playlist.table_scroll_down() self.spotify_playlist.verify_sticky_header() # step 5 self.spotify_playlist.tl_choose_date("05/10/22") self.spotify_playlist.table_scroll_down() self.spotify_playlist.verify_sticky_header(current=False) self.spotify_playlist.click_back_to_top() self.spotify_playlist.is_title_displayed()