def signed_in_respondent_with_email(email): browser.visit(Config.FRONTSTAGE_SERVICE + '/sign-in') if '/sign-in' in browser.url: browser.driver.find_element_by_id('username').send_keys(email) browser.driver.find_element_by_id('inputPassword').send_keys( Config.RESPONDENT_PASSWORD) browser.find_by_id('sign_in_button').click()
def go_to(context): browser.visit(f'{Config.RESPONSE_OPERATIONS_UI}' "/reporting-units/" f"{context.short_name}") click_data_panel(context.short_name) browser.find_by_id("create-message-button-1").click() assert "messages/create-message" in browser.url
def sign_in_respondent_without_go_to(context): if '/sign-in' in browser.url: browser.driver.find_element_by_id('username').send_keys( context.respondent_email) browser.driver.find_element_by_id('inputPassword').send_keys( Config.RESPONDENT_PASSWORD) browser.find_by_id('sign_in_button').click()
def confirm_correct_survey_selected(context): actual_iac = browser.find_by_id('enrolment_code').value actual_long_name = browser.find_by_id('survey_name').value assert context.iac == actual_iac assert context.long_name == actual_long_name browser.find_by_id('confirm_button').click()
def get_respondent_details(): respondent_details = { "email": browser.find_by_id('respondent-email').value, "name": browser.find_by_id('respondent-name').value, "telephone": browser.find_by_id('respondent-phone').value, "account_status": browser.find_by_id('respondent-account-status').value } return respondent_details
def access_survey(survey_name): surveys_list = get_surveys_list() for survey in surveys_list.find_by_tag('li'): if survey.find_by_id( 'SURVEY_NAME') and survey_name in survey.find_by_id( 'SURVEY_NAME').text: browser.find_by_id('access_survey_button_1').click() break
def signed_in_respondent(context): sign_in_respondent.go_to() # Only attempt to sign in if not already signed in otherwise implicitly redirected to homepage if '/sign-in' in browser.url: browser.driver.find_element_by_id('username').send_keys( context.respondent_email) browser.driver.find_element_by_id('inputPassword').send_keys( Config.RESPONDENT_PASSWORD) browser.find_by_id('sign_in_button').click()
def get_address(): address_details = { "address_line_1": browser.find_by_id('case-address-line1').text, "address_line_2": browser.find_by_id('case-address-line2').text, "locality": browser.find_by_id('case-locality').text, "town": browser.find_by_id('case-town-name').text, "postcode": browser.find_by_id('case-postcode').text } return address_details
def complete_account_details(context): browser.driver.find_element_by_id('first_name').send_keys('FirstName') browser.driver.find_element_by_id('last_name').send_keys('LastName') browser.driver.find_element_by_id('email_address').send_keys( context.respondent_email) browser.driver.find_element_by_id('email_address_confirm').send_keys( context.respondent_email) browser.driver.find_element_by_id('password').send_keys('A234567_') browser.driver.find_element_by_id('password_confirm').send_keys('A234567_') browser.driver.find_element_by_id('phone_number').send_keys('01172345678') browser.find_by_id('continue_button').click()
def try_sign_out(): sign_in_internal.go_to() if browser.find_by_id('sign-out-btn'): sign_out() else: logger.info(f"Could not see log out button on url {browser.url}")
def get_subject_and_body(): form_text_fields = browser.find_by_id("secure-message-form").first form_text_field_attributes = { 'subject': form_text_fields.find_by_id('secure-message-subject').value, 'body': form_text_fields.find_by_id('secure-message-body').value } return form_text_field_attributes
def get_cases(): wait_for_text_present_with_reloads('Ref:', timeout=5, retry=1, reload_count=10) case_list = browser.find_by_id('survey-list').find_by_name('survey-card') cases = [{ "survey": case.find_by_id('SURVEY_NAME').text, "business_details": case.find_by_name('reporting-unit-details').text, "period": case.find_by_name('period').text, "status": case.find_by_name('status').text } for case in case_list]
def get_ru_details_attributes(): ru_details_table = browser.find_by_id("create-message-form").first ru_details_table_attributes = { 'survey': ru_details_table.find_by_id('hidden_survey').value, 'ru_ref': ru_details_table.find_by_id('hidden_ru_ref').value, 'business': ru_details_table.find_by_id('hidden_business').value, 'to': ru_details_table.find_by_id('hidden_to').value, 'to_uuid': ru_details_table.find_by_id('hidden_to_uuid').value, 'to_ru_id': ru_details_table.find_by_id('hidden_to_ru_id').value } return ru_details_table_attributes
def get_surveys(): surveys = [] table = browser.find_by_id('tbl-surveys').first rows = table.find_by_tag('tbody').find_by_tag('tr') for row in rows: surveys.append({ 'id': row.find_by_name('tbl-surveys-id').value, 'name': row.find_by_name('tbl-surveys-title').value, 'short_name': row.find_by_name('tbl-surveys-abbreviation').value, 'legal_basis': row.find_by_name('tbl-surveys-legal-basis').value, }) return surveys
def get_survey_attributes(): target_id = 'survey-attributes' wait_for_element_by_id(target_id, timeout=5, retry=1) survey_data = browser.find_by_id(target_id).first survey_attributes = { 'survey_id': survey_data.find_by_id('survey-id').value, 'survey_title': survey_data.find_by_id('survey-title').value, 'survey_abbreviation': survey_data.find_by_id('survey-abbreviation').value, 'survey_legal_basis': survey_data.find_by_id('survey-legal-basis').value, } return survey_attributes
def get_messages(): messages = [] table = browser.find_by_id('tbl-messages') rows = table.find_by_tag('tbody').find_by_tag('tr') for row in rows: messages.append({ 'ru_ref': row.find_by_name('tbl-messages-RU_Ref').value, 'business_name': row.find_by_name('tbl-messages-business').value, 'subject': row.find_by_name('tbl-messages-subject').value, 'from': row.find_by_name('tbl-messages-from').value, 'to': row.find_by_name('tbl-messages-to').value, 'received': row.find_by_name('tbl-messages-received').value }) return messages
def get_associated_collection_exercises(survey_short_name): survey_element_id = f'survey-{survey_short_name}' wait_for_element_by_id(survey_element_id, timeout=10, retry=1) ce_table = browser.find_by_id(survey_element_id).find_by_name('tbl-ce-for-survey') assert ce_table, f"Could not retrieve ce_table for {survey_element_id}" ce_rows = ce_table.find_by_tag('tbody').find_by_tag('tr') assert ce_rows, f"could not find ce_rows in ce_table for {survey_element_id}" exercises = [{ "exercise_ref": row.find_by_name('tbl-ce-period').value, "company_name": row.find_by_name('tbl-ce-company-name').value, "company_region": row.find_by_name('tbl-ce-company-region').value, "status": row.find_by_name('tbl-ce-status').value, "status_change_link": row.find_by_name('tbl-ce-status').find_by_tag("a") } for row in ce_rows] return exercises
def confirm_unlock_account_internally(_): browser.find_by_id('confirm-btn').click()
def send_message(): browser.find_by_id('send-message-btn').click()
def check_account_locked_internally(context): reporting_unit.go_to(context.short_name) reporting_unit.click_data_panel(context.short_name) assert browser.find_by_id('account-status')[0].value == 'Locked' assert browser.find_by_id('respondent-unlock-link')[0].value == 'Unlock'
def select_to_create_message(): wait_for_element_by_id('create-message-link-1', timeout=3, retry=1) browser.find_by_id('create-message-link-1').click()
def log_out_external_user(_): browser.find_by_id('SIGN_OUT_BTN').click()
def get_surveys_list(): wait_for_element_by_id('survey-list', timeout=10, retry=1) return browser.find_by_id('survey-list')
def ready_to_enrol_in_survey(_): home.go_to_external_home() browser.find_by_id('create-account').click()
def confirm_verification_email(context): actual_email_confirmation = browser.find_by_id( 'email_confirmation_sent').value assert context.respondent_email in actual_email_confirmation
def unlock_account_internally(context): reporting_unit.click_data_panel(context.short_name) browser.find_by_id('respondent-unlock-link')[0].click()
def get_table_heading(): table = browser.find_by_id('tbl-messages') headings = table.find_by_tag('thead').find_by_tag('tr') return headings[0].value
def enter_enrolment_code(context): browser.driver.find_element_by_id('enrolment_code').send_keys(context.iac) browser.find_by_id('continue_button').click()
def get_message_link_index(number_of_messages): return browser.find_by_id(f"message-link-{number_of_messages}")
def account_status_changed(context): assert browser.find_by_text('Account status changed') reporting_unit.click_data_panel(context.short_name) assert browser.find_by_id('account-status')[0].value == 'Active'