Skip to content

Commit 9d25e0d

Browse files
Combining bcss_home_page and navigation_bar_links into one POM: base_page
1 parent 88c33d9 commit 9d25e0d

21 files changed

+75
-107
lines changed
Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
from utils.click_helper import click
33

44

5-
class BcssHomePage:
5+
class BasePage:
66
def __init__(self, page: Page):
77
self.page = page
8-
# Homepage links
8+
# Homepage/Navigation Bar links
99
self.sub_menu_link = self.page.get_by_role("link", name="Show Sub-menu")
1010
self.hide_sub_menu_link = self.page.get_by_role("link", name="Hide Sub-menu")
1111
self.select_org_link = self.page.get_by_role("link", name="Select Org")
@@ -14,9 +14,30 @@ def __init__(self, page: Page):
1414
self.refresh_alerts_link = self.page.get_by_role("link", name="Refresh alerts")
1515
self.user_guide_link = self.page.get_by_role("link", name="User guide")
1616
self.help_link = self.page.get_by_role("link", name="Help")
17+
self.main_menu_link = self.page.get_by_role("link", name="Main Menu")
18+
self.log_out_link = self.page.get_by_role("link", name="Log-out")
19+
# Main menu - page links
20+
self.contacts_list_page = self.page.get_by_role("link", name="Contacts List")
21+
self.bowel_scope_page = self.page.get_by_role("link", name="Bowel Scope")
22+
self.call_and_recall_page = self.page.get_by_role("link", name="Call and Recall")
23+
self.communications_production_page = self.page.get_by_role("link", name="Communications Production")
24+
self.download_page = self.page.get_by_role("link", name="Download")
25+
self.fit_test_kits_page = self.page.get_by_role("link", name="FIT Test Kits")
26+
self.gfob_test_kits_page = self.page.get_by_role("link", name="gFOBT Test Kits")
27+
self.lynch_surveillance_page = self.page.get_by_role("link", name="Lynch Surveillance")
28+
self.organisations_page = self.page.get_by_role("link", name="Organisations")
29+
self.reports_page = self.page.get_by_role("link", name="Reports")
30+
self.screening_practitioner_appointments_page = self.page.get_by_role("link", name="Screening Practitioner")
31+
self.screening_subject_search_page = self.page.get_by_role("link", name="Screening Subject Search")
1732
# Bowel Cancer Screening System header
1833
self.bowel_cancer_screening_system_header = self.page.locator("#ntshAppTitle")
1934

35+
def click_main_menu_link(self)->None:
36+
click(self.page, self.main_menu_link)
37+
38+
def click_log_out_link(self)->None:
39+
click(self.page, self.log_out_link)
40+
2041
def click_sub_menu_link(self)->None:
2142
click(self.page, self.sub_menu_link)
2243

@@ -44,24 +65,6 @@ def click_help_link(self)->None:
4465
def bowel_cancer_screening_system_header_is_displayed(self)->None:
4566
expect(self.bowel_cancer_screening_system_header).to_contain_text("Bowel Cancer Screening System")
4667

47-
48-
class MainMenu:
49-
def __init__(self, page: Page):
50-
self.page = page
51-
# Main menu - page links
52-
self.contacts_list_page = self.page.get_by_role("link", name="Contacts List")
53-
self.bowel_scope_page = self.page.get_by_role("link", name="Bowel Scope")
54-
self.call_and_recall_page = self.page.get_by_role("link", name="Call and Recall")
55-
self.communications_production_page = self.page.get_by_role("link", name="Communications Production")
56-
self.download_page = self.page.get_by_role("link", name="Download")
57-
self.fit_test_kits_page = self.page.get_by_role("link", name="FIT Test Kits")
58-
self.gfob_test_kits_page = self.page.get_by_role("link", name="gFOBT Test Kits")
59-
self.lynch_surveillance_page = self.page.get_by_role("link", name="Lynch Surveillance")
60-
self.organisations_page = self.page.get_by_role("link", name="Organisations")
61-
self.reports_page = self.page.get_by_role("link", name="Reports")
62-
self.screening_practitioner_appointments_page = self.page.get_by_role("link", name="Screening Practitioner")
63-
self.screening_subject_search_page = self.page.get_by_role("link", name="Screening Subject Search")
64-
6568
def go_to_contacts_list_page(self)->None:
6669
click(self.page, self.contacts_list_page)
6770

@@ -96,4 +99,4 @@ def go_to_screening_practitioner_appointments_page(self)->None:
9699
click(self.page, self.screening_practitioner_appointments_page)
97100

98101
def go_to_screening_subject_search_page(self)->None:
99-
click(self.page, self.screening_subject_search_page)
102+
click(self.page, self.screening_subject_search_page)

pages/log_out_page.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from playwright.sync_api import Page, expect
2-
from pages.navigation_bar_links import NavigationBar
2+
from pages.base_page import BasePage
33
import logging
44

55

@@ -14,6 +14,6 @@ def verify_log_out_page(self)->None:
1414

1515
def log_out(self)->None:
1616
logging.info("Test Complete - Logging Out")
17-
NavigationBar(self.page).click_log_out_link()
17+
BasePage(self.page).click_log_out_link()
1818
expect(self.log_out_msg).to_be_visible()
1919
self.page.close()

pages/navigation_bar_links.py

Lines changed: 0 additions & 31 deletions
This file was deleted.

tests/smokescreen/test_compartment_1.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,11 @@
44
from jproperties import Properties
55
from pages.log_out_page import Logout
66
from utils.user_tools import UserTools
7-
from pages.bcss_home_page import MainMenu
7+
from pages.base_page import BasePage
88
from pages.call_and_recall_page import CallAndRecall
99
from pages.invitations_monitoring_page import InvitationsMonitoring
1010
from pages.invitations_plans_page import InvitationsPlans
1111
from pages.create_a_plan_page import CreateAPlan
12-
from pages.navigation_bar_links import NavigationBar
1312
from pages.generate_invitations_page import GenerateInvitations
1413
from playwright.sync_api import Page
1514
from utils.batch_processing import batch_processing
@@ -44,7 +43,7 @@ def test_create_invitations_plan(page: Page, smokescreen_properties: dict) -> No
4443
logging.info("Compartment 1 - Create Invitations Plan")
4544
UserTools.user_login(page, "Hub Manager State Registered")
4645
# Create plan - England
47-
MainMenu(page).go_to_call_and_recall_page()
46+
BasePage(page).go_to_call_and_recall_page()
4847
CallAndRecall(page).go_to_planning_and_monitoring_page()
4948
InvitationsMonitoring(page).go_to_invitation_plan_page(smokescreen_properties["c1_screening_centre_code"])
5049
InvitationsPlans(page).go_to_create_a_plan_page()
@@ -75,8 +74,8 @@ def test_compartment_1(page: Page) -> None:
7574
UserTools.user_login(page, "Hub Manager State Registered")
7675

7776
# Generate Invitations
78-
NavigationBar(page).click_main_menu_link()
79-
MainMenu(page).go_to_call_and_recall_page()
77+
BasePage(page).click_main_menu_link()
78+
BasePage(page).go_to_call_and_recall_page()
8079
CallAndRecall(page).go_to_generate_invitations_page()
8180
logging.info("Generating invitations based on the invitations plan")
8281
GenerateInvitations(page).click_generate_invitations_button()

tests/smokescreen/test_compartment_2.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,8 @@
33
import pytest
44
from playwright.sync_api import Page
55
from pages.fit_test_kits_page import FITTestKits
6-
from pages.bcss_home_page import MainMenu
6+
from pages.base_page import BasePage
77
from pages.log_out_page import Logout
8-
from pages.navigation_bar_links import NavigationBar
98
from pages.log_devices_page import LogDevices
109
from utils.batch_processing import batch_processing
1110
from utils.fit_kit_generation import create_fit_id_df
@@ -46,7 +45,7 @@ def test_compartment_2(page: Page, smokescreen_properties: dict) -> None:
4645
"""
4746
UserTools.user_login(page, "Hub Manager State Registered")
4847

49-
MainMenu(page).go_to_fit_test_kits_page()
48+
BasePage(page).go_to_fit_test_kits_page()
5049
FITTestKits(page).go_to_log_devices_page()
5150
subjectdf = create_fit_id_df()
5251

@@ -71,8 +70,8 @@ def test_compartment_2(page: Page, smokescreen_properties: dict) -> None:
7170
except Exception as e:
7271
pytest.fail(f"Verification failed for NHS number {nhs_no}: {str(e)}")
7372

74-
NavigationBar(page).click_main_menu_link()
75-
MainMenu(page).go_to_fit_test_kits_page()
73+
BasePage(page).click_main_menu_link()
74+
BasePage(page).go_to_fit_test_kits_page()
7675
FITTestKits(page).go_to_log_devices_page()
7776
spoilt_fit_device_id = subjectdf["fit_device_id"].iloc[-1]
7877
logging.info(f"Logging Spoilt FIT Device ID: {spoilt_fit_device_id}")

tests/test_bcss_19181_users_permit_list.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import pytest
22
from playwright.sync_api import Page
33
from utils.user_tools import UserTools
4-
from pages import (login_page as login, bcss_home_page as bcss_home, navigation_bar_links as nav_bar_links, log_out_page as logout, login_failure_screen as login_failure)
4+
from pages import (login_page as login, log_out_page as logout, login_failure_screen as login_failure, base_page as bcss_home)
55
from utils.oracle.oracle import OracleDB
66

77

@@ -12,13 +12,13 @@ def before_test(page: Page):
1212
"""
1313
# Log in to BCSS as bcss401 user, then log out
1414
UserTools.user_login(page, "Hub Manager State Registered")
15-
bcss_home.BcssHomePage(page).bowel_cancer_screening_system_header_is_displayed()
16-
nav_bar_links.NavigationBar(page).click_log_out_link()
15+
bcss_home.BasePage(page).bowel_cancer_screening_system_header_is_displayed()
16+
bcss_home.BasePage(page).click_log_out_link()
1717
logout.Logout(page).verify_log_out_page()
1818
# Log in to BCSS as bcss118 user, then log out
1919
login.BcssLoginPage(page).login_as_user("BCSS118")
20-
bcss_home.BcssHomePage(page).bowel_cancer_screening_system_header_is_displayed()
21-
nav_bar_links.NavigationBar(page).click_log_out_link()
20+
bcss_home.BasePage(page).bowel_cancer_screening_system_header_is_displayed()
21+
bcss_home.BasePage(page).click_log_out_link()
2222
logout.Logout(page).verify_log_out_page()
2323

2424
yield
@@ -31,9 +31,9 @@ def test_only_users_on_approved_can_login_to_bcss(page: Page) -> None:
3131
OracleDB().populate_ui_approved_users_table("BCSS401")
3232
# BCSS401 user successfully logs in to BCSS whilst on the approved list
3333
login.BcssLoginPage(page).login_as_user("BCSS401")
34-
bcss_home.BcssHomePage(page).bowel_cancer_screening_system_header_is_displayed()
34+
bcss_home.BasePage(page).bowel_cancer_screening_system_header_is_displayed()
3535
# BCSS401 user logs out
36-
nav_bar_links.NavigationBar(page).click_log_out_link()
36+
bcss_home.BasePage(page).click_log_out_link()
3737
logout.Logout(page).verify_log_out_page()
3838

3939
# BCSS118 user fails to logs in to BCSS as they are not on the approved list

tests/test_bowel_scope_page.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import pytest
22
from playwright.sync_api import Page, expect
33
from utils.click_helper import click
4-
from pages.bcss_home_page import MainMenu
4+
from pages.base_page import BasePage
55
from utils.user_tools import UserTools
66

77

@@ -14,7 +14,7 @@ def before_each(page: Page):
1414
UserTools.user_login(page, "Hub Manager State Registered")
1515

1616
# Go to bowel scope page
17-
MainMenu(page).go_to_bowel_scope_page()
17+
BasePage(page).go_to_bowel_scope_page()
1818

1919

2020
@pytest.mark.smoke

tests/test_call_and_recall_page.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from sys import platform
33
from playwright.sync_api import Page, expect
44
from utils.click_helper import click
5-
from pages.bcss_home_page import MainMenu
5+
from pages.base_page import BasePage
66
from utils.user_tools import UserTools
77
from jproperties import Properties
88

@@ -35,7 +35,7 @@ def before_each(page: Page):
3535
UserTools.user_login(page, "Hub Manager State Registered")
3636

3737
# Go to call and recall page
38-
MainMenu(page).go_to_call_and_recall_page()
38+
BasePage(page).go_to_call_and_recall_page()
3939

4040

4141
@pytest.mark.smoke

tests/test_communications_production_page.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import pytest
22
from playwright.sync_api import Page, expect
33
from pages.login_page import BcssLoginPage
4-
from pages.bcss_home_page import MainMenu
4+
from pages.base_page import BasePage
55
from utils.click_helper import click
66
from utils.user_tools import UserTools
77

@@ -16,7 +16,7 @@ def before_each(page: Page):
1616
UserTools.user_login(page, "Hub Manager State Registered")
1717

1818
# Go to communications production page
19-
MainMenu(page).go_to_communications_production_page()
19+
BasePage(page).go_to_communications_production_page()
2020

2121

2222
@pytest.mark.smoke

tests/test_contacts_list_page.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import pytest
22
from playwright.sync_api import Page, expect
33
from utils.click_helper import click
4-
from pages.bcss_home_page import MainMenu
4+
from pages.base_page import BasePage
55
from utils.user_tools import UserTools
66

77

@@ -14,7 +14,7 @@ def before_each(page: Page):
1414
UserTools.user_login(page, "Hub Manager State Registered")
1515

1616
# Go to contacts list page
17-
MainMenu(page).go_to_contacts_list_page()
17+
BasePage(page).go_to_contacts_list_page()
1818

1919

2020
@pytest.mark.smoke

0 commit comments

Comments
 (0)