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
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))
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)
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)))
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)))
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)
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)
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)
def setUp(self): self.driver.go_to(DATA_WINNER_ALL_DATA_SENDERS_PAGE) time.sleep(2) self.page = AllDataSendersPage(self.driver)
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)