import random import unittest 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.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): city_darwin = "Darwin" @pytest.fixture(autouse=True) def classSetup(self): self.loginPage = LoginPage(self.driver) self.topChartsPage = TopChartsPage(self.driver) self.trackPage = TrackPage(self.driver) self.api_client = ApiClient() self.ts = TestStatus(self.driver) @allure.story("AP-7621") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-5825][Top Charts. Shazam] Pop-up General checks") @allure.description("TC verifies that users can open the pop-up on the Top Charts page → 'Shazam Daily Top 200' tab.") def test_top_shazam_popup_general_checks_verification(self): self.loginPage.login_with_worker() self.trackPage.select_market(AppConfig.get("market")["global"]["name"]) self.topChartsPage.open_top_chart_page() self.topChartsPage.switch_tab(self.topChartsPage.SHAZAM_TYPE) # step 1 self.topChartsPage.shazam_verify_popup_icon() # step 2 position = random.choice([1, 2, 4, 5, 6]) tab_days = self.topChartsPage.get_all_from_table_column_shazam("days-on-chart")[position - 1] self.topChartsPage.shazam_open_popup(position) # step 4 self.topChartsPage.shazam_popup_verify_elements() # step 5 popup_days = int(self.topChartsPage.get_text("top-charts-shazam-modal-window-day-count-label").split(" ")[0]) assert_that(tab_days).is_equal_to(popup_days) # steps 6, 8 self.topChartsPage.shazam_popup_verify_track_name() # steps 9, 11 self.topChartsPage.shazam_popup_verify_artist_name() # step 12 self.topChartsPage.shazam_close_popup() # step 13 self.topChartsPage.select_shazam_market(AppConfig.get("market")["australia"]["name"]) self.topChartsPage.select_shazam_city(self.city_darwin) self.topChartsPage.shazam_open_popup(position) self.topChartsPage.verify_chart_indicated(AppConfig.get("market")["australia"]["name"], self.city_darwin) # step 14 self.trackPage.select_month_period("August 2017") self.topChartsPage.verify_pop_up_no_data() # NOT AUTOMATED - STEPS - 3, 7, 10, 15-17