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, CoreConfig from app.src.pages.left_navigation_panel import LeftNavigationPanel 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): spotify_track_id = "7LzouaWGFCy4tkXDOOnEyM" apple_track_id = "1478601842" us_market_name = "United States" argentine_market_name = "Argentina" str_gr_dsp = "str_gr_dsp" str_gr_tab = "str_gr_tab" str_gr_view = "str_gr_view" str_gr_source = "str_gr_source" str_gr_country = "str_gr_country" str_gr_start_date = "str_gr_start_date" str_gr_end_date = "str_gr_end_date" str_argentina = "ar" dsp_total_streams = AppConfig.get("dsp")["total_streams"] dsp_spotify = "Spotify" dsp_apple = "Apple Music" two_weeks_period = "2 Weeks" four_weeks_period = "4 Weeks" @pytest.fixture(autouse=True) def classSetup(self): self.loginPage = LoginPage(self.driver) self.trackPage = TrackPage(self.driver) self.leftPanel = LeftNavigationPanel(self.driver) self.ts = TestStatus(self.driver) @allure.story("AP-1877") @allure.severity(allure.severity_level.NORMAL) @allure.title("Deep linking: Stream Graph parameters validation STEP 1-5 Spotify") @allure.description("TC verifies that all set up by a user Stream Graph invalids parameters with valid and invalid values " "inside a page url will be ignored and trimmed and page will be set to default state") def test_verify_stream_graph_parameter_invalid_parameters_spotify_step_1_5(self): self.loginPage.login(CoreConfig.USER_EMAIL, CoreConfig.USER_PASSWORD) self.loginPage.is_logged_in() self.trackPage.open_spotify_track_page(self.spotify_track_id) self.trackPage.select_market(self.us_market_name) url_default = self.trackPage.get_url() self.trackPage.switch_to_streams_by_markets_tab() url_gr_tab = int(self.trackPage.parameter_from_url(self.str_gr_tab)) self.ts.markFinal(url_gr_tab == 2, "STEP 1 : " + self.str_gr_tab + " is equal to: " + str(2)) self.trackPage.open_url(url_default + "&" + self.str_gr_tab + "1=2") self.trackPage.is_graph_period_displayed() is_url_correct = self.trackPage.is_url_correct(url_default) self.ts.markFinal(is_url_correct == True, "STEP 2 : url is default: " + str(is_url_correct)) self.trackPage.open_url(url_default + "&" + self.str_gr_tab + "=7") self.trackPage.is_graph_period_displayed() is_url_correct = self.trackPage.is_url_correct(url_default) self.ts.markFinal(is_url_correct == True, "STEP 3 : url is default: " + str(is_url_correct)) self.trackPage.switch_to_streams_by_markets_tab() self.trackPage.select_dsp(self.dsp_total_streams) current_dsp = self.trackPage.get_current_dsp() url_gr_dsp = int(self.trackPage.parameter_from_url(self.str_gr_dsp)) url_gr_tab = int(self.trackPage.parameter_from_url(self.str_gr_tab)) self.ts.markFinal(url_gr_tab == 2, "STEP 4 : " + self.str_gr_tab + " is equal to: " + str(2)) self.ts.markFinal(url_gr_dsp == 4, self.str_gr_dsp + " is equal to: " + str(4)) self.ts.markFinal(current_dsp == self.dsp_total_streams, "Current dsp is equal to: " + self.dsp_total_streams) self.trackPage.open_url(url_default + "&" + self.str_gr_tab + "=2&" + self.str_gr_dsp + "1=3") self.trackPage.is_graph_period_displayed() is_url_correct = self.trackPage.is_url_correct(url_default) self.ts.markFinal(is_url_correct == True, "STEP 5 : url is default: " + str(is_url_correct)) @allure.story("AP-1877") @allure.severity(allure.severity_level.NORMAL) @allure.title("Deep linking: Stream Graph parameters validation STEP 6-10 Spotify") @allure.description("TC verifies that all set up by a user Stream Graph invalids parameters with valid and invalid values " "inside a page url will be ignored and trimmed and page will be set to default state") def test_verify_stream_graph_parameter_invalid_parameters_spotify_step_6_10(self): self.loginPage.login(CoreConfig.USER_EMAIL, CoreConfig.USER_PASSWORD) self.loginPage.is_logged_in() self.trackPage.open_spotify_track_page(self.spotify_track_id) self.trackPage.select_market(self.us_market_name) url_default = self.trackPage.get_url() self.trackPage.switch_to_streams_by_markets_tab() self.trackPage.open_url(url_default + "&" + self.str_gr_tab + "=2&" + self.str_gr_dsp + "=5") self.trackPage.is_graph_period_displayed() is_url_correct = self.trackPage.is_url_correct(url_default) self.ts.markFinal(is_url_correct == True, "STEP 6 : url is default: " + str(is_url_correct)) self.trackPage.switch_to_streams_by_markets_tab() self.trackPage.select_dsp(self.dsp_total_streams) self.trackPage.choose_graph_view_bar_chart() current_dsp = self.trackPage.get_current_dsp() url_gr_dsp = int(self.trackPage.parameter_from_url(self.str_gr_dsp)) url_gr_tab = int(self.trackPage.parameter_from_url(self.str_gr_tab)) url_gr_view = int(self.trackPage.parameter_from_url(self.str_gr_view)) self.ts.markFinal(url_gr_tab == 2, "STEP 7 : " + self.str_gr_tab + " is equal to: " + str(2)) self.ts.markFinal(url_gr_dsp == 4, self.str_gr_dsp + " is equal to: " + str(4)) self.ts.markFinal(url_gr_view == 4, self.str_gr_view + " is equal to: " + str(4)) self.ts.markFinal(current_dsp == self.dsp_total_streams, "Current dsp is equal to: " + self.dsp_total_streams) self.trackPage.open_url(url_default + "&" + self.str_gr_tab + "=2&" + self.str_gr_dsp + "=3&" + self.str_gr_view + "1=4") self.trackPage.is_graph_period_displayed() is_url_correct = self.trackPage.is_url_correct(url_default) self.ts.markFinal(is_url_correct == True, "STEP 8 : url is default: " + str(is_url_correct)) self.trackPage.switch_to_streams_by_markets_tab() self.trackPage.select_dsp(self.dsp_total_streams) self.trackPage.choose_graph_view_bar_chart() self.trackPage.open_url(f"{url_default}&{self.str_gr_tab}=2&{self.str_gr_dsp}=3&{self.str_gr_view}=3") self.trackPage.is_graph_period_displayed() is_url_correct = self.trackPage.is_url_correct(url_default) self.ts.markFinal(is_url_correct, "STEP 9 : url is default: " + str(is_url_correct)) self.trackPage.switch_to_streams_by_markets_tab() self.trackPage.select_dsp(self.dsp_total_streams) self.trackPage.choose_graph_view_bar_chart() self.trackPage.select_dsp(self.dsp_spotify) current_dsp = self.trackPage.get_current_dsp() url_gr_dsp = int(self.trackPage.parameter_from_url(self.str_gr_dsp)) url_gr_tab = int(self.trackPage.parameter_from_url(self.str_gr_tab)) self.ts.markFinal(url_gr_tab == 2, "STEP 10 : " + self.str_gr_tab + " is equal to: " + str(2)) self.ts.markFinal(url_gr_dsp == 1, self.str_gr_dsp + " is equal to: " + str(1)) self.trackPage.verify_params_in_url({self.trackPage.str_gr_view: 2}) self.ts.markFinal(current_dsp == self.dsp_spotify, "Current dsp is equal to: " + self.dsp_spotify) @allure.story("AP-1877") @allure.severity(allure.severity_level.NORMAL) @allure.title("Deep linking: Stream Graph parameters validation STEP 10-16 Spotify") @allure.description("TC verifies that all set up by a user Stream Graph invalids parameters with valid and invalid values " "inside a page url will be ignored and trimmed and page will be set to default state") def test_verify_stream_graph_parameter_invalid_parameters_spotify_step_10_16(self): self.loginPage.login(CoreConfig.USER_EMAIL, CoreConfig.USER_PASSWORD) self.loginPage.is_logged_in() self.trackPage.open_spotify_track_page(self.spotify_track_id) self.trackPage.select_market(self.us_market_name) url_default = self.trackPage.get_url() self.trackPage.switch_to_streams_by_markets_tab() self.trackPage.select_dsp(self.dsp_total_streams) self.trackPage.select_dsp(self.dsp_spotify) self.trackPage.choose_graph_view_bar_chart() url_before = self.trackPage.get_url() self.trackPage.open_url(url_before + "&" + self.str_gr_source + "1=7") self.trackPage.is_graph_period_displayed() # step 11 current_url = self.trackPage.get_url() assert_that(url_default).is_equal_to(current_url) self.trackPage.open_url(url_before + "&" + self.str_gr_source + "=7777") self.trackPage.is_graph_period_displayed() is_url_correct = self.trackPage.is_url_correct(url_default) self.ts.markFinal(is_url_correct == True, "STEP 12 : url is default: " + str(is_url_correct)) self.trackPage.switch_to_streams_by_markets_tab() self.trackPage.select_dsp(self.dsp_total_streams) self.trackPage.select_dsp(self.dsp_spotify) self.trackPage.switch_to_streams_and_sources_tab() url_gr_dsp = int(self.trackPage.parameter_from_url(self.str_gr_dsp)) url_gr_tab = int(self.trackPage.parameter_from_url(self.str_gr_tab)) self.ts.markFinal(url_gr_tab == 1, "STEP 13 : " + self.str_gr_tab + " is equal to: " + str(1)) self.ts.markFinal(url_gr_dsp == 1, self.str_gr_dsp + " is equal to: " + str(1)) url_before = self.trackPage.get_url() self.trackPage.stream_and_source_choose_country(self.argentine_market_name) url_gr_dsp = int(self.trackPage.parameter_from_url(self.str_gr_dsp)) url_gr_tab = int(self.trackPage.parameter_from_url(self.str_gr_tab)) url_gr_country = self.trackPage.parameter_from_url(self.str_gr_country) graph_current_country = self.trackPage.graph_get_selected_market() self.ts.markFinal(url_gr_tab == 1, "STEP 14 : " + self.str_gr_tab + " is equal to: " + str(1)) self.ts.markFinal(url_gr_dsp == 1, self.str_gr_dsp + " is equal to: " + str(1)) self.ts.markFinal(url_gr_country == self.str_argentina, self.str_gr_country + " is equal to: " + self.str_argentina) self.ts.markFinal( graph_current_country == self.argentine_market_name, "Graph chosen country market is equal to: " + self.str_argentina, ) self.trackPage.open_url(url_before + "&" + self.str_gr_country + "=uk") self.trackPage.is_graph_period_displayed() is_url_correct = self.trackPage.is_url_correct(url_default) self.ts.markFinal(is_url_correct == True, "STEP 15-16 : url is default: " + str(is_url_correct)) @allure.story("AP-1877") @allure.severity(allure.severity_level.NORMAL) @allure.title("Deep linking: Stream Graph parameters validation STEP 17-20 Spotify") @allure.description("TC verifies that all set up by a user Stream Graph invalids parameters with valid and invalid values " "inside a page url will be ignored and trimmed and page will be set to default state") def test_verify_stream_graph_parameter_invalid_parameters_spotify_step_17_20(self): self.loginPage.login(CoreConfig.USER_EMAIL, CoreConfig.USER_PASSWORD) self.loginPage.is_logged_in() self.trackPage.open_spotify_track_page(self.spotify_track_id) self.trackPage.select_market(self.us_market_name) url_default = self.trackPage.get_url() self.trackPage.switch_to_streams_by_markets_tab() self.trackPage.select_dsp(self.dsp_total_streams) self.trackPage.select_dsp(self.dsp_spotify) self.trackPage.switch_to_streams_and_sources_tab() self.trackPage.stream_and_source_choose_country(self.argentine_market_name) url_before = self.trackPage.get_url() self.trackPage.change_period_in_date_picker(self.two_weeks_period) url_gr_dsp = int(self.trackPage.parameter_from_url(self.str_gr_dsp)) url_gr_tab = int(self.trackPage.parameter_from_url(self.str_gr_tab)) url_gr_country = self.trackPage.parameter_from_url(self.str_gr_country) graph_current_country = self.trackPage.graph_get_selected_market() start_date_expected = self.trackPage.get_calendar_start_date() end_date_expected = self.trackPage.get_calendar_end_date() self.ts.markFinal(url_gr_tab == 1, "STEP 17 : " + self.str_gr_tab + " is equal to: " + str(1)) self.ts.markFinal(url_gr_dsp == 1, self.str_gr_dsp + " is equal to: " + str(1)) self.ts.markFinal(url_gr_country == self.str_argentina, self.str_gr_country + " is equal to: " + self.str_argentina) self.ts.markFinal( graph_current_country == self.argentine_market_name, "Graph chosen country market is equal to: " + self.str_argentina, ) self.ts.markFinal( start_date_expected == self.trackPage.get_url_start_date(), "start date in url is correct : " + str(start_date_expected == self.trackPage.get_url_start_date()), ) self.ts.markFinal( end_date_expected == self.trackPage.get_url_end_date(), "end date in url is correct : " + str(end_date_expected == self.trackPage.get_url_end_date()), ) self.trackPage.open_url(url_before + "&" + self.str_gr_start_date + "=" + end_date_expected + "&" + self.str_gr_end_date + "=" + start_date_expected) self.trackPage.is_graph_period_displayed() # step 18 current_url = self.trackPage.get_url() assert_that(url_default).is_equal_to(current_url) self.trackPage.switch_to_streams_by_markets_tab() self.trackPage.select_dsp(self.dsp_total_streams) self.trackPage.select_dsp(self.dsp_spotify) self.trackPage.switch_to_streams_and_sources_tab() self.trackPage.stream_and_source_choose_country(self.argentine_market_name) self.trackPage.change_period_in_date_picker(self.two_weeks_period) self.trackPage.open_url(url_before + "&" + self.str_gr_start_date + "1=" + end_date_expected + "&" + self.str_gr_end_date + "1=" + start_date_expected) self.trackPage.is_graph_period_displayed() is_url_correct = self.trackPage.is_url_correct(url_default) self.ts.markFinal(is_url_correct == True, "STEP 19-20 : url is default: " + str(is_url_correct)) @allure.story("AP-1877") @allure.severity(allure.severity_level.NORMAL) @allure.title("Deep linking: Stream Graph parameters validation STEP 21-22 Spotify") @allure.description("TC verifies that all set up by a user Stream Graph invalids parameters with valid and invalid values " "inside a page url will be ignored and trimmed and page will be set to default state") def test_verify_stream_graph_parameter_invalid_parameters_spotify_step_21_22(self): self.loginPage.login(CoreConfig.USER_EMAIL, CoreConfig.USER_PASSWORD) self.loginPage.is_logged_in() self.trackPage.open_spotify_track_page(self.spotify_track_id) self.trackPage.select_market(self.us_market_name) url_default = self.trackPage.get_url() self.trackPage.open_url(url_default + "&" + self.str_gr_start_date + "=2020-05-20" + "&" + self.str_gr_end_date + "=2020-05-07" + self.str_gr_tab + "=2&" + self.str_gr_dsp + "=1&" + self.str_gr_country + "=40") self.trackPage.is_graph_period_displayed() # step 21-22 current_url = self.trackPage.get_url() assert_that(url_default).is_equal_to(current_url) @allure.story("AP-1877") @allure.severity(allure.severity_level.NORMAL) @allure.title("Deep linking: Stream Graph parameters validation STEP 23 Spotify") @allure.description("TC verifies that all set up by a user Stream Graph invalids parameters with valid and invalid values " "inside a page url will be ignored and trimmed and page will be set to default state") def test_verify_stream_graph_parameter_invalid_parameters_spotify_step_23(self): self.loginPage.login(CoreConfig.USER_EMAIL, CoreConfig.USER_PASSWORD) self.loginPage.is_logged_in() self.trackPage.open_spotify_track_page(self.spotify_track_id) self.trackPage.select_market(self.us_market_name) self.trackPage.switch_to_streams_by_markets_tab() self.trackPage.switch_to_streams_and_sources_tab() self.trackPage.select_dsp(self.dsp_apple) self.trackPage.change_period_in_date_picker(self.two_weeks_period) self.trackPage.stream_and_source_choose_country(self.argentine_market_name) country_before = self.trackPage.graph_get_selected_market() self.trackPage.is_graph_period_displayed() url_before = self.trackPage.get_url() url_gr_dsp = int(self.trackPage.parameter_from_url(self.str_gr_dsp)) url_gr_tab = int(self.trackPage.parameter_from_url(self.str_gr_tab)) start_date_expected = self.trackPage.get_calendar_start_date() end_date_expected = self.trackPage.get_calendar_end_date() self.leftPanel.sign_out() self.loginPage.login(CoreConfig.USER_EMAIL, CoreConfig.USER_PASSWORD) self.loginPage.is_logged_in() self.trackPage.open_url(url_before) self.trackPage.is_graph_period_displayed() is_url_correct = self.trackPage.is_url_correct(url_before) country_after = self.trackPage.graph_get_selected_market() self.ts.markFinal(is_url_correct == True, "STEP 23 : url is correct: " + str(is_url_correct)) self.ts.markFinal(url_gr_tab == 1, self.str_gr_tab + " is equal to: " + str(1)) self.ts.markFinal(url_gr_dsp == 2, self.str_gr_dsp + " is equal to: " + str(2)) self.ts.markFinal( start_date_expected == self.trackPage.get_url_start_date(), "start date in url is correct : " + str(start_date_expected == self.trackPage.get_url_start_date()), ) self.ts.markFinal( end_date_expected == self.trackPage.get_url_end_date(), "end date in url is correct : " + str(end_date_expected == self.trackPage.get_url_end_date()), ) self.ts.markFinal(country_before == country_after, "graph country is correct : " + str(country_before == country_after)) @allure.story("AP-1877") @allure.severity(allure.severity_level.NORMAL) @allure.title("Deep linking: Stream Graph parameters validation STEP 1-5 Apple") @allure.description("TC verifies that all set up by a user Stream Graph invalids parameters with valid and invalid values " "inside a page url will be ignored and trimmed and page will be set to default state") def test_verify_stream_graph_parameter_invalid_parameters_apple_step_1_5(self): self.loginPage.login(CoreConfig.USER_EMAIL, CoreConfig.USER_PASSWORD) self.loginPage.is_logged_in() self.trackPage.open_apple_track_page(self.apple_track_id) self.trackPage.select_market(self.us_market_name) url_default = self.trackPage.get_url() self.trackPage.switch_to_streams_by_markets_tab() url_gr_tab = int(self.trackPage.parameter_from_url(self.str_gr_tab)) self.ts.markFinal(url_gr_tab == 2, "STEP 1 : " + self.str_gr_tab + " is equal to: " + str(2)) self.trackPage.open_url(url_default + "&" + self.str_gr_tab + "1=2") self.trackPage.is_graph_period_displayed() is_url_correct = self.trackPage.is_url_correct(url_default) self.ts.markFinal(is_url_correct == True, "STEP 2 : url is default: " + str(is_url_correct)) self.trackPage.open_url(url_default + "&" + self.str_gr_tab + "=7") self.trackPage.is_graph_period_displayed() is_url_correct = self.trackPage.is_url_correct(url_default) self.ts.markFinal(is_url_correct == True, "STEP 3 : url is default: " + str(is_url_correct)) self.trackPage.switch_to_streams_by_markets_tab() self.trackPage.select_dsp(self.dsp_total_streams) current_dsp = self.trackPage.get_current_dsp() url_gr_dsp = int(self.trackPage.parameter_from_url(self.str_gr_dsp)) url_gr_tab = int(self.trackPage.parameter_from_url(self.str_gr_tab)) self.ts.markFinal(url_gr_tab == 2, "STEP 4 : " + self.str_gr_tab + " is equal to: " + str(2)) self.ts.markFinal(url_gr_dsp == 4, self.str_gr_dsp + " is equal to: " + str(4)) self.ts.markFinal(current_dsp == self.dsp_total_streams, "Current dsp is equal to: " + self.dsp_total_streams) self.trackPage.open_url(url_default + "&" + self.str_gr_tab + "=2&" + self.str_gr_dsp + "1=3") self.trackPage.is_graph_period_displayed() is_url_correct = self.trackPage.is_url_correct(url_default) self.ts.markFinal(is_url_correct == True, "STEP 5 : url is default: " + str(is_url_correct)) @allure.story("AP-1877") @allure.severity(allure.severity_level.NORMAL) @allure.title("Deep linking: Stream Graph parameters validation STEP 6-10 Apple") @allure.description("TC verifies that all set up by a user Stream Graph invalids parameters with valid and invalid values " "inside a page url will be ignored and trimmed and page will be set to default state") def test_verify_stream_graph_parameter_invalid_parameters_apple_step_6_10(self): self.loginPage.login(CoreConfig.USER_EMAIL, CoreConfig.USER_PASSWORD) self.loginPage.is_logged_in() self.trackPage.open_apple_track_page(self.apple_track_id) self.trackPage.select_market(self.us_market_name) url_default = self.trackPage.get_url() self.trackPage.switch_to_streams_by_markets_tab() self.trackPage.open_url(url_default + "&" + self.str_gr_tab + "=2&" + self.str_gr_dsp + "=5") self.trackPage.is_graph_period_displayed() is_url_correct = self.trackPage.is_url_correct(url_default) self.ts.markFinal(is_url_correct == True, "STEP 6 : url is default: " + str(is_url_correct)) self.trackPage.switch_to_streams_by_markets_tab() self.trackPage.select_dsp(self.dsp_total_streams) self.trackPage.choose_graph_view_bar_chart() current_dsp = self.trackPage.get_current_dsp() url_gr_dsp = int(self.trackPage.parameter_from_url(self.str_gr_dsp)) url_gr_tab = int(self.trackPage.parameter_from_url(self.str_gr_tab)) url_gr_view = int(self.trackPage.parameter_from_url(self.str_gr_view)) self.ts.markFinal(url_gr_tab == 2, "STEP 7 : " + self.str_gr_tab + " is equal to: " + str(2)) self.ts.markFinal(url_gr_dsp == 4, self.str_gr_dsp + " is equal to: " + str(4)) self.ts.markFinal(url_gr_view == 4, self.str_gr_view + " is equal to: " + str(4)) self.ts.markFinal(current_dsp == self.dsp_total_streams, "Current dsp is equal to: " + self.dsp_total_streams) self.trackPage.open_url(url_default + "&" + self.str_gr_tab + "=2&" + self.str_gr_dsp + "=3&" + self.str_gr_view + "1=4") self.trackPage.is_graph_period_displayed() is_url_correct = self.trackPage.is_url_correct(url_default) self.ts.markFinal(is_url_correct == True, "STEP 8 : url is default: " + str(is_url_correct)) self.trackPage.switch_to_streams_by_markets_tab() self.trackPage.select_dsp(self.dsp_total_streams) self.trackPage.choose_graph_view_bar_chart() self.trackPage.open_url(f"{url_default}&{self.str_gr_tab}=2&{self.str_gr_dsp}=3&{self.str_gr_view}=3") self.trackPage.is_graph_period_displayed() is_url_correct = self.trackPage.is_url_correct(url_default) self.ts.markFinal(is_url_correct, "STEP 9 : url is default: " + str(is_url_correct)) self.trackPage.switch_to_streams_by_markets_tab() self.trackPage.select_dsp(self.dsp_total_streams) self.trackPage.choose_graph_view_bar_chart() self.trackPage.select_dsp(self.dsp_spotify) current_dsp = self.trackPage.get_current_dsp() url_gr_dsp = int(self.trackPage.parameter_from_url(self.str_gr_dsp)) url_gr_tab = int(self.trackPage.parameter_from_url(self.str_gr_tab)) self.ts.markFinal(url_gr_tab == 2, "STEP 10 : " + self.str_gr_tab + " is equal to: " + str(2)) self.ts.markFinal(url_gr_dsp == 1, self.str_gr_dsp + " is equal to: " + str(1)) self.trackPage.verify_params_in_url({self.trackPage.str_gr_view: 2}) self.ts.markFinal(current_dsp == self.dsp_spotify, "Current dsp is equal to: " + self.dsp_spotify) @allure.story("AP-1877") @allure.severity(allure.severity_level.NORMAL) @allure.title("Deep linking: Stream Graph parameters validation STEP 10-16 Apple") @allure.description("TC verifies that all set up by a user Stream Graph invalids parameters with valid and invalid values " "inside a page url will be ignored and trimmed and page will be set to default state") def test_verify_stream_graph_parameter_invalid_parameters_apple_step_10_16(self): self.loginPage.login(CoreConfig.USER_EMAIL, CoreConfig.USER_PASSWORD) self.loginPage.is_logged_in() self.trackPage.open_apple_track_page(self.apple_track_id) self.trackPage.select_market(self.us_market_name) url_default = self.trackPage.get_url() self.trackPage.switch_to_streams_by_markets_tab() self.trackPage.select_dsp(self.dsp_total_streams) self.trackPage.select_dsp(self.dsp_spotify) self.trackPage.choose_graph_view_bar_chart() url_before = self.trackPage.get_url() self.trackPage.open_url(url_before + "&" + self.str_gr_source + "1=7") self.trackPage.is_graph_period_displayed() # step 11 current_url = self.trackPage.get_url() assert_that(url_default).is_equal_to(current_url) self.trackPage.open_url(url_before + "&" + self.str_gr_source + "=7777") self.trackPage.is_graph_period_displayed() is_url_correct = self.trackPage.is_url_correct(url_default) self.ts.markFinal(is_url_correct == True, "STEP 12 : url is default: " + str(is_url_correct)) self.trackPage.switch_to_streams_by_markets_tab() self.trackPage.select_dsp(self.dsp_total_streams) self.trackPage.select_dsp(self.dsp_spotify) self.trackPage.switch_to_streams_and_sources_tab() url_gr_dsp = int(self.trackPage.parameter_from_url(self.str_gr_dsp)) url_gr_tab = int(self.trackPage.parameter_from_url(self.str_gr_tab)) self.ts.markFinal(url_gr_tab == 1, "STEP 13 : " + self.str_gr_tab + " is equal to: " + str(1)) self.ts.markFinal(url_gr_dsp == 1, self.str_gr_dsp + " is equal to: " + str(1)) url_before = self.trackPage.get_url() self.trackPage.stream_and_source_choose_country(self.argentine_market_name) url_gr_dsp = int(self.trackPage.parameter_from_url(self.str_gr_dsp)) url_gr_tab = int(self.trackPage.parameter_from_url(self.str_gr_tab)) url_gr_country = self.trackPage.parameter_from_url(self.str_gr_country) graph_current_country = self.trackPage.graph_get_selected_market() self.ts.markFinal(url_gr_tab == 1, "STEP 14 : " + self.str_gr_tab + " is equal to: " + str(1)) self.ts.markFinal(url_gr_dsp == 1, self.str_gr_dsp + " is equal to: " + str(1)) self.ts.markFinal(url_gr_country == self.str_argentina, self.str_gr_country + " is equal to: " + self.str_argentina) self.ts.markFinal( graph_current_country == self.argentine_market_name, "Graph chosen country market is equal to: " + self.str_argentina, ) self.trackPage.open_url(url_before + "&" + self.str_gr_country + "=uk") self.trackPage.is_graph_period_displayed() is_url_correct = self.trackPage.is_url_correct(url_default) self.ts.markFinal(is_url_correct == True, "STEP 15-16 : url is default: " + str(is_url_correct)) @allure.story("AP-1877") @allure.severity(allure.severity_level.NORMAL) @allure.title("Deep linking: Stream Graph parameters validation STEP 17-20 Apple") @allure.description("TC verifies that all set up by a user Stream Graph invalids parameters with valid and invalid values " "inside a page url will be ignored and trimmed and page will be set to default state") def test_verify_stream_graph_parameter_invalid_parameters_apple_step_17_20(self): self.loginPage.login(CoreConfig.USER_EMAIL, CoreConfig.USER_PASSWORD) self.loginPage.is_logged_in() self.trackPage.open_apple_track_page(self.apple_track_id) self.trackPage.select_market(self.us_market_name) url_default = self.trackPage.get_url() self.trackPage.switch_to_streams_by_markets_tab() self.trackPage.select_dsp(self.dsp_total_streams) self.trackPage.select_dsp(self.dsp_spotify) self.trackPage.switch_to_streams_and_sources_tab() self.trackPage.stream_and_source_choose_country(self.argentine_market_name) url_before = self.trackPage.get_url() self.trackPage.change_period_in_date_picker(self.two_weeks_period) url_gr_dsp = int(self.trackPage.parameter_from_url(self.str_gr_dsp)) url_gr_tab = int(self.trackPage.parameter_from_url(self.str_gr_tab)) url_gr_country = self.trackPage.parameter_from_url(self.str_gr_country) graph_current_country = self.trackPage.graph_get_selected_market() start_date_expected = self.trackPage.get_calendar_start_date() end_date_expected = self.trackPage.get_calendar_end_date() self.ts.markFinal(url_gr_tab == 1, "STEP 17 : " + self.str_gr_tab + " is equal to: " + str(1)) self.ts.markFinal(url_gr_dsp == 1, self.str_gr_dsp + " is equal to: " + str(1)) self.ts.markFinal(url_gr_country == self.str_argentina, self.str_gr_country + " is equal to: " + self.str_argentina) self.ts.markFinal( graph_current_country == self.argentine_market_name, "Graph chosen country market is equal to: " + self.str_argentina, ) self.ts.markFinal( start_date_expected == self.trackPage.get_url_start_date(), "start date in url is correct : " + str(start_date_expected == self.trackPage.get_url_start_date()), ) self.ts.markFinal( end_date_expected == self.trackPage.get_url_end_date(), "end date in url is correct : " + str(end_date_expected == self.trackPage.get_url_end_date()), ) self.trackPage.open_url(url_before + "&" + self.str_gr_start_date + "=" + end_date_expected + "&" + self.str_gr_end_date + "=" + start_date_expected) self.trackPage.is_graph_period_displayed() # step 18 current_url = self.trackPage.get_url() assert_that(url_default).is_equal_to(current_url) self.trackPage.switch_to_streams_by_markets_tab() self.trackPage.select_dsp(self.dsp_total_streams) self.trackPage.select_dsp(self.dsp_spotify) self.trackPage.switch_to_streams_and_sources_tab() self.trackPage.stream_and_source_choose_country(self.argentine_market_name) self.trackPage.change_period_in_date_picker(self.two_weeks_period) self.trackPage.open_url(url_before + "&" + self.str_gr_start_date + "1=" + end_date_expected + "&" + self.str_gr_end_date + "1=" + start_date_expected) self.trackPage.is_graph_period_displayed() is_url_correct = self.trackPage.is_url_correct(url_default) self.ts.markFinal(is_url_correct == True, "STEP 19-20 : url is default: " + str(is_url_correct)) @allure.story("AP-1877") @allure.severity(allure.severity_level.NORMAL) @allure.title("Deep linking: Stream Graph parameters validation STEP 21-22 Apple") @allure.description("TC verifies that all set up by a user Stream Graph invalids parameters with valid and invalid values " "inside a page url will be ignored and trimmed and page will be set to default state") def test_verify_stream_graph_parameter_invalid_parameters_apple_step_21_22(self): self.loginPage.login(CoreConfig.USER_EMAIL, CoreConfig.USER_PASSWORD) self.loginPage.is_logged_in() self.trackPage.open_apple_track_page(self.apple_track_id) self.trackPage.select_market(self.us_market_name) url_default = self.trackPage.get_url() self.trackPage.open_url(url_default + "&" + self.str_gr_start_date + "=2020-05-20" + "&" + self.str_gr_end_date + "=2020-05-07" + self.str_gr_tab + "=2&" + self.str_gr_dsp + "=1&" + self.str_gr_country + "=40") self.trackPage.is_graph_period_displayed() # step 21-22 current_url = self.trackPage.get_url() assert_that(url_default).is_equal_to(current_url) @allure.story("AP-1877") @allure.severity(allure.severity_level.NORMAL) @allure.title("Deep linking: Stream Graph parameters validation STEP 23 Apple") @allure.description("TC verifies that all set up by a user Stream Graph invalids parameters with valid and invalid values " "inside a page url will be ignored and trimmed and page will be set to default state") def test_verify_stream_graph_parameter_invalid_parameters_apple_step_23(self): self.loginPage.login(CoreConfig.USER_EMAIL, CoreConfig.USER_PASSWORD) self.loginPage.is_logged_in() self.trackPage.open_apple_track_page(self.apple_track_id) self.trackPage.select_market(self.argentine_market_name) self.trackPage.switch_to_streams_by_markets_tab() self.trackPage.switch_to_streams_and_sources_tab() self.trackPage.select_dsp(self.dsp_apple) self.trackPage.change_period_in_date_picker(self.two_weeks_period) self.trackPage.stream_and_source_choose_country(self.us_market_name) country_before = self.trackPage.graph_get_selected_market() self.trackPage.is_graph_period_displayed() url_before = self.trackPage.get_url() url_gr_dsp = int(self.trackPage.parameter_from_url(self.str_gr_dsp)) url_gr_tab = int(self.trackPage.parameter_from_url(self.str_gr_tab)) start_date_expected = self.trackPage.get_calendar_start_date() end_date_expected = self.trackPage.get_calendar_end_date() self.leftPanel.sign_out() self.loginPage.login(CoreConfig.USER_EMAIL, CoreConfig.USER_PASSWORD) self.loginPage.is_logged_in() self.trackPage.open_url(url_before) self.trackPage.is_graph_period_displayed() is_url_correct = self.trackPage.is_url_correct(url_before) country_after = self.trackPage.graph_get_selected_market() self.ts.markFinal(is_url_correct == True, "STEP 23 : url is correct: " + str(is_url_correct)) self.ts.markFinal(url_gr_tab == 1, self.str_gr_tab + " is equal to: " + str(1)) self.ts.markFinal(url_gr_dsp == 2, self.str_gr_dsp + " is equal to: " + str(2)) self.ts.markFinal( start_date_expected == self.trackPage.get_url_start_date(), "start date in url is correct : " + str(start_date_expected == self.trackPage.get_url_start_date()), ) self.ts.markFinal( end_date_expected == self.trackPage.get_url_end_date(), "end date in url is correct : " + str(end_date_expected == self.trackPage.get_url_end_date()), ) self.ts.markFinal(country_before == country_after, "graph country is correct : " + str(country_before == country_after))