import logging import allure from assertpy import assert_that from ui_automation_framework.utils import logger as cl from app.src.api.facade import ApiClient from app.src.helpers.api_data_provider import ApiDataProvider log = cl.Logger(logging.DEBUG) api = ApiClient() api.authorize() data_provider = ApiDataProvider(api) @allure.severity(allure.severity_level.NORMAL) @allure.title("All markets sorting") @allure.testcase("https://data-analytics.atlassian.net/browse/AG-11678") def test_all_markets_sorting(): days_period = 13 test_data = data_provider.get_top_charts_spotify_track_data() test_track_isrc = test_data[1] dates = data_provider.get_track_start_end_dates(test_track_isrc, days_period) analytics = api.dsp.get_analytics_v1_track_markets_list( f"start_date={dates[0]}", f"end_date={dates[1]}", f"isrc={test_track_isrc}", "limit=20")["body"]["markets"] current_streams = [i["current_streams"] for i in analytics] assert_that(current_streams).is_equal_to(sorted(current_streams, reverse=True)) @allure.severity(allure.severity_level.NORMAL) @allure.title("Top 5 markets and top 5 markets graph correlation") @allure.testcase("https://data-analytics.atlassian.net/browse/AG-11679") def test_top_5_markets_and_top_5_markets_graph_correlation(): test_data = data_provider.get_top_charts_spotify_track_data() test_track_isrc = test_data[1] dates = data_provider.get_track_start_end_dates(test_track_isrc) analytics = api.dsp.get_analytics_v1_track_markets_list( f"start_date={dates[1]}", f"end_date={dates[1]}", f"isrc={test_track_isrc}", "limit=5")["body"]["markets"] analytic_markets = "&".join([f"markets={i['market']}" for i in analytics]) analytics_graph = api.dsp.get_analytics_v1_markets_streams_graph( f"start_date={dates[1]}", f"end_date={dates[1]}", f"isrc={test_track_isrc}", analytic_markets, "per_vendors=true" ) current_streams_from_analytics = [i["current_streams"] for i in analytics] y_coords_from_analytics_graph = [i["coordinates"][0]["y"] for i in analytics_graph["body"]["markets"]] assert_that(current_streams_from_analytics).is_equal_to(y_coords_from_analytics_graph)