import unittest import allure import pytest from parameterized import parameterized 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.top_charts_page import TopChartsPage from app.src.pages.track_page import TrackPage @pytest.mark.usefixtures("set_up", "one_time_set_up") class TopChartsPageTest(unittest.TestCase): melbourne = "Melbourne" @pytest.fixture(autouse=True) def classSetup(self): self.loginPage = LoginPage(self.driver) self.topChartsPage = TopChartsPage(self.driver) self.trackPage = TrackPage(self.driver) self.ts = TestStatus(self.driver) @parameterized.expand( [ ("market", "Global", "Global"), ("market", "Australia", "au"), ("city", "New York City", "us"), ("date", "2022-01-17", "us"), ("sorting", "name", "us"), ("filter", "a", "us"), ("filter", "#$%^", "us"), ] ) @allure.story("AP-7627") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-5824][Shazam] Export verification.") @allure.description("Export functionality on Shazam charts tab.") def test_top_shazam_tab_export_verification(self, option, value, market_code): self.loginPage.login_with_worker() if option == "market": m = value else: m = AppConfig.get("market")[market_code.lower()]["name"] self.trackPage.select_market(m) self.topChartsPage.open_top_chart_page() self.topChartsPage.switch_tab(self.topChartsPage.SHAZAM_TYPE) # steps 2-3 if value == "Global": self.topChartsPage.verify_export_button(button="shazam") # step 9, 12-13 self.change_option_with_value(option, value) # step 4-8 self.topChartsPage.shazam_tab_verify_export(market_code=market_code) @allure.step("Top Charts - Shazam tab - change option with value") def change_option_with_value(self, option, value): if option == "market": self.topChartsPage.select_shazam_market(value) elif option == "city": self.topChartsPage.select_shazam_city(value) elif option == "date": self.topChartsPage.wait_for_table_load() self.trackPage.change_param_in_url_new(option, value) self.topChartsPage.wait_for_table_load() elif option == "sorting": self.topChartsPage.sort_by_column(self.topChartsPage.SHAZAM_TYPE, value) elif option == "filter": self.topChartsPage.shazam_filter_by(value) # NOT AUTOMATED - STEPS - 1, 10, 11, 14 and design checks