import json import unittest from argparse import Namespace import allure import pytest from parameterized import parameterized from ui_automation_framework.core import TestStatus from ui_automation_framework.utils import AppConfig from app.api_client import ApiClient from app.src.pages.amazon_playlist_page import AmazonPlaylistPage 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): playlist35 = json.loads(json.dumps(AppConfig.get("playlist35")), 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.trackPage = TrackPage(self.driver) self.api_client = ApiClient() self.ts = TestStatus(self.driver) @parameterized.expand( [ ("us", "", ""), ("australia", "4", ""), ("us", "", "a"), ] ) @allure.story("AP-8369") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-8034] [Amazon Playlists][Playlist Page] Export verification.") @allure.description("TC verifies export file with track data in the Amazon playlist") def test_amazon_playlist_page_export_verification(self, market, date, search): self.loginPage.login_with_worker() self.trackPage.select_market(AppConfig.get("market")[market]["name"]) self.amazon_playlist.open_amazon_playlist_page(self.playlist35.amazon_id) if date != "": self.amazon_playlist.tl_change_date(int(date)) if search != "": self.amazon_playlist.filter_table("!@#$%^&") # step 13 self.amazon_playlist.verify_export_inactive() self.amazon_playlist.filter_table(search, clean_up=True) # step 2-3 self.amazon_playlist.verify_export_hover() # step 4-7, 9-11, 14 self.amazon_playlist.verify_export(date=date) # NOT AUTOMATED STEPS - 1, 8, 12