def setUpClass(cls): HeadlessRunnerTest.setUpClass() cls.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(cls.driver) login_page.login_with(DATA_SENDER_CREDENTIALS) cls.driver.wait_for_element(UI_TEST_TIMEOUT, by_css("span.welcome"), True)
def go_to_analysis_page(self, account): self.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(self.driver) global_navigation = login_page.do_successful_login_with(account) all_data_page = global_navigation.navigate_to_all_data_page() analysis_page = all_data_page.navigate_to_data_analysis_page(PROJECT_NAME) return analysis_page
def test_login_with_invalid_format_email_address(self): self.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(self.driver) login_page.login_with(INVALID_EMAIL_ID_FORMAT) self.assertEqual(login_page.get_error_message(), fetch_(ERROR_MESSAGE, from_(INVALID_EMAIL_ID_FORMAT)))
def test_login_with_deactivated_account(self): self.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(self.driver) login_page.login_with(DEACTIVATED_ACCOUNT_CREDENTIALS) self.assertEqual( login_page.get_error_message(), fetch_(ERROR_MESSAGE, from_(DEACTIVATED_ACCOUNT_CREDENTIALS)))
def test_successful_subject_registration(self): """ Function to test the successful addition of a subject from "My Subjects" page with given details e.g. First Name, Last Name, Location, GPS, Mobile Number """ self.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(self.driver) login_page.do_successful_login_with(VALID_CREDENTIALS) dashboard_page = DashboardPage(self.driver) # going on setup project page create_project_page = dashboard_page.navigate_to_create_project_page() create_project_page.create_project_with(VALID_PROJECT_DATA) create_project_page.continue_create_project() project_overview_page = create_project_page.save_and_create_project_successfully( ) self.driver.wait_for_page_with_title( 15, fetch_(PAGE_TITLE, from_(VALID_PROJECT_DATA))) self.assertEqual(self.driver.get_title(), fetch_(PAGE_TITLE, from_(VALID_PROJECT_DATA))) project_subject_page = project_overview_page.navigate_to_subjects_page( ) project_subject_registration_page = project_subject_page.click_register_subject( ) project_subject_registration_page.add_subject_with( VALID_SUBJECT_REGISTRATION_DATA) project_subject_registration_page.submit_subject() success_message = project_subject_registration_page.get_flash_message() self.assertRegexpMatches( success_message, fetch_(SUCCESS_MSG, from_(VALID_SUBJECT_REGISTRATION_DATA)))
def do_login(driver, email, password): driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(driver) return login_page.do_successful_login_with({ USERNAME: email, PASSWORD: password })
def test_login_without_entering_email_address(self): self.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(self.driver) login_page.login_with(BLANK_EMAIL_ADDRESS) self.assertEqual(login_page.get_error_message(), fetch_(ERROR_MESSAGE, from_(BLANK_EMAIL_ADDRESS)))
def test_login_without_entering_email_and_password(self): self.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(self.driver) login_page.login_with(BLANK_CREDENTIALS) self.assertEqual(login_page.get_error_message(), fetch_(ERROR_MESSAGE, from_(BLANK_CREDENTIALS)))
def test_login_with_invalid_password_credential(self): self.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(self.driver) login_page.login_with(INVALID_PASSWORD) self.assertEqual(login_page.get_error_message(), fetch_(ERROR_MESSAGE, from_(INVALID_PASSWORD)))
def test_login_with_unactivated_account_credentials(self): self.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(self.driver) login_page.login_with(UNACTIVATED_ACCOUNT_CREDENTIALS) self.assertEqual(login_page.get_error_message(), fetch_(ERROR_MESSAGE, from_(UNACTIVATED_ACCOUNT_CREDENTIALS)))
def prerequisites_of_register_subject(self): # doing successful login with valid credentials self.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(self.driver) login_page.do_successful_login_with(VALID_CREDENTIALS) self.driver.go_to(DATA_WINNER_ADD_SUBJECT) return RegisterSubjectPage(self.driver)
def setUpClass(cls): cls.driver = setup_driver() cls.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(cls.driver) cls.global_navigation = login_page.do_successful_login_with( VALID_CREDENTIALS)
def setUpClass(cls): cls.driver = setup_driver() cls.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(cls.driver) cls.dashboard = login_page.do_successful_login_with(VALID_CREDENTIALS) cls.reporting_period_project_name = None cls.URL = None
def setUpClass(cls): cls.driver = setup_driver() cls.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(cls.driver) cls.global_navigation = login_page.do_successful_login_with( VALID_CREDENTIALS) cls.add_subjects_url = DATA_WINNER_ADD_SUBJECT + "clinic/?web_view=True"
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.driver.go_to(DATA_WINNER_ALL_SUBJECT) cls.page = AddSubjectTypePage(cls.driver)
def go_to_registered_datasenders_page(self, project_name=CLINIC_PROJECT1_NAME): self.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(self.driver) self.global_navigation = login_page.do_successful_login_with(VALID_CREDENTIALS) all_project_page = self.global_navigation.navigate_to_view_all_project_page() project_overview_page = all_project_page.navigate_to_project_overview_page(project_name) return project_overview_page.navigate_to_datasenders_page()
def test_create_and_activate_datasender(self): self.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(self.driver) global_navigation_page = login_page.do_successful_login_with( VALID_CREDENTIALS) add_datasender_page = global_navigation_page.navigate_to_all_data_sender_page( ).navigate_to_add_a_data_sender_page() email = generate_random_email_id() add_datasender_page.enter_data_sender_details_from(VALID_DATASENDER, email=email) success_message = add_datasender_page.get_success_message() self.assertIn(VALID_DATASENDER[SUCCESS_MSG], success_message) rep_id = add_datasender_page.get_rep_id_from_success_message( success_message) add_datasender_page.close_add_datasender_dialog() all_datasender_page = global_navigation_page.navigate_to_all_data_sender_page( ) all_datasender_page.associate_datasender_to_projects( rep_id, ["clinic test project1"]) self.driver.go_to(LOGOUT) user = User.objects.get(username=email) token = default_token_generator.make_token(user) self.driver.go_to( url(DS_ACTIVATION_URL % (int_to_base36(user.id), token))) activation_page = ResetPasswordPage(self.driver) activation_page.type_same_password(NEW_PASSWORD) activation_page.click_submit() self.driver.wait_for_page_with_title(UI_TEST_TIMEOUT, "Data Submission") self.assertEqual(self.driver.get_title(), "Data Submission")
def prerequisites_of_add_subject_type(self): # doing successful login with valid credentials self.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(self.driver) login_page.do_successful_login_with(VALID_CREDENTIALS) self.driver.go_to(DATA_WINNER_ADD_SUBJECT) return AddSubjectTypePage(self.driver)
def test_login_with_valid_credentials(self): self.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(self.driver) dashboard_page = login_page.do_successful_login_with(VALID_CREDENTIALS) self.assertEqual(dashboard_page.welcome_message(), fetch_(WELCOME_MESSAGE, from_(VALID_CREDENTIALS)))
def test_should_check_if_deleted_questionnaires_and_poll_not_be_in_questionnaires_list( self): self.driver.go_to(LOGOUT) self.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(self.driver) login_page.do_successful_login_with(USER_RASITEFA_CREDENTIALS) self.driver.go_to(DATA_WINNER_DASHBOARD_PAGE) dashboard_page = DashboardPage(self.driver) self.assertEqual(len(dashboard_page.get_projects_list()), 3) 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) global_navigation = GlobalNavigationPage(self.driver) project_overview_page = create_questionnaire_page.save_and_create_project_successfully( ) project_name = project_overview_page.get_project_title() all_projects_page = global_navigation.navigate_to_view_all_project_page( ) all_projects_page.delete_project(project_name) self.driver.go_to(DATA_WINNER_DASHBOARD_PAGE) dashboard_page = DashboardPage(self.driver) all_projects_page = ProjectsPage(self.driver) self.assertEqual(len(dashboard_page.get_projects_list()), 3) self.assertFalse(all_projects_page.is_project_present(project_name)) self.global_navigation.sign_out()
def test_should_show_help_element_just_once(self): self.assertTrue(self.dashboard_page.is_help_element_present()) self.dashboard_page.close_help_element() self.driver.go_to(LOGOUT) self.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(self.driver) dashboard_page = login_page.do_successful_login_with(VALID_CREDENTIALS) self.assertFalse(self.dashboard_page.is_help_element_present())
def setUp(self): self.test_data = os.path.join(DIR, 'testdata') self.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(self.driver) login_page.do_successful_login_with(VALID_CREDENTIALS) self.client = Client() self.client.login(username=DEFAULT_TEST_USER, password=DEFAULT_TEST_PASSWORD)
def setUpClass(cls): cls.driver = setup_driver() cls.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(cls.driver) cls.user = User.objects.get(username=fetch_(USERNAME, from_(TRIAL_CREDENTIALS_VALIDATES))) cls.user.groups.add(1) cls.dashboard = login_page.do_successful_login_with(TRIAL_CREDENTIALS_VALIDATES) cls.driver.go_to(UPGRADE_PAGE)
class LoginTests(unittest.TestCase): @pytest.fixture(autouse=True) def objectSetup(self): self.lp = LoginPage(self.driver) # @pytest.mark.run(order=2) def test_t1validLogin(self): self.lp.login("*****@*****.**", "password")
def go_to_analysis_page(self, credentials): self.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(self.driver) global_navigation = login_page.do_successful_login_with(credentials) all_data_page = global_navigation.navigate_to_all_data_page() analysis_page = all_data_page.navigate_to_data_analysis_page(PROJECT_NAME) analysis_page.wait_for_table_data_to_load() return analysis_page
def _navigate_to_send_message_page(cls, project_name="clinic test project1", credential=VALID_CREDENTIALS): cls.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(cls.driver) global_navigation = login_page.do_successful_login_with(credential) all_project_page = global_navigation.navigate_to_view_all_project_page() project_overview_page = all_project_page.navigate_to_project_overview_page(project_name) send_message_page = project_overview_page.navigate_send_message_tab() return send_message_page
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.global_navigation_page = GlobalNavigationPage(cls.driver) cls.project_title = cls.create_new_project() cls.email = None
def prerequisites_of_create_project(self): # doing successful login with valid credentials self.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(self.driver) dashboard_page = login_page.do_successful_login_with(VALID_CREDENTIALS) # going on setup project page return dashboard_page.navigate_to_create_project_page()
def prerequisites_of_edit_project(self): # doing successful login with valid credentials self.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(self.driver) global_navigation = login_page.do_successful_login_with(VALID_CREDENTIALS) # going on all project page return global_navigation.navigate_to_view_all_project_page()
def prerequisites_of_add_subject(self, subject_data): # doing successful login with valid credentials self.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(self.driver) login_page.do_successful_login_with(VALID_CREDENTIALS) entity_type = fetch_(ENTITY_TYPE, from_(subject_data)) self.driver.go_to(DATA_WINNER_ADD_SUBJECT + entity_type) return AddSubjectPage(self.driver)
def setUpClass(cls): HeadlessRunnerTest.setUpClass() cls.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(cls.driver) cls.global_navigation = login_page.do_successful_login_with( VALID_CREDENTIALS) cls.project_name, cls.questionnaire_code = cls._create_project( EDIT_PROJECT_DATA, EDIT_PROJECT_QUESTIONNAIRE_DATA)
def prerequisites_of_register_reporter(self): # doing successful login with valid credentials self.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(self.driver) login_page.do_successful_login_with(VALID_CREDENTIALS) # doing reporter registration self.driver.go_to(DATA_WINNER_CREATE_DATA_SENDERS) return ReporterRegistrationPage(self.driver)
def prerequisites_of_edit_subject_registration_form(self): self.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(self.driver) global_navigation = login_page.do_successful_login_with( VALID_CREDENTIALS) all_project_page = global_navigation.navigate_to_view_all_project_page( ) self.project_overview_page = all_project_page.navigate_to_project_overview_page( "Clinic5 Test Project")
def prerequisites_of_create_questionnaire(self): # doing successful login with valid credentials self.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(self.driver) dashboard_page = login_page.do_successful_login_with(VALID_CREDENTIALS) # going on setup project page create_project_page = dashboard_page.navigate_to_create_project_page() #Navigating to Create Questionnaire Page by successfully creating a Project create_subject_questionnaire_page = create_project_page.successfully_create_project_with(VALID_DATA2) create_questionnaire_page = create_subject_questionnaire_page.successfully_create_subject_questionnaire_with(None) return create_questionnaire_page
def prerequisites_of_submission_log(self, sms_data): self.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(self.driver) dashboard_page = login_page.do_successful_login_with(VALID_CREDENTIALS) self.assertEqual(dashboard_page.welcome_message(), fetch_(WELCOME_MESSAGE, from_(VALID_CREDENTIALS))) self.driver.go_to(DATA_WINNER_SMS_TESTER_PAGE) sms_tester_page = SMSTesterPage(self.driver) sms_tester_page.send_sms_with(sms_data) self.assertEqual(sms_tester_page.get_response_message(), fetch_(MESSAGE, from_(sms_data))) self.driver.go_to(DATA_WINNER_DASHBOARD_PAGE) time.sleep(5) view_all_project_page = dashboard_page.navigate_to_view_all_project_page() time.sleep(3) project_overview_project = view_all_project_page.navigate_to_project_page(PROJECT_NAME) time.sleep(3) data_page = project_overview_project.navigate_to_data_page() time.sleep(3) submission_log_page = data_page.navigate_to_all_data_record_page() return submission_log_page
def test_register_link_functionality(self): self.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(self.driver) register_page = login_page.navigate_to_registration_page() self.assertEqual(register_page.get_title(), "Register")
def test_intregation_of_application(self): self.driver.go_to(DATA_WINNER_LOGIN_PAGE) login_page = LoginPage(self.driver) registration_page = login_page.navigate_to_registration_page() self.assertEqual(registration_page.get_title(), "Register") registration_confirmation_page, self.email = registration_page.successful_registration_with(REGISTRATION_DATA_FOR_SUCCESSFUL_REGISTRATION) self.assertEquals(registration_confirmation_page.registration_success_message(), fetch_(SUCCESS_MESSAGE, from_(REGISTRATION_DATA_FOR_SUCCESSFUL_REGISTRATION))) dbmanager = DatabaseManager() organization_sms_tel_number = get_epoch_last_ten_digit() dbmanager.set_sms_telephone_number(organization_sms_tel_number, self.email) account_activate_page = ActivateAccountPage(self.driver) dbmanager = DatabaseManager() activation_code = dbmanager.get_activation_code(self.email) account_activate_page.activate_account(activation_code) self.assertRegexpMatches(account_activate_page.get_message(), fetch_(SUCCESS_MESSAGE, from_(VALID_ACTIVATION_DETAILS))) self.driver.go_to(DATA_WINNER_LOGIN_PAGE) VALID_LOGIN_CREDENTIALS = VALID_CREDENTIALS VALID_LOGIN_CREDENTIALS[USERNAME] = self.email dashboard_page = login_page.do_successful_login_with(VALID_LOGIN_CREDENTIALS) self.assertEqual(dashboard_page.welcome_message(), fetch_(WELCOME_MESSAGE, from_(VALID_LOGIN_CREDENTIALS))) register_reporter_page = dashboard_page.navigate_to_register_reporter_page() register_reporter_page.register_with(VALID_DATA_FOR_REPORTER) self.assertRegexpMatches(register_reporter_page.get_success_message(), fetch_(SUCCESS_MESSAGE, from_(VALID_DATA_FOR_REPORTER))) self.driver.go_to(DATA_WINNER_ADD_SUBJECT) add_subject_type_page = AddSubjectTypePage(self.driver) add_subject_type_page.add_entity_type_with(VALID_SUBJECT_TYPE1) self.assertEqual(add_subject_type_page.get_flash_message(), fetch_(SUCCESS_MESSAGE, from_(VALID_SUBJECT_TYPE1))) add_subject_type_page.add_entity_type_with(VALID_SUBJECT_TYPE2) self.assertEqual(add_subject_type_page.get_flash_message(), fetch_(SUCCESS_MESSAGE, from_(VALID_SUBJECT_TYPE2))) self.driver.go_to(DATA_WINNER_HOME_PAGE) register_subject_page = dashboard_page.navigate_to_register_subject_page() message = register_subject_page.successfully_register_subject_with(VALID_DATA_FOR_SUBJECT) self.assertRegexpMatches(register_subject_page.get_flash_message(), message) self.driver.go_to(DATA_WINNER_HOME_PAGE) create_project_page = dashboard_page.navigate_to_create_project_page() create_subject_questionnaire_page = create_project_page.successfully_create_project_with(VALID_DATA_FOR_PROJECT) self.assertRegexpMatches(create_subject_questionnaire_page.get_title(), fetch_(PAGE_TITLE, from_(VALID_DATA_FOR_PROJECT))) create_questionnaire_page = create_subject_questionnaire_page.successfully_create_subject_questionnaire_with(None) self.assertRegexpMatches(create_questionnaire_page.get_title(), fetch_(PAGE_TITLE, from_(VALID_DATA_FOR_SUBJECT_QUESTIONNAIRE))) create_questionnaire_page.create_questionnaire_with(QUESTIONNAIRE_DATA) index = 2 for question in fetch_(QUESTIONS, from_(QUESTIONNAIRE_DATA)): question_link_text = fetch_(QUESTION, from_(question)) + " " + fetch_(CODE, from_(question)) self.assertEquals(create_questionnaire_page.get_question_link_text(index), question_link_text) index += 1 time.sleep(5) self.assertEquals(create_questionnaire_page.get_remaining_character_count(), fetch_(CHARACTER_REMAINING, from_(QUESTIONNAIRE_DATA))) create_questionnaire_page.save_questionnaire() time.sleep(3) self.assertEqual(create_questionnaire_page.get_title(), "Finish & Test") self.driver.go_to(DATA_WINNER_SMS_TESTER_PAGE) sms_tester_page = SMSTesterPage(self.driver) sms_tester_data = VALID_DATA_FOR_SMS sms_tester_data[RECEIVER] = organization_sms_tel_number sms_tester_page.send_sms_with(sms_tester_data) self.assertEqual(sms_tester_page.get_response_message(), fetch_(SUCCESS_MESSAGE, from_(sms_tester_data))) self.driver.go_to(DATA_WINNER_HOME_PAGE) view_all_project_page = dashboard_page.navigate_to_view_all_project_page() time.sleep(3) project_overview_project = view_all_project_page.navigate_to_project_page(fetch_(PROJECT_NAME, VALID_DATA_FOR_PROJECT)) time.sleep(3) data_page = project_overview_project.navigate_to_data_page() time.sleep(3) submission_log_page = data_page.navigate_to_all_data_record_page() time.sleep(3) self.assertRegexpMatches(submission_log_page.get_submission_message(SMS_DATA_LOG), fetch_(SMS_SUBMISSION, from_(SMS_DATA_LOG))) self.driver.go_to(DATA_WINNER_SMS_TESTER_PAGE) sms_tester_data = VALID_DATA_FOR_SMS sms_tester_data[RECEIVER] = organization_sms_tel_number sms_tester_page.send_sms_with(sms_tester_data) self.assertEqual(sms_tester_page.get_response_message(), fetch_(SUCCESS_MESSAGE, from_(sms_tester_data)))