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 from app.api_client import ApiClient from app.mysql_db_client_custom import MySqlClient from app.src.pages.album_page import AlbumPage from app.src.pages.left_navigation_panel import LeftNavigationPanel from app.src.pages.login_page import LoginPage from app.src.pages.new_music_friday import NewMusicFridayPage from app.src.pages.track_page import TrackPage @pytest.mark.usefixtures("set_up", "one_time_set_up") class NewMusicFridayPageTest(unittest.TestCase): nmf_test_date = "2021-06-18" @pytest.fixture(autouse=True) def classSetup(self): self.loginPage = LoginPage(self.driver) self.nmf = NewMusicFridayPage(self.driver) self.left_panel = LeftNavigationPanel(self.driver) self.track_page = TrackPage(self.driver) self.album_page = AlbumPage(self.driver) self.api_client = ApiClient() self.sql_client = MySqlClient() self.ts = TestStatus(self.driver) @allure.story("AP-1690") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-1593] NMF: Displaying of 'Sony' tracks") @allure.description("""TC verifies that the user can see Sony tracks on the NMF page.""") def test_displaying_sony_tracks(self): user = self.loginPage.get_user_email_with_worker() token = self.api_client.authorize(user=user) self.loginPage.login_with_worker() self.track_page.select_market(AppConfig.get("market")["australia"]["name"]) self.left_panel.open_right_hamburger_menu_pages(self.left_panel.link_nmf) self.nmf.set_nmf_date_using_url(self.nmf_test_date) # step 1 track_names_list = self.nmf.get_nmf_track_names_per_page_loaded() sony_tracks_amount = self.nmf.get_sony_tracks_amount_per_page_loaded() assert_that(sony_tracks_amount).is_greater_than(0) assert_that(len(track_names_list) - sony_tracks_amount).is_greater_than(0) # step 2 self.nmf.filter_by_sony_non_sony([self.nmf.filter_sony]) track_names_top_list = self.nmf.get_nmf_track_names_per_page_loaded() sony_tracks_top_list_amount = self.nmf.get_sony_tracks_amount_per_page_loaded() self.nmf.scroll_to_last_visible_track() track_names_end_list = self.nmf.get_nmf_track_names_per_page_loaded() sony_tracks_end_list_amount = self.nmf.get_sony_tracks_amount_per_page_loaded() assert_that(len(track_names_top_list)).is_equal_to(sony_tracks_top_list_amount) assert_that(len(track_names_end_list)).is_equal_to(sony_tracks_end_list_amount) # step 3 self.nmf.enter_nmf_search_value(AppConfig.get("track52")["name"]) self.nmf.open_track_page_from_nmf(AppConfig.get("track52")["name"]) self.track_page.is_track_page_title_present(AppConfig.get("track52")["name"]) self.track_page.is_sony_label_present() # step 4-5 self.track_page.tp_navigate_to_album() self.album_page.album_title_is_present() upc = self.album_page.get_upc()["UPC"] album_api_info = self.api_client.get_is_sony_album(market=AppConfig.get("market")["australia"]["market"], upc=upc, token=token) assert_that(album_api_info[0]["isSony"]).is_true() # step 6 music_service_id = self.sql_client.get_music_service_id(upc=upc, market=AppConfig.get("market")["australia"]["market"]) assert_that(music_service_id[0]).is_equal_to(1) # step 7-9 self.track_page.select_market(AppConfig.get("market")["us"]["name"]) music_service_id = self.sql_client.get_music_service_id(upc=upc, market=AppConfig.get("market")["us"]["market"]) assert_that(music_service_id).is_none() # step 10 self.left_panel.open_right_hamburger_menu_pages(self.left_panel.link_nmf) self.nmf.set_nmf_date_using_url(self.nmf_test_date) self.nmf.enter_nmf_search_value(AppConfig.get("track52")["name"]) sony_label = self.nmf.is_track_has_sony_label(AppConfig.get("track52")["id"]) assert_that(sony_label).is_false() # step 11 self.nmf.open_track_page_from_nmf(AppConfig.get("track52")["name"]) self.track_page.is_track_page_title_present(AppConfig.get("track52")["name"]) self.track_page.is_sony_label_present(present=False)