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)
Example #7
0
    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_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})
Example #14
0
    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')
Example #15
0
    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.')
Example #16
0
    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)
Example #17
0
    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"
        )
Example #19
0
    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"
        )
Example #25
0
    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_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_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")
 def test_signup(self):
     page = self.go_to_homepage()
     page, _, _, _, _ = create_independent_student(page)
     assert is_email_verified_message_showing(selenium)