import time import allure import pytest from assertpy import assert_that from src.helpers.test_data_loader import DataLoader @pytest.mark.usefixtures("one_time_set_up") class TestVideoView: artist_name = DataLoader.get_artist() data = DataLoader("test_search_data.json") artist_name_search = data.get("artist_name_search") @allure.title("Video View - base info") @allure.description("User should be able to view base info on Video View page") @allure.testcase("https://data-analytics.atlassian.net/browse/AMA-1924") @pytest.mark.smoke @pytest.mark.artist def test_view_video_info(self): self.login_page.login_as_super_user() self.welcome_page.click_skip_btn() self.artist_selector_page.select_an_artist_by_name(self.artist_name) self.library_page.view_all_videos() self.videos_page.select_track_by_position(1) assert_that(self.video_view_page.is_track_1w_statistics_present(), "1w statistics should be shown").is_true() assert_that(self.video_view_page.is_track_2w_statistics_present(), "2w statistics should be shown").is_true() assert_that(self.video_view_page.is_track_4w_statistics_present(), "4w statistics should be shown").is_true() # Check charts # self.video_view_page.print_all_video_charts_on_page() # <- for debugging assert_that(self.video_view_page.is_video_chart_statistics_present('YOUTUBE Views')).is_true() assert_that(self.video_view_page.is_video_chart_statistics_present('YOUTUBE Sources')).is_true() assert_that(self.video_view_page.is_video_chart_statistics_present('YOUTUBE Engagement')).is_true() assert_that(self.video_view_page.is_video_chart_statistics_present('YOUTUBE Demographics')).is_true() assert_that(self.video_view_page.are_demographic_elements_present_for_video('YOUTUBE')).is_true() @allure.title("Video View - YouTube link") @allure.description("User should be able to proceed to youtube via link") @allure.testcase("https://data-analytics.atlassian.net/browse/AMA-2056") @pytest.mark.regression def test_video_youtube_link(self): self.login_page.login_as_super_user() self.welcome_page.click_skip_btn() self.artist_selector_page.select_an_artist_by_name(self.artist_name_search) self.library_page.view_all_videos() self.videos_page.select_track_by_position(1) self.video_view_page.click_youtube_video_link() assert_that(self.video_view_page.is_youtube_web_view_opened()).is_true() @allure.title("Video View - Views") @allure.description("User should be able to view Video Views page") @allure.testcase("https://data-analytics.atlassian.net/browse/AMA-1924") @pytest.mark.regression def test_view_video_views(self): self.login_page.login_as_super_user() self.welcome_page.click_skip_btn() self.artist_selector_page.select_an_artist_by_name(self.artist_name) # Select 1st video track from the list self.library_page.view_all_videos() self.tracks_page.select_track_by_position(1) # YOUTUBE Views assert_that(self.video_view_page.video_charts_list.get_item_by_text('YOUTUBE Views').text).contains( 'AVG. VIEW DURATION') self.video_view_page.video_charts_list.select_by_text('YOUTUBE Views') assert_that(self.video_view_page.chosen_market_value("worldwide")).is_true() assert_that(self.video_view_page.is_label_present("YOUTUBE ")).is_true() assert_that(self.video_view_page.is_label_present("Views Worldwide")).is_true() assert_that(self.video_view_page.is_label_present("Total Views")).is_true() assert_that(self.video_view_page.is_label_present("Total Views Gain/Loss")).is_true() assert_that(self.video_view_page.is_label_present("Avg. View Duration")).is_true() assert_that(self.video_view_page.is_label_present("AVG. VIEW DURATION")).is_true() assert_that(self.video_view_page.is_label_present("TOTAL VIEWS")).is_true() self.video_view_page.switch_range_to_2w() assert_that(self.video_view_page.is_label_present("TOTAL VIEWS")).is_true() self.video_view_page.switch_range_to_6w() assert_that(self.video_view_page.is_label_present("AVG. VIEW DURATION")).is_true() self.video_view_page.select_market_by_name("The United States") assert_that(self.video_view_page.chosen_market_value("us")).is_true() assert_that(self.video_view_page.is_label_present("Views in the United States")).is_true() self.video_view_page.switch_range_to_8w() assert_that(self.video_view_page.is_label_present("AVG. VIEW DURATION")).is_true() assert_that(self.video_view_page.is_label_present("TOTAL VIEWS")).is_true() self.video_view_page.switch_range_to_26w() assert_that(self.video_view_page.is_label_present("TOTAL VIEWS")).is_true() self.video_view_page.switch_range_to_1y() assert_that(self.video_view_page.is_label_present("TOTAL VIEWS")).is_true() self.video_view_page.switch_range_to_chart_week() assert_that(self.video_view_page.is_label_present("TOTAL VIEWS")).is_true() @allure.title("Video View - Sources") @allure.description("User should be able to view Video Sources page") @allure.testcase("https://data-analytics.atlassian.net/browse/AMA-1926") @pytest.mark.regression def test_view_video_sources(self): self.login_page.login_as_super_user() self.welcome_page.click_skip_btn() self.artist_selector_page.select_an_artist_by_name(self.artist_name) # Select 1st video track from the list self.library_page.view_all_videos() self.tracks_page.select_track_by_position(1) # YOUTUBE Sources assert_that(self.video_view_page.video_charts_list.get_item_by_text('YOUTUBE Sources').text).contains( 'Lean Forward') assert_that(self.video_view_page.video_charts_list.get_item_by_text('YOUTUBE Sources').text).contains( 'Lean Back') self.video_view_page.video_charts_list.select_by_text('YOUTUBE Sources') assert_that(self.video_view_page.chosen_market_value("worldwide")).is_true() assert_that(self.video_view_page.is_label_present("YOUTUBE ")).is_true() assert_that(self.video_view_page.is_label_present("Source Breakdown")).is_true() assert_that(self.video_view_page.is_label_present("Forward")).is_true() assert_that(self.video_view_page.is_label_present("Back")).is_true() assert_that(self.video_view_page.is_source_data_present(), "No data or Error occurred").is_true() self.navigation_page.scroll_down() self.video_view_page.switch_range_to_2w() assert_that(self.video_view_page.is_source_data_present(), "No data or Error occurred").is_true() self.navigation_page.scroll_down() self.video_view_page.switch_range_to_6w() assert_that(self.video_view_page.is_source_data_present(), "No data or Error occurred").is_true() self.video_view_page.select_market_by_name("The United States") assert_that(self.video_view_page.chosen_market_value("us")).is_true() assert_that(self.video_view_page.is_label_present("Forward")).is_true() assert_that(self.video_view_page.is_label_present("Back")).is_true() assert_that(self.video_view_page.is_source_data_present(), "No data or Error occurred").is_true() self.navigation_page.scroll_down() self.video_view_page.switch_range_to_8w() assert_that(self.video_view_page.is_source_data_present(), "No data or Error occurred").is_true() self.navigation_page.scroll_down() self.video_view_page.switch_range_to_26w() assert_that(self.video_view_page.is_source_data_present(), "No data or Error occurred").is_true() self.navigation_page.scroll_down() self.video_view_page.switch_range_to_1y() assert_that(self.video_view_page.is_source_data_present(), "No data or Error occurred").is_true() self.navigation_page.scroll_down() self.video_view_page.switch_range_to_chart_week() assert_that(self.video_view_page.is_source_data_present(), "No data or Error occurred").is_true() @allure.title("Video View - Engagement") @allure.description("User should be able to view Video Engagement page") @allure.testcase("https://data-analytics.atlassian.net/browse/AMA-1927") @pytest.mark.regression def test_view_video_engagement(self): self.login_page.login_as_super_user() self.welcome_page.click_skip_btn() self.artist_selector_page.select_an_artist_by_name(self.artist_name) # Select 1st video track from the list self.library_page.view_all_videos() self.tracks_page.select_track_by_position(1) self.video_view_page.select_market_by_name("The United States") assert_that(self.video_view_page.chosen_market_value("us")).is_true() # YOUTUBE Views assert_that(self.video_view_page.video_charts_list.get_item_by_text('YOUTUBE Engagement').text).contains( 'Likes') assert_that(self.video_view_page.video_charts_list.get_item_by_text('YOUTUBE Engagement').text).contains( 'Dislikes') assert_that(self.video_view_page.video_charts_list.get_item_by_text('YOUTUBE Engagement').text).contains( 'Comments') self.video_view_page.video_charts_list.select_by_text('YOUTUBE Engagement') assert_that(self.video_view_page.chosen_market_value("us")).is_true() assert_that(self.video_view_page.is_label_present("YOUTUBE ")).is_true() assert_that(self.video_view_page.is_label_present("Engagement")).is_true() assert_that(self.video_view_page.is_label_present("Likes")).is_true() assert_that(self.video_view_page.is_label_present("Dislikes")).is_true() assert_that(self.video_view_page.is_label_present("Comments")).is_true() self.video_view_page.switch_range_to_1w() assert_that(self.video_view_page.is_label_present("Likes")).is_true() self.video_view_page.switch_range_to_2w() assert_that(self.video_view_page.is_label_present("Likes")).is_true() self.video_view_page.select_market_by_name("Ukraine") assert_that(self.video_view_page.chosen_market_value("ua")).is_true() assert_that(self.video_view_page.is_label_present("Likes")).is_true() self.video_view_page.switch_range_to_4w() assert_that(self.video_view_page.is_label_present("Likes")).is_true()