def test_reset_password(self): page = self.go_to_homepage() page, name, username, _, _ = create_independent_student(page) page = self.get_to_forgotten_password_page() page.reset_username_submit(username) self.wait_for_email() page = email_utils.follow_reset_email_link(self.selenium, mail.outbox[0]) new_password = "******" page.student_reset_password(new_password) self.selenium.get(self.live_server_url) page = ( self.go_to_homepage() .go_to_login_page() .independent_student_login(username, new_password) ) assert page.__class__.__name__ == "PlayDashboardPage" page = page.go_to_account_page() assert page.check_account_details({"name": name})
def test_join_class_denied(self): teacher_email, teacher_password = signup_teacher_directly() create_organisation_directly(teacher_email) klass, _, access_code = create_class_directly(teacher_email) create_school_student_directly(access_code) klass.always_accept_requests = True klass.save() homepage = self.go_to_homepage() play_page, _, student_username, _, password = create_independent_student( homepage ) page = ( play_page.independent_student_login(student_username, password) .go_to_join_a_school_or_club_page() .join_a_school_or_club(access_code) ) page.logout() page = self.go_to_homepage() dashboard_page = ( page.go_to_login_page() .login(teacher_email, teacher_password) .deny_independent_join_request() ) assert dashboard_page.has_no_independent_join_requests()
def test_reset_password(self): page = self.go_to_homepage() page, name, username, email, password = create_independent_student(page) page = self.get_to_forgotten_password_page() page.reset_username_submit(username) self.wait_for_email() page = email_utils.follow_reset_email_link(self.selenium, mail.outbox[0]) new_password = "******" page.student_reset_password(new_password) self.selenium.get(self.live_server_url) page = ( self.go_to_homepage() .go_to_login_page() .independent_student_login(username, new_password) ) assert page.__class__.__name__ == "PlayDashboardPage" page = page.go_to_account_page() assert page.check_account_details({"name": name})
def test_join_class(self): teacher_email, teacher_password = signup_teacher_directly() organisation_name, postcode = create_organisation_directly(teacher_email) klass, class_name, accesss_code = create_class_directly(teacher_email) klass.always_accept_requests = True klass.save() homepage = self.go_to_homepage() play_page, student_name, student_username, student_email, password = create_independent_student(homepage) page = play_page \ .independent_student_login(student_username, password) \ .go_to_join_a_school_or_club_page() \ .join_a_school_or_club(accesss_code) logged_out_homepage = page.logout() classes_page = logged_out_homepage \ .go_to_teach_page() \ .login(teacher_email, teacher_password) \ .go_to_classes_page() \ .accept_join_request(student_email) \ .save() \ .return_to_classes() assert classes_page.student_exists(student_name)
def test_reset_password(self): homepage = self.go_to_homepage() username = create_independent_student(homepage)[2] page = self.get_to_forgotten_password_page() page.reset_username_submit(username) self.wait_for_email() page = email_utils.follow_reset_email_link(selenium, mail.outbox[0]) new_password = '******' page.reset_password(new_password) selenium.get(self.live_server_url) page = self \ .go_to_homepage() \ .go_to_play_page() \ .go_to_independent_form() \ .independent_student_login(username, new_password) assert self.is_independent_student_details(page)
def test_join_class_revoked(self): teacher_email, teacher_password = signup_teacher_directly() create_organisation_directly(teacher_email) klass, class_name, access_code = create_class_directly(teacher_email) create_school_student_directly(access_code) klass.always_accept_requests = True klass.save() homepage = self.go_to_homepage() play_page, student_name, student_username, student_email, password = create_independent_student( homepage ) page = ( play_page.independent_student_login(student_username, password) .go_to_join_a_school_or_club_page() .join_a_school_or_club(access_code) ) assert is_indep_student_join_request_received_message_showing(self.selenium) page.revoke_join_request() assert is_indep_student_join_request_revoked_message_showing(self.selenium)
def test_join_class_denied(self): teacher_email, teacher_password = signup_teacher_directly() create_organisation_directly(teacher_email) klass, class_name, accesss_code = create_class_directly(teacher_email) create_school_student_directly(accesss_code) klass.always_accept_requests = True klass.save() homepage = self.go_to_homepage() play_page, student_name, student_username, student_email, password = create_independent_student( homepage ) page = ( play_page.independent_student_login(student_username, password) .go_to_join_a_school_or_club_page() .join_a_school_or_club(accesss_code) ) page.logout() page = self.go_to_homepage() dashboard_page = ( page.go_to_login_page() .login(teacher_email, teacher_password) .deny_independent_join_request() ) assert dashboard_page.has_no_independent_join_requests()
def test_join_class_revoked(self): teacher_email, _ = signup_teacher_directly() create_organisation_directly(teacher_email) klass, _, access_code = create_class_directly(teacher_email) create_school_student_directly(access_code) klass.always_accept_requests = True klass.save() homepage = self.go_to_homepage() play_page, _, student_username, _, password = create_independent_student( homepage ) page = ( play_page.independent_student_login(student_username, password) .go_to_join_a_school_or_club_page() .join_a_school_or_club(access_code) ) assert is_indep_student_join_request_received_message_showing(self.selenium) page.revoke_join_request() assert is_indep_student_join_request_revoked_message_showing(self.selenium)
def test_join_class(self): teacher_email, teacher_password = signup_teacher_directly() organisation_name, postcode = create_organisation_directly( teacher_email) klass, class_name, accesss_code = create_class_directly(teacher_email) klass.always_accept_requests = True klass.save() homepage = self.go_to_homepage() play_page, student_name, student_username, student_email, password = create_independent_student( homepage) page = play_page \ .independent_student_login(student_username, password) \ .go_to_join_a_school_or_club_page() \ .join_a_school_or_club(accesss_code) logged_out_homepage = page.logout() classes_page = logged_out_homepage \ .go_to_teach_page() \ .login(teacher_email, teacher_password) \ .go_to_classes_page() \ .accept_join_request(student_email) \ .save() \ .return_to_classes() assert classes_page.student_exists(student_name)
def test_signup_duplicate_failure(self): page = self.go_to_homepage() page, _, _, email, _ = create_independent_student(page) assert is_email_verified_message_showing(self.selenium) page = self.go_to_homepage() page, _, _, _, _ = signup_duplicate_independent_student_fail(page, email, False) assert page.__class__.__name__ == "LoginPage"
def test_login_success(self): page = self.go_to_homepage() page, name, username, email, password = create_independent_student(page) page = page.independent_student_login(username, password) assert page.__class__.__name__ == "PlayDashboardPage" page = page.go_to_account_page() assert page.check_account_details({"name": name})
def test_login_success(self): page = self.go_to_homepage() page, name, username, email, password = create_independent_student( page) page = page.independent_student_login(username, password) assert page.__class__.__name__ == 'PlayDashboardPage' page = page.go_to_account_page() assert page.check_account_details({'name': name})
def test_signup_username_already_in_use(self): page = self.go_to_homepage() page, name, username, email, password = create_independent_student(page) page = self.go_to_homepage().go_to_signup_page() page = page.independent_student_signup('Florian', username, '*****@*****.**', 'Password1', 'Password1', success=False) assert self.is_signup_page(page) assert page.has_independent_student_signup_failed('That username is already in use')
def test_update_details_empty(self): homepage = self.go_to_homepage() play_page, student_name, student_username, student_email, password = create_independent_student(homepage) page = play_page \ .independent_student_login(student_username, password) \ .go_to_account_page().submit_empty_form() assert self.is_account_page(page) assert page.was_form_invalid('This field is required.')
def test_update_name_success(self): homepage = self.go_to_homepage() play_page, student_name, student_username, student_email, password = create_independent_student(homepage) page = play_page \ .independent_student_login(student_username, password) \ .go_to_account_page().update_name_success('New name', password) assert self.is_dashboard(page) assert is_student_details_updated_message_showing(selenium)
def test_update_name_failure(self): homepage = self.go_to_homepage() play_page, student_name, student_username, student_email, password = create_independent_student(homepage) page = play_page \ .independent_student_login(student_username, password) \ .go_to_account_page().update_name_failure('Name!', password) assert self.is_account_page(page) assert page.was_form_invalid('Names may only contain letters, numbers, dashes, underscores, and spaces.')
def test_signup_username_already_in_use(self): page = self.go_to_homepage() page, _, username, _, _ = create_independent_student(page) page = self.go_to_homepage().go_to_signup_page() page = page.independent_student_signup( "Florian", username, "*****@*****.**", "Password2", "Password2", success=False ) assert self.is_signup_page(page) assert page.has_independent_student_signup_failed( "That username is already in use" )
def test_join_class_nonexistent_class(self): homepage = self.go_to_homepage() play_page, student_name, student_username, student_email, password = create_independent_student(homepage) page = play_page \ .independent_student_login(student_username, password) \ .go_to_join_a_school_or_club_page() \ .join_a_school_or_club_failure('AA123') assert self.is_join_class_page(page) assert page.has_join_request_failed('Cannot find the school or club and/or class')
def test_signup_username_already_in_use(self): page = self.go_to_homepage() page, name, username, email, password = create_independent_student(page) page = self.go_to_homepage().go_to_signup_page() page = page.independent_student_signup( "Florian", username, "*****@*****.**", "Password2", "Password2", success=False ) assert self.is_signup_page(page) assert page.has_independent_student_signup_failed( "That username is already in use" )
def test_update_name_success(self): homepage = self.go_to_homepage() play_page, student_name, student_username, student_email, password = create_independent_student( homepage ) page = ( play_page.independent_student_login(student_username, password) .go_to_account_page() .update_name_success("New name", password) ) assert self.is_dashboard(page) assert is_student_details_updated_message_showing(self.selenium)
def test_change_email(self): homepage = self.go_to_homepage() play_page, student_name, student_username, student_email, password = create_independent_student( homepage ) page = play_page.independent_student_login( student_username, password ).go_to_account_page() new_email = "*****@*****.**" page = page.change_email(new_email, password) assert page.__class__.__name__ == "EmailVerificationNeededPage" assert is_student_details_updated_message_showing(self.selenium)
def test_change_email(self): homepage = self.go_to_homepage() play_page, _, student_username, _, password = create_independent_student( homepage ) page = play_page.independent_student_login( student_username, password ).go_to_account_page() new_email = "*****@*****.**" page = page.change_email(new_email, password) assert page.__class__.__name__ == "EmailVerificationNeededPage" assert is_student_details_updated_message_showing(self.selenium)
def test_join_class_nonexistent_class(self): homepage = self.go_to_homepage() play_page, _, student_username, _, password = create_independent_student( homepage ) page = ( play_page.independent_student_login(student_username, password) .go_to_join_a_school_or_club_page() .join_a_school_or_club_failure("AA123") ) assert self.is_join_class_page(page) assert page.has_join_request_failed( "Cannot find the school or club and/or class" )
def test_join_class_not_accepting_requests(self): teacher_email, teacher_password = signup_teacher_directly() create_organisation_directly(teacher_email) klass, class_name, access_code = create_class_directly(teacher_email) create_school_student_directly(access_code) homepage = self.go_to_homepage() play_page, student_name, student_username, student_email, password = create_independent_student(homepage) page = play_page \ .independent_student_login(student_username, password) \ .go_to_join_a_school_or_club_page() \ .join_a_school_or_club_failure(access_code) assert self.is_join_class_page(page) assert page.has_join_request_failed('Cannot find the school or club and/or class')
def test_join_class_nonexistent_class(self): homepage = self.go_to_homepage() play_page, student_name, student_username, student_email, password = create_independent_student( homepage ) page = ( play_page.independent_student_login(student_username, password) .go_to_join_a_school_or_club_page() .join_a_school_or_club_failure("AA123") ) assert self.is_join_class_page(page) assert page.has_join_request_failed( "Cannot find the school or club and/or class" )
def test_update_name_success(self): homepage = self.go_to_homepage() play_page, name, student_username, _, password = create_independent_student( homepage ) page = play_page.independent_student_login( student_username, password ).go_to_account_page() assert page.check_account_details({"name": name}) page = page.update_name_success("New name", password) assert self.is_dashboard(page) assert is_student_details_updated_message_showing(self.selenium)
def test_update_name_failure(self): homepage = self.go_to_homepage() play_page, student_name, student_username, student_email, password = create_independent_student( homepage ) page = ( play_page.independent_student_login(student_username, password) .go_to_account_page() .update_name_failure("Name!", password) ) assert self.is_account_page(page) assert page.was_form_invalid( "student_account_form", "Names may only contain letters, numbers, dashes, underscores, and spaces.", )
def test_update_name_failure(self): homepage = self.go_to_homepage() play_page, _, student_username, _, password = create_independent_student( homepage ) page = ( play_page.independent_student_login(student_username, password) .go_to_account_page() .update_name_failure("Name!", password) ) assert self.is_account_page(page) assert page.was_form_invalid( "student_account_form", "Names may only contain letters, numbers, dashes, underscores, and spaces.", )
def test_join_class_not_accepting_requests(self): teacher_email, teacher_password = signup_teacher_directly() create_organisation_directly(teacher_email) klass, class_name, access_code = create_class_directly(teacher_email) create_school_student_directly(access_code) homepage = self.go_to_homepage() play_page, student_name, student_username, student_email, password = create_independent_student( homepage ) page = ( play_page.independent_student_login(student_username, password) .go_to_join_a_school_or_club_page() .join_a_school_or_club_failure(access_code) ) assert self.is_join_class_page(page) assert page.has_join_request_failed( "Cannot find the school or club and/or class" )
def test_signup_with_newsletter(self): page = self.go_to_homepage() page, _, _, _, _ = create_independent_student(page, newsletter=True) assert is_email_verified_message_showing(self.selenium)
def test_login_success(self): page = self.go_to_homepage() page, _, username, _, password = create_independent_student(page) page = page.independent_student_login(username, password) assert page.__class__.__name__ == "PlayDashboardPage"
def test_signup(self): page = self.go_to_homepage() page, _, _, _, _ = create_independent_student(page) assert is_email_verified_message_showing(selenium)
def test_cannot_see_aimmo(self): page = self.go_to_homepage() page, _, username, _, password = create_independent_student(page) page = page.independent_student_login(username, password) assert page.element_does_not_exist_by_link_text("Kurono")