import unittest import allure import pytest from assertpy import assert_that from ui_automation_framework.core import TestStatus from app.src.pages.juno_page import JunoPage from app.src.pages.juno_popup_filters import JunoFilterPopup 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 JunoPageTest(unittest.TestCase): @pytest.fixture(autouse=True) def classSetup(self): self.loginPage = LoginPage(self.driver) self.track_page = TrackPage(self.driver) self.juno = JunoPage(self.driver) self.juno_filter_popup = JunoFilterPopup(self.driver) self.ts = TestStatus(self.driver) @allure.story("AP-9200") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-8252][Juno] Sorting rules verification") @allure.description("TC verifies sorting rules on the Juno page") def test_juno_sorting_rules_verification(self): self.loginPage.login_with_worker() self.juno.open() # step 1 streams_7_days = self.juno.get_table_column_values(self.juno.current_7_days_streams_column) assert_that(streams_7_days).is_sorted(reverse=True) # step 2 self.juno.click_on_column(self.juno.current_7_days_streams_column) streams_7_days = self.juno.get_table_column_values(self.juno.current_7_days_streams_column) assert_that(streams_7_days).is_sorted() self.juno.click_on_column(self.juno.current_7_days_streams_column) streams_7_days = self.juno.get_table_column_values(self.juno.current_7_days_streams_column) assert_that(streams_7_days).is_sorted(reverse=True) # step 3 self.juno.click_on_column(self.juno.previous_7_days_streams_column) prev_streams_7_days = self.juno.get_table_column_values(self.juno.previous_7_days_streams_column) assert_that(prev_streams_7_days).is_sorted(reverse=True) self.juno.click_on_column(self.juno.previous_7_days_streams_column) prev_streams_7_days = self.juno.get_table_column_values(self.juno.previous_7_days_streams_column) assert_that(prev_streams_7_days).is_sorted() # step 4 self.juno.click_on_column(self.juno.current_7_days_streams_change_column) curr_streams_7_change = self.juno.get_table_column_values(self.juno.current_7_days_streams_change_column) curr_streams_7_change = [int(v.split("\n")[0]) for v in curr_streams_7_change] assert_that(curr_streams_7_change).is_sorted(reverse=True) self.juno.click_on_column(self.juno.current_7_days_streams_change_column) curr_streams_7_change = self.juno.get_table_column_values(self.juno.current_7_days_streams_change_column) curr_streams_7_change = [int(v.split("\n")[0]) for v in curr_streams_7_change] assert_that(curr_streams_7_change).is_sorted() # step 5 self.juno.click_on_column(self.juno.current_7_days_streams_column) streams_7_days = self.juno.get_table_column_values(self.juno.current_7_days_streams_column) assert_that(streams_7_days).is_sorted(reverse=True) self.juno.click_on_column(self.juno.current_7_days_streams_column) streams_7_days = self.juno.get_table_column_values(self.juno.current_7_days_streams_column) assert_that(streams_7_days).is_sorted()