import json import unittest from argparse import Namespace import allure import pytest from ui_automation_framework.core import TestStatus from ui_automation_framework.utils import AppConfig from app.api_client import ApiClient from ...pages.add_track_popup import AddTrackPopup from ...pages.comparison_page import TrackComparisonPage from ...pages.left_navigation_panel import LeftNavigationPanel from ...pages.login_page import LoginPage from ...pages.track_page import TrackPage @pytest.mark.usefixtures("set_up", "one_time_set_up") class ComparisonPlaylistSupportTest(unittest.TestCase): track4 = json.loads(json.dumps(AppConfig.get("track4")), object_hook=lambda d: Namespace(**d)) @pytest.fixture(autouse=True) def classSetup(self): self.loginPage = LoginPage(self.driver) self.trackPage = TrackPage(self.driver) self.add_track_popup = AddTrackPopup(self.driver) self.comparison_page = TrackComparisonPage(self.driver) self.left_panel = LeftNavigationPanel(self.driver) self.api_client = ApiClient() self.ts = TestStatus(self.driver) @allure.story("AP-2633") @allure.severity(allure.severity_level.NORMAL) @allure.title("Verification of all required components for initial page without tracks") @allure.description("TC verifies Track Cards section has new design with no tracks are added to comparison and all required " "elements are present and work as expected") def test_initial_page_components(self): self.comparison_page.remove_tracks_if_present_with_worker(AppConfig.get("market")["us"]["market"]) self.loginPage.login_with_worker() self.loginPage.is_logged_in() self.left_panel.open_comparison_page() self.comparison_page.comparison_page_is_opened() layout_changed = self.comparison_page.is_button_layout_changed_after_hover() self.ts.markFinal(layout_changed, "STEP 1-4: layout of add track button is changed : {}".format(layout_changed)) self.comparison_page.click_add_first_track_button() self.add_track_popup.is_popup_displayed() self.comparison_page.refresh() self.comparison_page.click_add_first_track_button() self.add_track_popup.add_track_to_comparison([self.track4.name, self.track4.artist]) is_added = self.comparison_page.is_track_added([self.track4.name]) tracks_added_count = self.comparison_page.get_count_of_added_tracks() self.comparison_page.is_add_card_displayed() self.ts.markFinal(is_added, "STEP 5-7: track is added: {}".format(is_added)) self.ts.markFinal(tracks_added_count == 1, "count of added tracks: {}".format(tracks_added_count))