def _create_project(cls, project_data, questionnaire_data): global_navigation = GlobalNavigationPage(cls.driver) dashboard_page = global_navigation.navigate_to_dashboard_page() create_questionnaire_options_page = dashboard_page.navigate_to_create_project_page( ) cls.create_questionnaire_page = create_questionnaire_options_page.select_blank_questionnaire_creation_option( ) cls.create_questionnaire_page.create_questionnaire_with( project_data, questionnaire_data) questionnaire_code = cls.create_questionnaire_page.get_questionnaire_code( ) overview_page = cls.create_questionnaire_page.save_and_create_project_successfully( ) reminder_setting_page = ProjectOverviewPage( cls.driver).navigate_to_reminder_page() reminder_setting_page.set_frequency("Week") reminder_setting_page.set_week_day("Friday") reminder_setting_page.enable_before_deadline_reminder() reminder_setting_page.save_reminders() cls.driver.wait_for_element(UI_TEST_TIMEOUT, by_css('.success-message-box'), want_visible=True) automatic_reply_sms_page = reminder_setting_page.navigate_to_automatic_reply_sms_page( ) automatic_reply_sms_page.turn_off_reply_messages() cls.questionnaire_tab_page = overview_page.navigate_to_questionnaire_tab( ) cls.driver.wait_for_page_with_title(UI_TEST_TIMEOUT, 'Questionnaire') return overview_page.get_project_title(), questionnaire_code
def _create_project_and_go_to_automatic_reply_sms_page(cls, project_data, questionnaire_data): global_navigation = GlobalNavigationPage(cls.driver) dashboard_page = global_navigation.navigate_to_dashboard_page() create_questionnaire_options_page = dashboard_page.navigate_to_create_project_page() cls.create_questionnaire_page = create_questionnaire_options_page.select_blank_questionnaire_creation_option() cls.create_questionnaire_page.create_questionnaire_with(project_data, questionnaire_data) questionnaire_code = cls.create_questionnaire_page.get_questionnaire_code() overview_page = cls.create_questionnaire_page.save_and_create_project_successfully() cls.project_name = overview_page.get_project_title() cls.questionnaire_code = questionnaire_code broadcast_message_page = overview_page.navigate_send_message_tab() return broadcast_message_page.navigate_to_automatic_reply_sms_page()
def verify_individual_report_project_creation(self): global_navigation = GlobalNavigationPage(self.driver) dashboard_page = global_navigation.navigate_to_dashboard_page() create_project_page = dashboard_page.navigate_to_create_project_page() create_project_page.select_report_type(VALID_DATA_FOR_PROJECT) self.add_subject_type(create_project_page, VALID_SUBJECT_TYPE2[ENTITY_TYPE]) self.add_subject_type(create_project_page, VALID_SUBJECT_TYPE1[ENTITY_TYPE]) create_questionnaire_page = self.create_project(create_project_page) self.project_name = self.create_questionnaire( create_questionnaire_page)
def add_trial_organization_with_data_sender(self): registration_confirmation_page, email = register_and_get_email_for_trial(self.driver) self.emails.append(email) activate_account(self.driver, email) global_navigation_page = GlobalNavigationPage(self.driver) create_project_page = global_navigation_page.navigate_to_dashboard_page().navigate_to_create_project_page() questionnaire_page = create_project_page.select_blank_questionnaire_creation_option() questionnaire_page.create_questionnaire_with(VALID_DATA_FOR_PROJECT, QUESTIONNAIRE_DATA) questionnaire_page.save_and_create_project_successfully() add_data_sender_page = global_navigation_page.navigate_to_all_data_sender_page().navigate_to_add_a_data_sender_page() add_data_sender_page.enter_data_sender_details_from(VALID_DATA_FOR_DATA_SENDER1) return add_data_sender_page
def verify_summary_report_project_creation(self): self.driver.wait_for_element(UI_TEST_TIMEOUT, by_css('#global_dashboard_link')) global_navigation_page = GlobalNavigationPage(self.driver) dashboard_page = global_navigation_page.navigate_to_dashboard_page() create_project_page = dashboard_page.navigate_to_create_project_page() create_project_page.create_project_with(VALID_SUMMARY_REPORT_DATA) create_project_page.continue_create_project() questionnaire_page = CreateQuestionnairePage(self.driver) overview_page = questionnaire_page.save_and_create_project_successfully( ) self.summary_project_name = overview_page.get_project_title() self.summary_project_questionnaire_code = overview_page.get_questionnaire_code( ) return overview_page
def _create_project(cls, project_data, questionnaire_data): global_navigation = GlobalNavigationPage(cls.driver) dashboard_page = global_navigation.navigate_to_dashboard_page() create_questionnaire_options_page = dashboard_page.navigate_to_create_project_page( ) cls.create_questionnaire_page = create_questionnaire_options_page.select_blank_questionnaire_creation_option( ) cls.create_questionnaire_page.create_questionnaire_with( project_data, questionnaire_data) questionnaire_code = cls.create_questionnaire_page.get_questionnaire_code( ) overview_page = cls.create_questionnaire_page.save_and_create_project_successfully( ) cls.questionnaire_tab_page = overview_page.navigate_to_questionnaire_tab( ) return overview_page.get_project_title(), questionnaire_code
def _create_project(cls, project_data, questionnaire_data): global_navigation = GlobalNavigationPage(cls.driver) dashboard_page = global_navigation.navigate_to_dashboard_page() create_questionnaire_options_page = dashboard_page.navigate_to_create_project_page() cls.create_questionnaire_page = create_questionnaire_options_page.select_blank_questionnaire_creation_option() cls.create_questionnaire_page.create_questionnaire_with(project_data, questionnaire_data) questionnaire_code = cls.create_questionnaire_page.get_questionnaire_code() cls.create_questionnaire_page.set_questionnaire_language("French") overview_page = cls.create_questionnaire_page.save_and_create_project_successfully() reminder_setting_page = ProjectOverviewPage(cls.driver).navigate_to_reminder_page()\ .click_reminder_settings_tab() reminder_setting_page.set_frequency("Week") reminder_setting_page.set_deadline_type_for_week("Same week") reminder_setting_page.set_week_day("Friday") reminder_setting_page.enable_before_deadline_reminder() reminder_setting_page.save_reminders() cls.questionnaire_tab_page = overview_page.navigate_to_questionnaire_tab() return overview_page.get_project_title(), questionnaire_code
def verify_project_creation(self): global_navigation = GlobalNavigationPage(self.driver) dashboard_page = global_navigation.navigate_to_dashboard_page() create_questionnaire_options_page = dashboard_page.navigate_to_create_project_page( ) create_questionnaire_page = create_questionnaire_options_page.select_blank_questionnaire_creation_option( ) create_questionnaire_page.create_questionnaire_with( VALID_DATA_FOR_PROJECT, QUESTIONNAIRE_DATA) index = 1 for question in fetch_(QUESTIONS, from_(QUESTIONNAIRE_DATA)): question_link_text = fetch_(QUESTION, from_(question)) self.assertEquals( create_questionnaire_page.get_question_link_text(index), question_link_text) index += 1 project_overview_page = create_questionnaire_page.save_and_create_project_successfully( ) self.project_name = project_overview_page.get_project_title()
def test_should_update_project_column_of_datasender_when_project_gets_deleted( self): global_navigation = GlobalNavigationPage(self.driver) dashboard_page = global_navigation.navigate_to_dashboard_page() create_questionnaire_options_page = dashboard_page.navigate_to_create_project_page( ) create_questionnaire_page = create_questionnaire_options_page.select_blank_questionnaire_creation_option( ) create_questionnaire_page.create_questionnaire_with( NEW_PROJECT, QUESTIONNAIRE_DATA) project_overview_page = create_questionnaire_page.save_and_create_project_successfully( ) project_name = project_overview_page.get_project_title() project_id = project_overview_page.get_project_id() all_datasender_page = global_navigation.navigate_to_all_data_sender_page( ) all_datasender_page.search_with(self.datasender_id_with_web_access) all_datasender_page.select_a_data_sender_by_id( self.datasender_id_with_web_access) all_datasender_page.associate_datasender_to_projects( self.datasender_id_with_web_access, [project_name.lower()]) self.driver.wait_until_element_is_not_present( UI_TEST_TIMEOUT, by_id("datasender_table_processing")) self.assertIn( project_name.lower(), all_datasender_page.get_project_names( self.datasender_id_with_web_access)) all_projects_page = global_navigation.navigate_to_view_all_project_page( ) all_projects_page.delete_project(project_name) all_datasender_page = global_navigation.navigate_to_all_data_sender_page( ) all_datasender_page.search_with(self.datasender_id_with_web_access) all_datasender_page.select_a_data_sender_by_id( self.datasender_id_with_web_access) self.assertNotIn( project_name.lower(), all_datasender_page.get_project_names( self.datasender_id_with_web_access)) #undelete project self.driver.go_to(UNDELETE_PROJECT_URL % project_id) self.assertIn(project_name.lower(), [ elem.text for elem in self.driver.find_elements_(by_css(".project-id-class")) ]) self.driver.go_to(DATA_WINNER_ALL_DATA_SENDERS_PAGE) all_datasender_page.search_with(self.datasender_id_with_web_access) all_datasender_page.select_a_data_sender_by_id( self.datasender_id_with_web_access) self.assertIn( project_name.lower(), all_datasender_page.get_project_names( self.datasender_id_with_web_access))
def test_should_import_and_upload_submission_only_on_behalf_of_logged_in_admin_or_associated_datasenders_to_the_questionnaire( self): logged_in_project_admin = 'rep276' associated_data_sender = 'rep4' disassociated_admin = 'rep11' global_navigation_page = GlobalNavigationPage(self.driver) dashboard_page = global_navigation_page.navigate_to_dashboard_page() create_optional_questionnaire_page = dashboard_page.navigate_to_create_project_page( ) questionnaire_tab_page = create_optional_questionnaire_page.select_blank_questionnaire_creation_option( ) questionnaire_tab_page.create_questionnaire_with( NEW_PROJECT_DATA, self.QUESTIONNAIRE_DATA) project_overview_page = questionnaire_tab_page.save_and_create_project_successfully( ) project_name = project_overview_page.get_project_title() all_data_sender_page = global_navigation_page.navigate_to_all_data_sender_page( ) all_data_sender_page.associate_datasender_to_projects( associated_data_sender, [project_name]) all_questionnaire_page = global_navigation_page.navigate_to_view_all_project_page( ) project_overview_page = all_questionnaire_page.navigate_to_project_overview_page( project_name) project_data_senders_page = project_overview_page.navigate_to_datasenders_page( ) project_data_senders_page.select_a_data_sender_by_rep_id( logged_in_project_admin) project_data_senders_page.select_a_data_sender_by_rep_id( disassociated_admin) project_data_senders_page.disassociate_from_questionnaire() data_analysis_page = project_overview_page.navigate_to_data_page() data_analysis_page.navigate_to_all_data_record_page() project_form_code = project_overview_page.get_questionnaire_code() project_id = project_overview_page.get_project_id() res = self.client.post( path="/project/import-submissions/" + project_form_code + "?project_id=" + project_id + "&qqfile=import.xls", data=open(os.path.join(self.test_data, 'import.xls'), 'r').read(), content_type='application/octet-stream') submission = json.loads(res.content) self.assertEquals(len(submission['success_submissions']), 2) self.assertEquals(len(submission['errored_submission_details']), 2) first_submission = submission['success_submissions'][0] third_submission = submission['success_submissions'][1] self.assertEquals(first_submission['dsid'], logged_in_project_admin) self.assertEquals(first_submission['user_dsid'], logged_in_project_admin) self.assertEquals(first_submission['q2'], 'admin answers the question !!') self.assertEquals(third_submission['dsid'], associated_data_sender) self.assertEquals(third_submission['user_dsid'], logged_in_project_admin) self.assertEquals(third_submission['q2'], 'on behalf of datasender')