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.global_track_priorities_page import GlobalTrackPrioritiesPage from app.src.pages.left_navigation_panel import LeftNavigationPanel 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): date = "2018-12-14" @pytest.fixture(autouse=True) def classSetup(self): self.loginPage = LoginPage(self.driver) self.topChartsPage = TopChartsPage(self.driver) self.gtp = GlobalTrackPrioritiesPage(self.driver) self.trackPage = TrackPage(self.driver) self.top_menu = LeftNavigationPanel(self.driver) self.api_client = ApiClient() self.ts = TestStatus(self.driver) @allure.story("AP-6215") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-5821][Charts] Trending Videos tab.") @allure.description("""TC verifies the Trending Music Videos tab on the Charts Page and data there""") def test_trending_tab(self): self.loginPage.login_with_worker() self.trackPage.select_market(AppConfig.get("market")["global"]["name"]) # step 1 self.top_menu.hamburger_menu_click() self.top_menu.is_page_link_present_in_menu(section=self.top_menu.TOPLISTS_SECTION, page=self.top_menu.TOP_CHARTS_PAGE, link=self.top_menu.TOP_CHARTS_LINK) # step 2 self.top_menu.open_page_from_top_menu(page=self.top_menu.TOP_CHARTS_PAGE) self.topChartsPage.top_chart_page_is_opened() # step 3 self.topChartsPage.verify_tabs() # step 4 self.topChartsPage.verify_chosen_tab_highlighted(self.topChartsPage.YOUTUBE_TYPE, False) # step 5 self.topChartsPage.switch_tab(self.topChartsPage.YOUTUBE_TYPE) self.topChartsPage.verify_chosen_tab_highlighted(self.topChartsPage.YOUTUBE_TYPE) # step 7-8 self.topChartsPage.verify_trending_info_icon() self.topChartsPage.verify_trending_tab_default_view() # step 9 default_date_api = self.api_client.get_charts_trending_dates_markets()["charts"]["max"] self.gtp.verify_collapsed_datepicker(expected_selected_date=default_date_api, location="top_charts") # step 10 self.topChartsPage.get_trending_tab_clock_tooltip(date=default_date_api) # step 12 self.topChartsPage.select_trending_market(AppConfig.get("market")["us"]["name"]) trending_market = self.topChartsPage.get_trending_market() assert_that(trending_market).is_equal_to(AppConfig.get("market")["us"]["name"]) # step 13 self.topChartsPage.select_trending_market(AppConfig.get("market")["zimbabwe"]["name"]) self.gtp.select_date_from_datepicker_grid(date=self.date, location="top_charts") self.topChartsPage.top_charts_verify_no_results_screen() # NOT AUTOMATED STEPS: 6, 11, 12 (skeleton), 14, 15