import allure import pytest from playwright.sync_api import expect @pytest.mark.usefixtures("app") class TestTrackPagePngExportGraphNames: @allure.title("[AP-10508][Track Performance] Graph export general checks.") @allure.description("""TC Verifies: Graph screenshot export option for different states on Track Page → Performance section → Streams and Sources tab By Markets tab YouTube tab TikTok tab.""") @allure.testcase("https://data-analytics.atlassian.net/browse/AP-10736") def test_track_page_performance_export_general_verification(self, assert_snapshot): self.login_page.login() self.app.go_to(self.track_page_header.url.format("spotify", "0yLdNVWF3Srea0uzk55zFn", "14")) export_button = "export_button.png" export_button_hover = "export_button_hover.png" export_button_hover_youtube = "export_button_hover_youtube.png" export_button_disabled = "export_button_disabled.png" export_button_disabled_tiktok = "export_button_disabled_tiktok.png" # step 2 self.track_page_header.sas_tab.click() self.track_page_header.sas_tab.is_selected() self.tp_sas_tab.choose_dsp("Spotify") self.tp_sas_tab.is_loaded() self.tp_sas_tab.export_dd._element.screenshot(path=export_button) assert_snapshot( open(export_button, "rb").read(), name=export_button, threshold=0.1) # step 3 self.tp_sas_tab.export_dd._element.hover() self.tp_sas_tab.export_dd._element.screenshot(path=export_button_hover) assert_snapshot( open(export_button_hover, "rb").read(), name=export_button_hover, threshold=0.1) expect(self.tp_sas_tab.export_dd._element).to_have_css("cursor", "pointer") # step 9 self.track_page_header.day_picker.select_days_month_year("December 2022") self.tp_sas_tab.export_dd._element.screenshot(path=export_button_disabled) assert_snapshot( open(export_button_disabled, "rb").read(), name=export_button_disabled, threshold=0.1) # step 10-11 self.app.page.route("**/track-per-country**", lambda route: route.abort()) self.top_charts_spotify_tab.page.reload() self.tp_sas_tab.export_dd._element.screenshot(path=export_button_disabled) assert_snapshot( open(export_button_disabled, "rb").read(), name=export_button_disabled, threshold=0.1) # step 12 self.app.go_to(self.track_page_header.url.format("spotify", "0yLdNVWF3Srea0uzk55zFn", "14")) self.track_page_header.by_markets_tab.click() self.track_page_header.by_markets_tab.is_selected() self.tp_by_markets_tab.choose_dsp("Amazon") self.tp_by_markets_tab.is_loaded() self.tp_by_markets_tab.export_dd._element.screenshot(path=export_button) assert_snapshot( open(export_button, "rb").read(), name=export_button, threshold=0.1) # step 13 self.track_page_header.youtube_tab.click() self.track_page_header.youtube_tab.is_selected() self.tp_youtube_tab.choose_by_source("By Likes") self.tp_youtube_tab.is_loaded() self.tp_youtube_tab.export_dd._element.hover() self.tp_youtube_tab.export_dd._element.screenshot(path=export_button_hover_youtube) assert_snapshot( open(export_button_hover_youtube, "rb").read(), name=export_button_hover_youtube, threshold=0.1) # step 14 self.track_page_header.tiktok_tab.click() self.track_page_header.tiktok_tab.is_selected() self.track_page_header.day_picker.select_days_month_year("December 2022") self.tp_tiktok_tab.export_dd._element.screenshot(path=export_button_disabled_tiktok) assert_snapshot( open(export_button_disabled_tiktok, "rb").read(), name=export_button_disabled_tiktok, threshold=0.1) # not automated - steps 1, 8 # already covered - steps 4-7