def test_can_get_submit_page(driver, registrant): register_and_login_user(driver, registrant) driver.get(base_url + 'submit') WebDriverWait(driver, driver_wait_time).until( ecs.text_to_be_present_in_element((By.CLASS_NAME, 'pagetitle'), ' – Submit a proposal')) check_menu_items(driver, ())
def test_logged_in_non_reviewer_cannot_review(driver, registrant): register_and_login_user(driver, registrant) driver.get(base_url + 'review_list') WebDriverWait(driver, driver_wait_time).until( ecs.text_to_be_present_in_element((By.CLASS_NAME, 'pagetitle'), ' – Review List Failed')) logout_user(driver, registrant)
def test_cannot_access_login_success_page(driver, registrant): register_and_login_user(driver, registrant) driver.get(base_url + 'login_success') WebDriverWait(driver, driver_wait_time).until( ecs.text_to_be_present_in_element((By.CLASS_NAME, 'pagetitle'), ' – Call for Proposals')) check_menu_items(driver, ())
def test_can_get_registration_update_page(driver, registrant): register_and_login_user(driver, registrant) driver.get(base_url + 'registration_update') WebDriverWait(driver, driver_wait_time).until( ecs.text_to_be_present_in_element((By.CLASS_NAME, 'pagetitle'), ' – Registration Details Updating')) check_menu_items(driver, ())
def test_cannot_get_next_proposal_if_not_logged_in(driver, registrant): register_and_login_user(driver, registrant) driver.get(base_url + 'next_proposal/2/0') WebDriverWait(driver, driver_wait_time).until( ecs.text_to_be_present_in_element((By.CLASS_NAME, 'pagetitle'), ' – Proposal Navigation Failed')) assert 'Logged in user is not a registered reviewer.' in driver.find_element_by_class_name( 'first').text check_menu_items(driver, ())
def test_logged_in_cannot_get_submit_success_page_if_not_just_submitted( driver, registrant): register_and_login_user(driver, registrant) driver.get(base_url + 'submit_success') WebDriverWait(driver, driver_wait_time).until( ecs.text_to_be_present_in_element((By.CLASS_NAME, 'pagetitle'), ' – Submit Failed')) assert 'You must be registered and logged in to submit a proposal.' in driver.find_element_by_class_name( 'first').text check_menu_items(driver, ())
def test_sees_no_proposal_prior_to_submitting_one(driver, registrant): register_and_login_user(driver, registrant) driver.get(base_url + 'my_proposals') wait = WebDriverWait(driver, driver_wait_time) wait.until( ecs.text_to_be_present_in_element((By.CLASS_NAME, 'pagetitle'), ' – My Proposals')) element = driver.find_element_by_class_name('first') assert 'The following are your current proposals.' in element.text proposal_list = driver.find_elements_by_class_name('proposal-list') assert len(proposal_list) == 0
def test_can_see_both_previously_submitted_proposals( driver, registrant, proposal_single_presenter, proposal_multiple_presenters_single_lead): register_and_login_user(driver, registrant) driver.get(base_url + 'my_proposals') wait = WebDriverWait(driver, driver_wait_time) wait.until( ecs.text_to_be_present_in_element((By.CLASS_NAME, 'pagetitle'), ' – My Proposals')) element = driver.find_element_by_class_name('first') assert 'The following are your current proposals.' in element.text proposal_list = driver.find_elements_by_class_name('proposal-list') assert len(proposal_list) == 2 assert proposal_single_presenter['title'] == proposal_list[0].text assert proposal_multiple_presenters_single_lead['title'] == proposal_list[ 1].text
def test_can_amend_the_first_submitted_proposal(driver, registrant, proposal_single_presenter): register_and_login_user(driver, registrant) driver.get(base_url + 'proposal_update/1') wait = WebDriverWait(driver, driver_wait_time) wait.until( ecs.text_to_be_present_in_element((By.CLASS_NAME, 'pagetitle'), ' – Update a proposal')) title_element = driver.find_element_by_id('title') assert proposal_single_presenter['title'] == title_element.get_attribute( 'value') assert '' == title_element.text assert proposal_single_presenter['summary'] == driver.find_element_by_id( 'summary').text assert proposal_single_presenter['session_type'] == Select( driver.find_element_by_id( 'session_type')).first_selected_option.get_attribute('value') assert proposal_single_presenter['audience'] == Select( driver.find_element_by_id( 'audience')).first_selected_option.get_attribute('value') assert proposal_single_presenter['notes'] == driver.find_element_by_id( 'notes').text assert proposal_single_presenter[ 'constraints'] == driver.find_element_by_id('constraints').text new_title = 'This is a new title for a proposal' title_element.clear() title_element.send_keys(new_title) assert new_title == title_element.get_attribute('value') assert '' == title_element.text name_field = driver.find_element_by_id('name_0_field') assert proposal_single_presenter['presenters'][0][ 'name'] == name_field.get_attribute('value') assert '' == name_field.text new_presenter_name = 'Monty the Gerbil' name_field.clear() name_field.send_keys(new_presenter_name) assert new_presenter_name == name_field.get_attribute('value') assert '' == name_field.text submit_button = wait.until(ecs.element_to_be_clickable((By.ID, 'submit'))) assert 'Update' == driver.find_element_by_id('submit').text assert 'submitProposal(1)' == submit_button.get_attribute('onclick') submit_button.click() wait.until( ecs.text_to_be_present_in_element((By.CLASS_NAME, 'pagetitle'), ' – Proposal Update Successful')) assert 'you have successfully updated your proposal for the ACCU' in driver.find_element_by_id( 'content').text
def test_can_submit_a_single_presenter_proposal(driver, registrant, proposal_single_presenter): register_and_login_user(driver, registrant) driver.get(base_url + 'submit') wait = WebDriverWait(driver, driver_wait_time) wait.until( ecs.text_to_be_present_in_element((By.CLASS_NAME, 'pagetitle'), ' – Submit')) driver.find_element_by_id('title').send_keys( proposal_single_presenter['title']) Select(driver.find_element_by_id('session_type')).select_by_value( proposal_single_presenter['session_type']) driver.find_element_by_id('summary').send_keys( proposal_single_presenter['summary']) Select(driver.find_element_by_id('audience')).select_by_value( proposal_single_presenter['audience']) driver.find_element_by_id('notes').send_keys( proposal_single_presenter['notes']) driver.find_element_by_id('constraints').send_keys( proposal_single_presenter['constraints']) presenter = proposal_single_presenter['presenters'][0] for key in presenter.keys(): if key == 'is_lead': selected = driver.find_element_by_id(key + '_0_field').is_selected() if (presenter[key] and not selected) or (not presenter[key] and selected): driver.find_element_by_id(key + '_0_field').click() elif key == 'country': Select(driver.find_element_by_id(key + '_0_field')).select_by_value( presenter[key]) else: element = driver.find_element_by_id(key + '_0_field') element.clear() element.send_keys(presenter[key]) button = wait.until(ecs.element_to_be_clickable((By.ID, 'submit'))) assert 'Submit' == button.text assert 'submitProposal()' == button.get_attribute('onclick') button.click() wait.until( ecs.text_to_be_present_in_element((By.CLASS_NAME, 'pagetitle'), ' – Submission Successful')) assert 'Thank you, you have successfully submitted a proposal for the ACCU' in driver.find_element_by_id( 'content').text
def test_can_amend_registration_record(driver, registrant): register_and_login_user(driver, registrant) driver.get(base_url + 'registration_update') wait = WebDriverWait(driver, driver_wait_time) wait.until( ecs.text_to_be_present_in_element((By.CLASS_NAME, 'pagetitle'), ' – Registration Details Updating')) assert 'India' == Select( driver.find_element_by_id('country')).first_selected_option.text driver.find_element_by_id('name').send_keys('Jo Bloggs') button = wait.until(ecs.element_to_be_clickable((By.ID, 'submit'))) assert 'Save' == driver.find_element_by_id('submit').text assert 'registerUser(false)' == button.get_attribute('onclick') button.click() wait.until( ecs.text_to_be_present_in_element((By.CLASS_NAME, 'pagetitle'), ' – Registration Update Successful')) assert 'Your registration details were successfully updated.' in driver.find_element_by_id( 'content').text