Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 17 additions & 31 deletions testCases/test_02_admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,9 +90,10 @@ def test_case_01_edit_disease_and_drugs(self):
"drug_switch": drug_switch, "drug_name": drug_name}
)


@pytest.mark.smoketest
@pytest.mark.dependency(name="tc_admin_2", depends=['tc_admin_1'] ,scope="class")
def test_case_02_verify_disease_and_drugs(self):
@pytest.mark.dependency(name="tc_admin_2_a", depends=['tc_admin_1'] ,scope="class")
def test_case_02_verify_disease_and_drugs_part_1(self):
login = LoginPage(self, "login")
self._login_once()
home = HomePage(self, "dashboard")
Expand All @@ -115,52 +116,47 @@ def test_case_02_verify_disease_and_drugs(self):
else:
default_client = UserData.client[2]

home.click_admin_profile_button()
profile.logout_user()
login.after_logout()
login.login(self.settings["login_username"], self.settings["login_password"])

home.open_dashboard_page()
home.open_manage_patient_page()
patient.search_test_patients()
patient.open_first_patient()
p_regimen.open_patient_regimen_page()
p_regimen.verify_patient_regimen_page()
p_regimen.verify_diseases_present(d['disease_name'], d['disease_switch'])
try:
home.click_admin_profile_button()
profile.logout_user()
login.after_logout()
except:
print("Logged out already")

try:
login.login(self.settings["login_username"], self.settings["login_password"])
except Exception:
print("Login Page is not present")
except:
print("Not the Login Page")

home.open_dashboard_page()
home.open_manage_patient_page()
patient.search_test_patients()
patient.open_first_patient()
p_regimen.open_patient_regimen_page()
p_regimen.verify_patient_regimen_page()
p_regimen.verify_diseases_present(d['disease_name'], d['disease_switch'])
p_regimen.verify_drugs_present(d['drug_name'], d['drug_switch'])

home.click_admin_profile_button()
profile.logout_user()
login.after_logout()
login.login(self.settings["login_username"], self.settings["login_password"])

home.open_dashboard_page()
home.validate_dashboard_page(50)
home.open_admin_page()
admin.validate_admin_page(default_client)
admin.expand_diseases()
disease_switch_now, disease_name = a_disease.toggle_for_disease(d['disease_name'], "OFF")

home.open_dashboard_page()
home.validate_dashboard_page()
home.validate_dashboard_page(20)
home.open_admin_page()
admin.validate_admin_page(default_client)
admin.expand_diseases()
a_disease.double_check_on_toggle(disease_name, disease_switch_now)

home.open_dashboard_page()
home.validate_dashboard_page()
home.validate_dashboard_page(20)
home.open_admin_page()
admin.validate_admin_page(default_client)
admin.expand_drugs()
Expand All @@ -179,37 +175,27 @@ def test_case_02_verify_disease_and_drugs(self):
a_drug.double_check_on_toggle(drug_name, drug_switch_now)

print(f"Before: {d['disease_switch']}, Drug Name: {disease_name}, After: {disease_switch_now}")

print("sleeping for the changes to reflect...")
time.sleep(15)
print(f"Before: {d['drug_switch']}, Drug Name: {d['drug_name']}, After: {drug_switch_now}")

try:
home.open_dashboard_page()
except Exception:
login.login(self.settings["login_username"], self.settings["login_password"])
home.open_dashboard_page()


home.open_manage_patient_page()
patient.search_test_patients()
patient.open_first_patient()
p_regimen.open_patient_regimen_page()
p_regimen.verify_patient_regimen_page()
p_regimen.verify_diseases_present(disease_name, disease_switch_now)

home.open_dashboard_page()
print(f"Before: {d['drug_switch']}, Drug Name: {d['drug_name']}, After: {drug_switch_now}")
home.open_manage_patient_page()
patient.search_test_patients()
patient.open_first_patient()
p_regimen.open_patient_regimen_page()
p_regimen.verify_patient_regimen_page()
p_regimen.verify_drugs_present(drug_name, drug_switch_now)

home.click_admin_profile_button()
profile.logout_user()
login.after_logout()


@pytest.mark.smoketest
@pytest.mark.dependency(name="tc_admin_3", scope="class")
def test_case_03_admin_announcement(self):
Expand Down
12 changes: 9 additions & 3 deletions testCases/test_06_staff_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -225,8 +225,6 @@ def test_case_07_add_staff_invalid_password(self):
login.after_logout()




@pytest.mark.extendedtests
@pytest.mark.dependency(name="tc_staff_8", depends= ["tc_staff_1"], scope="class")
def test_case_08_search_staff(self):
Expand All @@ -236,6 +234,7 @@ def test_case_08_search_staff(self):
user = UserPage(self, "add_users")
staff = ManageStaffPage(self, "staff")
user_staff = UserStaffPage(self, "add_staff")
profile = UserProfilePage(self, "user")

d = self.__class__.data # shared dict
try:
Expand Down Expand Up @@ -275,16 +274,20 @@ def test_case_08_search_staff(self):
staff.validate_manage_staff_page()
staff.search_staff_with_partial_info(d['fname_stf'],d['lname_stf'], caps=True)

home.click_admin_profile_button()
profile.logout_user()
login.after_logout()

@pytest.mark.extendedtests
@pytest.mark.dependency(name="tc_staff_10", depends=["tc_staff_1"], scope="class")

def test_case_10_edit_staff(self):
self._login_once()
login = LoginPage(self, "login")
home = HomePage(self, "dashboard")
user = UserPage(self, "add_users")
staff = ManageStaffPage(self, "staff")
user_staff = UserStaffPage(self, "add_staff")
profile = UserProfilePage(self, "user")

d = self.__class__.data

Expand Down Expand Up @@ -331,6 +334,9 @@ def test_case_10_edit_staff(self):
staff.search_staff(new_fname, new_lname, manager=UserData.default_managers, site=default_site_manager)
self.__class__.data.update({"fname_stf": new_fname, "lname_stf": new_lname})

home.click_admin_profile_button()
profile.logout_user()
login.after_logout()

@pytest.mark.extendedtests
@pytest.mark.dependency(name="tc_staff_11", scope="class")
Expand Down
4 changes: 3 additions & 1 deletion testCases/test_07_staff_manager_roles.py
Original file line number Diff line number Diff line change
Expand Up @@ -365,6 +365,7 @@ def test_case_04_validate_role_site_staff_admin(self):

@pytest.mark.extendedtests
@pytest.mark.dependency(name="tc_staff_role_5", depends=['tc_staff_role_1'], scope="class")
# @pytest.mark.xfail(reason="Failing due to https://sureadhere.atlassian.net/browse/SA3-3700")
def test_case_05_validate_role_client_staff_admin(self):
login = LoginPage(self, "login")
home = HomePage(self, "dashboard")
Expand Down Expand Up @@ -435,7 +436,7 @@ def test_case_05_validate_role_client_staff_admin(self):
staff.search_staff(fname, lname, email, phn, manager=None, site=site)
staff.open_staff(fname, lname)
user_staff.verify_presence_of_save_button(presence=True)
user_staff.edit_staff_info_options(fname, lname, remove_managers=['PM'])
user_staff.edit_staff_info_options(fname, lname, remove_managers=['SS'])
user_staff.save_changes()
staff.search_staff(fname, lname, email, phn, manager=None, site=site)

Expand All @@ -449,6 +450,7 @@ def test_case_05_validate_role_client_staff_admin(self):

@pytest.mark.extendedtests
@pytest.mark.dependency(name="tc_staff_role_6", depends=['tc_staff_role_1'], scope="class")
@pytest.mark.xfail(reason="Failing due to https://sureadhere.atlassian.net/browse/SA3-3700")
def test_case_06_validate_role_global_data_admin(self):
login = LoginPage(self, "login")
home = HomePage(self, "dashboard")
Expand Down
15 changes: 10 additions & 5 deletions testPages/admin_page/admin_ff_page.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,18 @@ def __init__(self, sb, page_name):
def validate_admin_ff_page(self, client):
self.wait_for_element('kendo-dropdownlist-input-value-Client')
self.wait_for_element('div_content')
text = self.get_text('kendo-dropdownlist-input-value-Client')
if text != client:
if self.kendo_dd_get_selected_text('kendo-dropdownlist-input-value-Client') != client:
self.kendo_dd_select_text_old('kendo-dropdownlist-input-value-Client', client)
time.sleep(2)
text = self.get_text('kendo-dropdownlist-input-value-Client')
else:
print(f"Correct Client {client} is present")
print("Site already selected")

# if text != client:
# self.kendo_dd_select_text_old('kendo-dropdownlist-input-value-Client', client)
# time.sleep(2)
# text = self.get_text('kendo-dropdownlist-input-value-Client')
# else:
# print(f"Correct Client {client} is present")
text = self.kendo_dd_get_selected_text('kendo-dropdownlist-input-value-Client')
assert text == client, f"Correct Client {client} is not present"
# print(f"Correct Client {client} is not present")
print(f"Admin Feature Flag opened with Client {text}")
Expand Down
18 changes: 13 additions & 5 deletions testPages/admin_page/admin_page.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,21 @@ def validate_admin_page(self, site_manager):
self.wait_for_element('kendo-expansionpanel_Diseases')
self.wait_for_element('kendo-expansionpanel_Drugs')
self.wait_for_element('kendo-expansionpanel_Languages')
text = self.get_text('kendo-dropdownlist-input-value-Client')
if text != site_manager:


if self.kendo_dd_get_selected_text('kendo-dropdownlist-input-value-Client') != site_manager:
self.kendo_dd_select_text_old('kendo-dropdownlist-input-value-Client', site_manager)
time.sleep(2)
text = self.get_text('kendo-dropdownlist-input-value-Client')
else:
print(f"Correct Client {site_manager} is present")
print("Site already selected")

# text = self.get_text('kendo-dropdownlist-input-value-Client')
# if text != site_manager:
# self.kendo_dd_select_text_old('kendo-dropdownlist-input-value-Client', site_manager)
# time.sleep(2)
# text = self.get_text('kendo-dropdownlist-input-value-Client')
# else:
# print(f"Correct Client {site_manager} is present")
text = self.kendo_dd_get_selected_text('kendo-dropdownlist-input-value-Client')
assert text == site_manager, f"Correct Client {site_manager} is not present"
print(f"Correct Client {site_manager} is not present")
print(f"Admin Page opened with Client {text}")
Expand Down
18 changes: 11 additions & 7 deletions testPages/home_page/home_page.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ class HomePage(BasePage):
def __init__(self, sb, page_name):
super().__init__(sb, page_name=page_name)

def validate_dashboard_page(self):
self.wait_for_page_to_load(150)
def validate_dashboard_page(self, timeout=150):
self.wait_for_page_to_load(timeout)
self.verify_page_title("SureAdhere", 60)
self.wait_for_element("p_Dashboard", 100)
assert self.is_element_visible("p_Dashboard"), "Its is not the Dashboard"
Expand All @@ -26,14 +26,17 @@ def click_add_user(self):
def open_manage_staff_page(self):
self.click('p_Staff')
self.wait_for_page_to_load()
time.sleep(6)

def open_dashboard_page(self):
self.click('p_Dashboard')
self.wait_for_page_to_load()
time.sleep(6)

def open_reports_page(self):
self.click('p_Reports')
self.wait_for_page_to_load()
time.sleep(6)

def click_admin_profile_button(self):
time.sleep(2)
Expand Down Expand Up @@ -83,10 +86,11 @@ def verify_presence_of_reports_menu(self, presence=True):
def open_manage_patient_page(self):
self.click('p_Patients')
self.wait_for_page_to_load()
time.sleep(6)

def open_admin_page(self):
self.click('p_Admin')
time.sleep(5)
time.sleep(6)
self.wait_for_page_to_load()

def check_for_quick_actions(self):
Expand All @@ -109,8 +113,8 @@ def check_for_video_review(self, pat_name, sa_id):
if sa_id in sa_id_text:
print(f"{sa_id} is present. Matches {sa_id_text}")
vids.click()
time.sleep(10)
self.wait_for_page_to_load()
time.sleep(6)
self.wait_for_page_to_load(80)
break # stop looping after success
else:
print(f"{sa_id} does not match {sa_id_text}")
Expand Down Expand Up @@ -162,8 +166,8 @@ def close_filter(self):
def open_filter_search_staff(self, filter_name, name):
self.click(f"span_{filter_name}")
time.sleep(5)
self.wait_for_page_to_load(60)
time.sleep(10)
self.wait_for_page_to_load(80)
time.sleep(6)
self.wait_for_element(f"{filter_name}_bar", 60)
values = self.get_li_items(f"{filter_name}_bar")
# print(values)
Expand Down
4 changes: 2 additions & 2 deletions testPages/manage_staff_page/manage_staff_page.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,15 +76,15 @@ def get_first_staff_name(self):

def open_inactive_tab(self):
self.click("li_span_Inactive_tab")
time.sleep(5)
time.sleep(15)
self.wait_for_page_to_load()
self.wait_for_element("span_Manage_staff", 50)
self.wait_for_element("tbody_staff", 100)
self.wait_for_element('a_name', 50)

def open_test_tab(self):
self.click("li_span_Test_tab")
time.sleep(5)
time.sleep(15)
self.wait_for_page_to_load()
self.wait_for_element("span_Manage_staff", 50)
self.wait_for_element("tbody_staff", 100)
Expand Down
19 changes: 3 additions & 16 deletions testPages/patient_tab_pages/patient_regimen_page.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,21 +115,7 @@ def create_new_schedule(self, multi=False):
# assert "Drug 1" in self.kendo_ms_get_selected("kendo-multiselect-drugs")
self.wait_for_element("kendo-multiselect-drugs")
drugs = self.kendo_ms_get_all_texts("kendo-multiselect-drugs")
filtered_drugs = [
d.strip() for d in drugs
if d and d.strip()
and ',' not in d
and '/' not in d
and ' ' not in d
and 'Sofosbuvir' not in d # optional: single-word only
]

if not filtered_drugs:
raise AssertionError(f"No valid drug found. Raw drugs list: {drugs}")

selected_drug = random.choice(filtered_drugs)
print(f"Selected drug: {selected_drug}")

selected_drug = random.choice(drugs)
self.click('kendo-multiselect-drugs')
self.kendo_select("input_drugs", text=selected_drug)
# self.kendo_select_first("input_drugs")
Expand All @@ -149,7 +135,8 @@ def create_new_schedule(self, multi=False):
print( f"Total dose match: {str(UserData.no_of_pills * UserData.dose_per_pill)} and {total_pills}")

self.click_robust('button_CREATE')
self.wait_for_page_to_load()
time.sleep(5)
self.wait_for_page_to_load(80)
time.sleep(5)

# Example: start on 2025-10-27, weekdays only, for 3 weeks
Expand Down
3 changes: 2 additions & 1 deletion testPages/patient_tab_pages/patient_video_page.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,8 @@ def fill_up_review_form(self, meds, no_of_pills, dose_per_pill):
assert meds == drug_name, f"{meds} not in {drug_name}"
print(f"{meds} matches {drug_name}")
timestamp_text = self.get_text('span_commented_timestamp')
assert formatted_now in timestamp_text, f"{str(formatted_now)} not in {timestamp_text}"
self.assert_timestamp_within_minutes(timestamp_text, now, tolerance_minutes=2)
# assert formatted_now in timestamp_text, f"{str(formatted_now)} not in {timestamp_text}"
print(f"{str(formatted_now)} is in {timestamp_text}")

full_text = self.get_text('div_commented_user_timestamp')
Expand Down
Loading