import json import unittest from argparse import Namespace 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.src.pages.login_page import LoginPage from app.src.pages.position_playlist_popup import PositionPlaylistPopup 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.api_client = ApiClient() self.pip = PositionPlaylistPopup(self.driver) self.ts = TestStatus(self.driver) @allure.story("AP-9938") @allure.severity(allure.severity_level.NORMAL) @allure.title("Add test for Personolized Playlist verification.") @allure.description("Add test for Personolized Playlist verification.") def test_spotify_personalized_playlist_verifications(self): self.loginPage.login_with_worker() self.spotify_playlist.open_spotify_playlist_page(self.playlist39.id) # step 1 self.spotify_playlist.is_playlist_personalized() # step 2 search_request_url = "apollo-api/spotify/personalized-playlists/?playlist_ids=" events = self.trackPage.get_events_from_console(search_request_url) assert_that(len(events)).is_greater_than_or_equal_to(1) # step 3 self.trackPage.scroll_to_track_details() self.pip.open_popup() self.pip.is_popup_personalized()