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'
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
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
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)
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
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
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
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
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
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
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