import logging import unittest import allure import pytest from assertpy import assert_that from parameterized import parameterized from ui_automation_framework.core import TestStatus from ui_automation_framework.utils import CoreConfig from ui_automation_framework.utils import logger as cl from app.api_client import ApiClient from app.src.pages.album_page import AlbumPage from app.src.pages.comparison_page import TrackComparisonPage 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 DeepLinkingTrackPageTest(unittest.TestCase): log = cl.Logger(logging.DEBUG) @pytest.fixture(autouse=True) def classSetup(self): self.loginPage = LoginPage(self.driver) self.tp = TrackPage(self.driver) self.cp = TrackComparisonPage(self.driver) self.ap = AlbumPage(self.driver) self.api_client = ApiClient() self.ts = TestStatus(self.driver) @parameterized.expand( [ ("1rRcFwE1ydO2Y5jSmk1UIs?market=16&str_gr_start_date=2021-05-27&str_gr_end_date=2021-05-30&str_gr_tab=2&str_gr_country=be", {"be": {"percentage": 0.0, "views": 15, "avg": 5}}), ("1rRcFwE1ydO2Y5jSmk1UIs?market=16&str_gr_start_date=2021-05-28&str_gr_end_date=2021-05-30&str_gr_tab=2&str_gr_dsp=2&str_gr_view=2&str_gr_country=us", {"us": {"percentage": 1.5, "views": 6, "avg": 3}}), ("71UYuIZf0TeXAjyy72COVr?market=16&str_gr_tab=2&str_gr_dsp=3&str_gr_country=ca&str_gr_start_date=2021-08-08&str_gr_end_date=2021-08-10&str_gr_view=2", {"ca": {"percentage": 1.8, "views": 6, "avg": 3}}), ("71UYuIZf0TeXAjyy72COVr?market=16&str_gr_tab=2&str_gr_dsp=4&str_gr_start_date=2021-07-24&str_gr_end_date=2021-07-26&str_gr_view=1&str_gr_country=cn", {"cn": {"percentage": 0, "views": 11, "avg": 6}}), ] ) @pytest.mark.flaky(reruns=0) @allure.story("AP-6264") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-6226] Track Page. By Markets graph legend. Tooltip calculation when there is 0 steams for some days") @allure.description("TC verifies the correctness of calculated data when there are days with 0 streams for the selected market is selected period.") def test_youtube_vbm_by_markets_when_0_streams_for_some_days(self, url_add, expected_res): self.loginPage.login_with_worker() self.tp.open_url(f"{CoreConfig.ENV_BASE_URL}/spotify/track/{url_add}") # steps 1-8 legend_by_markets_ui = self.tp.by_markets_get_legend_values() assert_that(legend_by_markets_ui).is_equal_to(expected_res) # step 9 self.tp.choose_graph_view_bar_chart() legend_by_markets_ui = self.tp.by_markets_get_legend_values() assert_that(legend_by_markets_ui).is_equal_to(expected_res)