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): market_ua = "Ukraine" city_lviv = "Lviv" @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.issue("https://data-analytics.atlassian.net/browse/AP-7979") @pytest.mark.flaky(reruns=0) @allure.story("AP-7585") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-5822][Shazam] Top-200 chart loaders and states") @allure.description("TC verifies skeletons and different states on Top Charts → Shazam Daily Top 200.") def test_top_shazam_loaders_and_states_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 2 self.topChartsPage.wait_for_table_load() url_step_2 = self.topChartsPage.get_url() self.trackPage.change_param_in_url_new(self.topChartsPage.date, "2016-11-01") self.topChartsPage.verify_no_data() # step 5 self.topChartsPage.open_url(url_step_2) date_before = self.topChartsPage.get_shazam_date_ui() self.topChartsPage.select_shazam_market(self.market_ua) self.topChartsPage.select_shazam_city(self.city_lviv) date_after = self.topChartsPage.get_shazam_date_ui() assert_that(date_before).is_equal_to(date_after) # step 6 self.trackPage.change_param_in_url_new(self.topChartsPage.date, "2021-11-01") market_ui = self.topChartsPage.get_shazam_market() city_ui = self.topChartsPage.get_shazam_city() assert_that(market_ui).is_equal_to(self.market_ua) assert_that(city_ui).is_equal_to(self.city_lviv) # step 7 date_before = self.topChartsPage.get_shazam_date_ui() self.topChartsPage.select_shazam_market("Sweden") date_after = self.topChartsPage.get_shazam_date_ui() assert_that(date_before).is_equal_to(date_after) # NOT AUTOMATED - STEPS 1, 3, 4