Exemplo n.º 1
0
    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
Exemplo n.º 2
0
 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)
Exemplo n.º 4
0
    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
Exemplo n.º 8
0
    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()
Exemplo n.º 9
0
    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))
Exemplo n.º 10
0
    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')