def get_collection_exercise_details(): ce_details = { "survey_info": browser.find_by_name('survey-info').value, "survey_title": browser.find_by_name('survey-title').value, "period": browser.find_by_name('period').value, "user_description": browser.find_by_name('user-description').value } return ce_details
def assert_new_date_displayed(_, event, day, month, year): # tds not supporting id , so using name , resulting in needing to manipulate event string to match expected name = event.replace('_', '-') name = "first-reminder" if event == 'reminder' else name name = "second-reminder" if event == 'reminder2' else name name = "third-reminder" if event == 'reminder3' else name assert day in browser.find_by_name(f"{name}-date").text assert month[:3] in browser.find_by_name(f"{name}-date").text assert year in browser.find_by_name(f"{name}-date").text
def view_full_conversation_date_time_msg_details(): internals = browser.find_by_name('sm-from-ons') # TODO Enable this when we are able to send message from Front-stage # externals = browser.find_by_name('sm-from-respondent') return len(internals.find_by_name('sm-sent-date'))
def is_conversation_with_sent_and_received_messages(): internals = browser.find_by_name('sm-from-ons') # TODO Enable this when we are able to send message from Front-stage # external = browser.find_by_name('sm-from-respondent') return len(internals) == 1
def click_edit_details(survey_short_name, email): respondents_table = browser.find_by_name('tbl-respondents-for-survey') rows = respondents_table.find_by_tag('tbody').find_by_tag('tr') for row in rows: details = row.find_by_name('tbl-respondent-details').first if details.find_by_name('tbl-respondent-email').value == email: details.find_by_id(f'edit-contact-details-btn-{survey_short_name}').click() break
def assert_view_response_status_link(context): reporting_unit.go_to(context.short_name) reporting_unit.click_data_panel(context.short_name) response_table = browser.find_by_name('tbl-ce-for-survey') rows = response_table.find_by_tag('tbody').find_by_tag('tr') for row in rows: if context.period in row.text: assert browser.is_text_present('Completed by phone View')
def click_change_enrolment(email): # Clicks the disable or enable link wait_for_element_by_name('tbl-respondents-for-survey', timeout=3, retry=1) respondents_table = browser.find_by_name('tbl-respondents-for-survey') rows = respondents_table.find_by_tag('tbody').find_by_tag('tr') for row in rows: details = row.find_by_name('tbl-respondent-details').first if details.find_by_name('tbl-respondent-email').value == email: change_enrolment_link = row.find_by_id('change-enrolment-status') scroll_to(change_enrolment_link).click() break
def count_thread_message(): internals = browser.find_by_name('sm-from-ons') external = browser.find_by_name('sm-from-respondent') return len(internals) + len(external)
def click_surveys_link(): link = browser.find_by_name('surveys-link') link.click()
def click_qbs_survey_link(): link = browser.find_by_name('survey-link-QBS') link.click()
def click_survey_link(context): link = browser.find_by_name(f'survey-link-{context.short_name}') link.click()
def _named_element_on_page(name): """Returns True if element of name:name is on current page, else False""" try: return True if browser.find_by_name(name) else False except NoSuchElementException: return False
def get_conversation_messages(): return browser.find_by_name('conversation-message')
def get_collection_exercise_periods(): wait_for_element_by_name('period', timeout=3, retry=1) return browser.find_by_name('period')
def get_body_from_last_message(): return browser.find_by_name("conversation-message-body")[-1].value
def click_ce_link(period): link = browser.find_by_name(f'ce-link-{period}') link.click()
def get_collection_exercise_events(): ce_events = { "mps": browser.find_by_name('mps-date').value, "go_live": browser.find_by_name('go-live-date').value, "return_by": browser.find_by_name('return-by-date').value, "reminder": browser.find_by_name('first-reminder-date').value, "exercise_end": browser.find_by_name('exercise-end-date').value, "ref_period_start": browser.find_by_name('period-start-date').value, "ref_period_end": browser.find_by_name('period-end-date').value, "employment": browser.find_by_name('employment-date').value, "first_reminder": browser.find_by_name('first-reminder-date').value, "second_reminder": browser.find_by_name('second-reminder-date').value, "third_reminder": browser.find_by_name('third-reminder-date').value, } return ce_events
def add_eq_ci(): wait_for_element_by_name('checkbox-answer', timeout=2, retry=1) browser.find_by_name('checkbox-answer').first.check() wait_for_element_by_id('btn-add-ci', timeout=2) browser.find_by_id('btn-add-ci').click()
def view_last_anchored_message(): last_message = browser.find_by_name('latest-message') return len(last_message.find_by_id('sm-from-ons-1')) == 1
def get_associated_surveys(): survey_titles = browser.find_by_name('survey-titles') surveys = [title.value for title in survey_titles] return surveys
def get_unread_messages(): return browser.find_by_name('message-unread')
def check_invalid_event_date_not_persisted(context): collection_exercise_details.go_to(context.short_name, context.period) assert len(browser.find_by_name("mps-date").text) == 0