import logging import unittest from datetime import datetime import allure import pytest from assertpy import assert_that from ui_automation_framework.core import TestStatus from ui_automation_framework.utils import AppConfig from ui_automation_framework.utils import logger as cl from app.api_client import ApiClient from app.src.pages.dsp_comparison_page import DSPComparison from app.src.pages.login_page import LoginPage from app.src.pages.track_page import TrackPage @pytest.mark.usefixtures("set_up", "one_time_set_up") class TikTokComparison(unittest.TestCase): log = cl.Logger(logging.DEBUG) @pytest.fixture(autouse=True) def classSetup(self): self.log = cl.Logger(logging.DEBUG) self.loginPage = LoginPage(self.driver) self.ts = TestStatus(self.driver) self.api_client = ApiClient() self.track_page = TrackPage(self.driver) self.dsp_comparison = DSPComparison(self.driver) @allure.story("AP-6784") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-6493] TikTok Comparison. By Performance view - graphs default state") @allure.description("TC verifies By Performance view - default state.") def test_tc_by_performance_graph_default_state(self): self.loginPage.login_with_worker() self.track_page.select_market(AppConfig.get("market")["us"]["name"]) self.dsp_comparison.open(AppConfig.get("track6")["isrc"]) # steps 1, 3, 5 self.dsp_comparison.verify_graphs_default_state() # step 2 all_dates = self.api_client.get_latest_date_all() end = str(min([(datetime.strptime(all_dates["spotify"], "%Y-%m-%d")).date(), (datetime.strptime(all_dates["tiktok"], "%Y-%m-%d")).date()])) metrics_trends_api = self.api_client.get_metrics_trends(end, [AppConfig.get("track6")["isrc"]])["items"] tooltip_graph_1 = self.dsp_comparison.get_last_tooltip_data_from_graph_with_index(1) assert_that(tooltip_graph_1[end]["value"]).is_equal_to(metrics_trends_api[0]["latest"]["value"]) # step 4 tooltip_graph_2 = self.dsp_comparison.get_last_tooltip_data_from_graph_with_index(2) assert_that(tooltip_graph_2[end]["value"]).is_equal_to(metrics_trends_api[1]["latest"]["value"]) # step 6 tooltip_graph_3 = self.dsp_comparison.get_last_tooltip_data_from_graph_with_index(param=3, spotify=True) assert_that(tooltip_graph_3[end]["value"]).is_equal_to(metrics_trends_api[2]["latest"]["value"]) # step 7 self.track_page.select_market(AppConfig.get("market")["sweden"]["name"]) self.dsp_comparison.verify_graphs_default_state()