Esempio n. 1
0
    def test_forgot_my_password(client: FlaskClient, captured_templates):
        user = conftest.create_student_user(index=1)
        conftest.reset_client_password(client, user.mail_address)
        template, _ = captured_templates[-1]
        assert template.name == "login.html"

        token = generate_user_token(user)
        conftest.recover_client_password(
            client,
            user.id,
            token,
            'new pass',
            'new pass',
        )
        template, _ = captured_templates[-1]
        assert template.name == "login.html"

        second_try_response = conftest.recover_client_password(
            client,
            user.id,
            token,
            'new pass1',
            'new pass1',
        )
        assert second_try_response.status_code == 404

        conftest.login_client_user(client, user.username, 'fake pass')
        template, _ = captured_templates[-1]
        assert template.name == 'login.html'

        conftest.login_client_user(client, user.username, 'new pass')
        template, _ = captured_templates[-1]
        assert template.name == 'exercises.html'
Esempio n. 2
0
    def test_login_unverified_user(
        client: FlaskClient,
        unverified_user: User,
        captured_templates,
    ):
        conftest.login_client_user(
            client,
            unverified_user.username,
            'fake pass',
        )
        template, _ = captured_templates[-1]
        assert template.name == 'login.html'

        fail_login_response = client.get('/exercises')
        assert fail_login_response.status_code == 302
Esempio n. 3
0
    def test_invalid_username(
        client: FlaskClient, student_user: User, captured_templates,
    ):
        conftest.signup_client_user(
            client, '*****@*****.**', student_user.username,
            'some_name', 'some_password', 'some_password',
        )
        template, _ = captured_templates[-1]
        assert template.name == 'signup.html'

        conftest.login_client_user(
            client, student_user.username, 'some_password',
        )
        fail_login_response = client.get('/exercises')
        assert fail_login_response.status_code == 302
Esempio n. 4
0
 def test_banned_user(client: FlaskClient, banned_user: User):
     login_response = conftest.login_client_user(
         client,
         banned_user.username,
         'fake pass',
     )
     assert 'banned' in login_response.get_data(as_text=True)
Esempio n. 5
0
    def test_successful_registration(client: FlaskClient, captured_templates):
        conftest.signup_client_user(
            client, '*****@*****.**', 'some_user',
            'some_name', 'some_password', 'some_password',
        )
        template, _ = captured_templates[-1]
        assert template.name == 'login.html'

        conftest.login_client_user(client, 'some_user', 'some_password')
        fail_login_response = client.get('/exercises')
        assert fail_login_response.status_code == 302

        user = User.get_or_none(User.username == 'some_user')
        token = generate_user_token(user)
        client.get(f'/confirm-email/{user.id}/{token}', follow_redirects=True)
        conftest.login_client_user(client, 'some_user', 'some_password')
        success_login_response = client.get('/exercises')
        assert success_login_response.status_code == 200
Esempio n. 6
0
    def test_invalid_email(
        client: FlaskClient, student_user: User, captured_templates,
    ):
        conftest.signup_client_user(
            client, student_user.mail_address, 'some_user',
            'some_name', 'some_password', 'some_password',
        )
        client.post('/signup', data={
            'email': student_user.mail_address,
            'username': '******',
            'fullname': 'some_name',
            'password': '******',
            'confirm': 'some_password',
        }, follow_redirects=True)
        template, _ = captured_templates[-1]
        assert template.name == 'signup.html'

        conftest.login_client_user(client, 'some_user', 'some_password')
        fail_login_response = client.get('/exercises')
        assert fail_login_response.status_code == 302
Esempio n. 7
0
    def test_expired_token(client: FlaskClient):
        user = conftest.create_student_user(index=1)
        conftest.reset_client_password(client, user.mail_address)
        token = generate_user_token(user)

        fake_time = time.time() + CONFIRMATION_TIME + 1
        with patch('time.time', Mock(return_value=fake_time)):
            conftest.recover_client_password(
                client,
                user.id,
                token,
                'new pass1',
                'new pass1',
            )
            conftest.login_client_user(client, user.username, 'new pass1')
            fail_login_response = client.get('/exercises')
            assert fail_login_response.status_code == 302

            conftest.login_client_user(client, user.username, 'fake pass')
            fail_login_response = client.get('/exercises')
            assert fail_login_response.status_code == 200
Esempio n. 8
0
    def test_expired_token(client: FlaskClient):
        conftest.signup_client_user(
            client, '*****@*****.**', 'some_user',
            'some_name', 'some_password', 'some_password',
        )
        user = User.get_or_none(User.username == 'some_user')
        token = generate_user_token(user)

        fake_time = time.time() + CONFIRMATION_TIME + 1
        with patch('time.time', Mock(return_value=fake_time)):
            client.get(
                f'/confirm-email/{user.id}/{token}', follow_redirects=True,
            )
            conftest.login_client_user(client, 'some_user', 'some_password')
            fail_login_response = client.get('/exercises')
            assert fail_login_response.status_code == 302

            token = generate_user_token(user)
            client.get(
                f'/confirm-email/{user.id}/{token}', follow_redirects=True,
            )
            conftest.login_client_user(client, 'some_user', 'some_password')
            success_login_response = client.get('/exercises')
            assert success_login_response.status_code == 200
Esempio n. 9
0
 def test_login_password_fail(client: FlaskClient, student_user: User):
     conftest.login_client_user(client, student_user.username, 'wrong_pass')
     fail_login_response = client.get('/exercises')
     assert fail_login_response.status_code == 302
Esempio n. 10
0
 def test_login_success(client: FlaskClient, student_user: User):
     conftest.login_client_user(client, student_user.username, 'fake pass')
     success_login_response = client.get('/exercises')
     assert success_login_response.status_code == 200
Esempio n. 11
0
 def test_login_username_fail(client: FlaskClient):
     conftest.login_client_user(client, 'wrong user', 'fake pass')
     fail_login_response = client.get('/exercises')
     assert fail_login_response.status_code == 302