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.src.pages.amazon_playlist_page import AmazonPlaylistPage from app.src.pages.apple_playlist_page import ApplePlaylistPage 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 ApplePlaylistPageTest(unittest.TestCase): playlist33 = json.loads(json.dumps(AppConfig.get("playlist33")), object_hook=lambda d: Namespace(**d)) us = json.loads(json.dumps(AppConfig.get("market")["us"]), object_hook=lambda d: Namespace(**d)) @pytest.fixture(autouse=True) def classSetup(self): self.loginPage = LoginPage(self.driver) self.amazon_playlist = AmazonPlaylistPage(self.driver) self.ap = ApplePlaylistPage(self.driver) self.tp = TrackPage(self.driver) self.ts = TestStatus(self.driver) @allure.story("AP-8378") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-8040][Amazon Playlist Page> Details Pop Up] General verification.") @allure.description("TC verifies elements and general view of the Amazon Playlist Details popup.") def test_amazon_popup_general_verification(self): self.loginPage.login_with_worker() self.tp.select_market(self.us.name) self.amazon_playlist.open_amazon_playlist_page(self.playlist33.amazon_id) playlist_page_url = self.tp.get_url() # step 1 self.amazon_playlist.open_popup() # step 3 self.ap.verify_popup_elements() # step 5 self.ap.popup_click_on_track_name() self.tp.is_track_title_present() # step 6 self.tp.open_url(playlist_page_url) self.amazon_playlist.open_popup() url_before = self.tp.get_url() self.amazon_playlist.click_on_name("artist") url_after = self.tp.get_url() assert_that(url_before).is_equal_to(url_after) # step 7 self.amazon_playlist.click_on_name("playlist") self.amazon_playlist.is_opened() # step 8 self.tp.open_url(playlist_page_url) self.amazon_playlist.open_popup() self.amazon_playlist.click_element("(//*[text()='Amazon Curators'])[1]", "xpath") assert_that(playlist_page_url).is_equal_to(self.tp.get_url()) # step 9 self.amazon_playlist.close() # NOT AUTOMATED STEPS - 2, 4, 10