示例#1
0
    def add_edit_datasender(self):
        global_navigation = GlobalNavigationPage(self.driver)
        all_data_sender_page = global_navigation.navigate_to_all_data_sender_page(
        )
        add_data_sender_page = all_data_sender_page.navigate_to_add_a_data_sender_page(
        )
        email = generate_random_email_id()
        add_data_sender_page.enter_data_sender_details_from(
            VALID_DATA_WITH_EMAIL, email=email)
        success_msg = add_data_sender_page.get_success_message()
        self.assertIn(fetch_(SUCCESS_MESSAGE, from_(VALID_DATA_WITH_EMAIL)),
                      success_msg)
        add_data_sender_page.navigate_to_datasender_page()
        all_data_sender_page = AllDataSendersPage(self.driver)

        rep_id = success_msg.replace(VALID_DATA_WITH_EMAIL[SUCCESS_MESSAGE],
                                     '')
        all_data_sender_page.select_a_data_sender_by_id(rep_id)

        all_data_sender_page.select_edit_action()
        time.sleep(2)
        edit_datasender_page = AddDataSenderPage(self.driver)
        edit_datasender_page.enter_data_sender_details_from(
            VALID_DATA_WITH_EMAIL_FOR_EDIT)
        self.assertRegexpMatches(
            edit_datasender_page.get_success_message(),
            fetch_(SUCCESS_MSG, from_(VALID_DATA_WITH_EMAIL_FOR_EDIT)))

        edit_datasender_page.navigate_to_datasender_page()
        all_data_sender_page = AllDataSendersPage(self.driver)
        all_data_sender_page.associate_datasender_to_projects(
            rep_id, [self.project_name])
        return email
示例#2
0
    def test_edit_datasender_should_populate_all_fields_properly(self):
        add_data_sender_page = self.current_page
        add_data_sender_page.enter_data_sender_details_from(
            VALID_DATA_WITH_EMAIL)
        success_msg = self.current_page.get_success_message()
        rep_id = self._parse(success_msg)
        self.assertRegexpMatches(
            success_msg, fetch_(SUCCESS_MSG, from_(VALID_DATA_WITH_EMAIL)))

        self.driver.go_to(DATA_WINNER_ALL_DATA_SENDERS_PAGE)
        all_datasender_page = AllDataSendersPage(self.driver)
        edit_datasender_page = all_datasender_page.edit_datasender(rep_id)

        self.assert_fields_are_populated_properly_in_edit_page(
            VALID_DATA_WITH_EMAIL)

        edit_datasender_page.enter_data_sender_details_from(
            VALID_DATA_WITH_EMAIL_EDITED)
        self.assertRegexpMatches(
            edit_datasender_page.get_success_message(),
            fetch_(SUCCESS_MSG, from_(VALID_DATA_WITH_EMAIL_EDITED)))

        self.driver.go_to(DATA_WINNER_ALL_DATA_SENDERS_PAGE)
        all_datasender_page = AllDataSendersPage(self.driver)
        all_datasender_page.edit_datasender(rep_id)

        self.assert_fields_are_populated_properly_in_edit_page(
            VALID_DATA_WITH_EMAIL_EDITED)
    def test_should_update_submission_log_when_DS_info_is_edited(self):
        all_project_page = self.dashboard.navigate_to_view_all_project_page()
        project_overview_page = all_project_page.navigate_to_project_overview_page(
            "clinic test project1")
        my_data_sender_page = project_overview_page.navigate_to_datasenders_page(
        )
        add_ds_page = my_data_sender_page.navigate_to_add_a_data_sender_page()
        add_ds_page.enter_data_sender_details_from(DATASENDER_DETAILS)
        ds_id = add_ds_page.get_registered_datasender_id()

        send_valid_sms_with(VALID_DATA)

        submission_log_page = self.get_first_project_submission_log_page()
        submission_log_page.search(ds_id)
        self.assertTrue(DATASENDER_DETAILS[NAME] in
                        submission_log_page.get_cell_value(row=1, column=2))

        self.driver.go_to(DATA_WINNER_ALL_DATA_SENDERS_PAGE)
        all_datasenders_page = AllDataSendersPage(self.driver)

        all_datasenders_page.search_with(ds_id)
        all_datasenders_page.wait_for_table_to_load()

        all_datasenders_page.select_a_data_sender_by_id(ds_id)
        all_datasenders_page.select_edit_action()
        AddDataSenderPage(self.driver).enter_data_sender_details_from(
            EDITED_DATASENDER_DETAILS)
        submission_log_page = self.get_first_project_submission_log_page()
        submission_log_page.search(ds_id)
        self.assertTrue(EDITED_DATASENDER_DETAILS[NAME] in
                        submission_log_page.get_cell_value(row=1, column=2))
示例#4
0
    def test_should_update_submission_log_when_DS_info_is_edited(self):
        self.driver.go_to(DATA_WINNER_ALL_DATA_SENDERS_PAGE)
        all_datasenders_page = AllDataSendersPage(self.driver)
        ds_id = self.register_datasender(DATASENDER_DETAILS,
                                         all_datasenders_page)

        self.driver.go_to(DATA_WINNER_SMS_TESTER_PAGE)
        sms_tester_page = SMSTesterPage(self.driver)
        sms_tester_page.send_valid_sms_with(VALID_DATA)

        message = sms_tester_page.get_response_message()
        self.assertTrue(
            fetch_(SUCCESS_MESSAGE, VALID_DATA) in message,
            "message:" + message)

        submission_log_page = self.go_to_submission_log_page()
        submission_log_page.search(ds_id)
        self.assertTrue(DATASENDER_DETAILS[NAME] in
                        submission_log_page.get_cell_value(row=1, column=2))

        self.driver.go_to(DATA_WINNER_ALL_DATA_SENDERS_PAGE)
        all_datasenders_page.search_with(ds_id)
        all_datasenders_page.wait_for_table_to_load()

        all_datasenders_page.select_a_data_sender_by_id(ds_id)
        all_datasenders_page.select_edit_action()
        AddDataSenderPage(self.driver).enter_data_sender_details_from(
            EDITED_DATASENDER_DETAILS)
        submission_log_page = self.go_to_submission_log_page()
        submission_log_page.search(ds_id)
        self.assertTrue(EDITED_DATASENDER_DETAILS[NAME] in
                        submission_log_page.get_cell_value(row=1, column=2))
    def navigate_to_all_data_sender_page(self):
        """
        Function to navigate to all data sender page of the website.

        Return add data sender page
         """
        self.driver.find(DATA_SENDERS_LINK).click()
        return AllDataSendersPage(self.driver)
示例#6
0
    def navigate_to_all_data_sender_page(self):
        """
        Function to navigate to all data sender page of the website.

        Return add data sender page
         """
        self.driver.wait_for_element(UI_TEST_TIMEOUT, DATA_SENDERS_LINK, True)
        self.driver.find(DATA_SENDERS_LINK).click()
        return AllDataSendersPage(self.driver)
 def login_with_created_datasenders_account(self):
     self.driver.go_to(DATA_WINNER_ALL_DATA_SENDERS_PAGE)
     all_data_senders_page = AllDataSendersPage(self.driver)
     email = all_data_senders_page.get_data_sender_email_by_mobile_number(VALID_DATA_WITH_EMAIL[MOBILE_NUMBER_WITHOUT_HYPHENS])
     global_navigation = GlobalNavigationPage(self.driver)
     global_navigation.sign_out()
     self.driver.go_to(DATA_WINNER_LOGIN_PAGE)
     data_sender_crendentials = {USERNAME: email, PASSWORD: "******"}
     login_page = LoginPage(self.driver)
     login_page.login_with(data_sender_crendentials)
     message = global_navigation.welcome_message()
     return email, message
 def populate_data_for_date_range_filters(
         self,
         project_data=NEW_PROJECT_DATA,
         questionnaire_data=DATE_PROJECT_QUESTIONNAIRE_DATA,
         monthly=False):
     self._create_project(project_data, questionnaire_data, monthly)
     project_name, questionnaire_code = self._get_project_details()
     self.driver.go_to(DATA_WINNER_ALL_DATA_SENDERS_PAGE)
     all_datasenders_page = AllDataSendersPage(self.driver)
     all_datasenders_page.associate_datasender_to_projects(
         "rep8", [project_name.lower()])
     self._submit_sms_data(questionnaire_code, monthly=monthly)
     return project_name
    def test_successful_addition_editing_of_data_sender(self):
        add_data_sender_page = self.current_page
        add_data_sender_page.enter_data_sender_details_from(VALID_DATA)

        self.assertRegexpMatches(add_data_sender_page.get_success_message(),
                                 fetch_(SUCCESS_MSG, from_(VALID_DATA)))
        self.driver.go_to(DATA_WINNER_ALL_DATA_SENDERS_PAGE)
        all_data_senders_page = AllDataSendersPage(self.driver)
        all_data_senders_page.select_a_data_sender_by_mobile(VALID_DATA[MOBILE_NUMBER_WITHOUT_HYPHENS])
        all_data_senders_page.select_edit_action()
        self.current_page.enter_data_sender_details_from(VALID_EDIT_DATA)
        self.assertRegexpMatches(self.current_page.get_success_message(),
            fetch_(SUCCESS_MSG, from_(VALID_EDIT_DATA)))
示例#10
0
    def test_should_show_default_datasender_for_newly_created_datasender(self):
        registration_confirmation_page, self.email = register_and_get_email(self.driver)
        assert REGISTRATION_SUCCESS_MESSAGE == registration_confirmation_page.registration_success_message()
        self.account_activate_page = ActivateAccountPage(self.driver)
        self.postgres_dbmanager = DatabaseManager()
        self.activation_code = self.postgres_dbmanager.get_activation_code(self.email.lower())
        self.account_activate_page.activate_account(self.activation_code)

        
        self.page = AllDataSendersPage(self.driver)
        self.page.load()
        
        all_ds_page = self.page
        self.assertEqual(1, all_ds_page.get_datasenders_count())
 def test_successful_addition_and_editing_of_data_sender(self):
     add_data_sender_page = self.current_page
     add_data_sender_page.enter_data_sender_details_from(VALID_DATA)
     success_msg = add_data_sender_page.get_success_message()
     self.assertIn(fetch_(SUCCESS_MSG, from_(VALID_DATA)), success_msg)
     rep_id = self._parse(success_msg)
     all_data_senders_page = AllDataSendersPage(self.driver)
     all_data_senders_page.load()
     all_data_senders_page.search_with(rep_id)
     all_data_senders_page.select_a_data_sender_by_id(rep_id)
     all_data_senders_page.select_edit_action()
     self.current_page.enter_data_sender_details_from(VALID_EDIT_DATA)
     self.assertRegexpMatches(self.current_page.get_success_message(),
                              fetch_(SUCCESS_MSG, from_(VALID_EDIT_DATA)))
示例#12
0
 def setUpClass(cls):
     HeadlessRunnerTest.setUpClass()
     login(cls.driver)
     cls.all_datasenders_page = AllDataSendersPage(
         TestAllDataSenders.driver)
     cls.datasender_id_with_web_access = cls.register_datasender(
         VALID_DATASENDER_WITH_WEB_ACCESS,
         id=TestAllDataSenders._create_id_for_data_sender())
     cls.datasender_id_without_web_access = cls.register_datasender(
         VALID_DATASENDER_WITHOUT_WEB_ACCESS,
         id=TestAllDataSenders._create_id_for_data_sender())
     cls.user_mobile_number = TestAllDataSenders.add_new_user(NEW_USER_DATA)
     cls.driver.go_to(DATA_WINNER_ALL_DATA_SENDERS_PAGE)
     cls.all_datasenders_page.wait_for_table_to_load()
     cls.all_datasenders_page.search_with(cls.user_mobile_number)
     cls.user_ID = cls.all_datasenders_page.get_cell_value(1, 7)
示例#13
0
 def test_should_update_user_name_when_edited_from_datasender_page(self):
     add_user_page = self.all_users_page.navigate_to_add_user()
     add_user_page.add_user_with(EDIT_USER_DATA)
     self.driver.go_to(DATA_WINNER_ALL_DATA_SENDERS_PAGE)
     all_datasenders_page = AllDataSendersPage(self.driver)
     all_datasenders_page.search_with(EDIT_USER_DATA.get('username'))
     self.driver.find(all_datasenders_page.get_checkbox_selector_for_datasender_row(1)).click()
     all_datasenders_page.select_edit_action()
     EDIT_DETAILS = {"name": "New testUser",
                     "mobile_number": EDIT_USER_DATA.get("mobile_phone"),
                     "commune": "Madagascar",
                     "gps": "-21.7622088847 48.0690991394"}
     AddDataSenderPage(self.driver).enter_data_sender_details_from(EDIT_DETAILS).navigate_to_datasender_page()
     self.driver.go_to(ALL_USERS_URL)
     self.all_users_page = AllUsersPage(self.driver)
     element = self.driver.find(by_xpath(NAME_COLUMN % EDIT_USER_DATA.get("username")))
     self.assertEquals(EDIT_DETAILS.get("name"),element.text)
示例#14
0
 def setUpClass(cls):
     cls.driver = setup_driver()
     LoginPage(
         cls.driver).load().do_successful_login_with(VALID_CREDENTIALS)
     cls.all_datasenders_page = AllDataSendersPage(
         TestAllDataSenders.driver)
     cls.datasender_id_with_web_access = cls.register_datasender(
         VALID_DATASENDER_WITH_WEB_ACCESS,
         id=TestAllDataSenders._create_id_for_data_sender())
     cls.datasender_id_without_web_access = cls.register_datasender(
         VALID_DATASENDER_WITHOUT_WEB_ACCESS,
         id=TestAllDataSenders._create_id_for_data_sender())
     cls.user_mobile_number = TestAllDataSenders.add_new_user(NEW_USER_DATA)
     cls.driver.go_to(DATA_WINNER_ALL_DATA_SENDERS_PAGE)
     cls.all_datasenders_page.wait_for_table_to_load()
     cls.all_datasenders_page.search_with(cls.user_mobile_number)
     cls.user_ID = cls.all_datasenders_page.get_cell_value(1, 3)
示例#15
0
 def setUp(self):
     self.driver.go_to(DATA_WINNER_ALL_DATA_SENDERS_PAGE)
     time.sleep(2)
     self.page = AllDataSendersPage(self.driver)
示例#16
0
 def setUpClass(cls):
     cls.driver = setup_driver()
     cls.driver.go_to(DATA_WINNER_LOGIN_PAGE)
     login_page = LoginPage(cls.driver)
     login_page.do_successful_login_with(VALID_CREDENTIALS)
     cls.page = AllDataSendersPage(cls.driver)