import datetime 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.chart_digest import ChartDigestPage from app.src.pages.global_track_priorities_page import GlobalTrackPrioritiesPage from app.src.pages.login_page import LoginPage from app.src.pages.track_page import TrackPage from app.src.pages.tt_dashboard_page import TTDashboardPage @pytest.mark.usefixtures("set_up", "one_time_set_up") class TTDashboardPageTest(unittest.TestCase): date_1 = "2022-03-17" @pytest.fixture(autouse=True) def classSetup(self): self.loginPage = LoginPage(self.driver) self.tt_dashboard = TTDashboardPage(self.driver) self.trackPage = TrackPage(self.driver) self.chart_digest = ChartDigestPage(self.driver) self.gtp = GlobalTrackPrioritiesPage(self.driver) self.api_client = ApiClient() self.ts = TestStatus(self.driver) @allure.story("AP-7509") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-6910][TT Dashboard> By Creations Weekly] Elements verification.") @allure.description("TC Verifies 'Sony TikTok Toplists’ → By Creation tab → Weekly list.") def test_tt_dashboard_bc_7days_page_elements_verification(self): self.loginPage.login_with_worker() self.trackPage.select_market(AppConfig.get("market")["us"]["name"]) self.tt_dashboard.open() # step 2 self.tt_dashboard.select_tab(self.tt_dashboard.by_creations) self.tt_dashboard.select_view(self.tt_dashboard.days7) self.tt_dashboard.verify_selected_tab(self.tt_dashboard.by_creations) self.tt_dashboard.verify_selected_view(self.tt_dashboard.days7) # step 3 self.tt_dashboard.verify_i_icon_and_hover() # step 4 date_ui = self.tt_dashboard.get_selected_date_ui() date_ui = datetime.datetime.strptime(date_ui, self.trackPage.get_date_format_from_locale()).strftime("%Y-%m-%d") date_default_api = self.api_client.get_tiktok_top_tracks()["items"][0]["metrics"]["date"] assert_that(date_ui).is_equal_to(date_default_api) # step 5 positions_ui = self.tt_dashboard.get_from_column(self.tt_dashboard.column_index) self.tt_dashboard.scroll_down() el_50 = self.tt_dashboard.wait_for_element_visible("tiktok-dashboard-table-cell-index-50") assert_that(self.tt_dashboard.is_element_displayed(element=el_50)) assert_that([int(p) for p in positions_ui]).is_sorted() # step 6 self.tt_dashboard.verify_table_columns() # step 7 self.tt_dashboard.verify_top_10_column_hover() # step 8 self.tt_dashboard.change_market(AppConfig.get("market")["us"]["name"]) self.gtp.enter_datepicker_date_manually(date=self.date_1, location="top_charts") self.tt_dashboard.verify_selected_tab(self.tt_dashboard.by_creations) self.tt_dashboard.verify_selected_view(self.tt_dashboard.days7) market_ui = self.tt_dashboard.get_market_ui() assert_that(market_ui).is_equal_to(AppConfig.get("market")["us"]["name"]) self.tt_dashboard.verify_i_icon_and_hover() date_ui = self.tt_dashboard.get_selected_date_ui() date_ui = datetime.datetime.strptime(date_ui, self.trackPage.get_date_format_from_locale()).strftime("%Y-%m-%d") assert_that(date_ui).is_equal_to(self.date_1) self.tt_dashboard.verify_table_columns() self.tt_dashboard.verify_top_10_column_hover() # NOT AUTOMATED STEPS - 1