Files
hoopscout/tests/test_auth.py

41 lines
1.3 KiB
Python

import pytest
from django.contrib.auth.models import User
from django.urls import reverse
@pytest.mark.django_db
def test_signup_creates_user(client):
payload = {
"username": "scout1",
"email": "scout1@example.com",
"password1": "StrongPass12345",
"password2": "StrongPass12345",
}
response = client.post(reverse("users:signup"), data=payload)
assert response.status_code == 302
assert User.objects.filter(username="scout1").exists()
@pytest.mark.django_db
def test_dashboard_requires_authentication(client):
response = client.get(reverse("core:dashboard"))
assert response.status_code == 302
assert reverse("users:login") in response.url
@pytest.mark.django_db
def test_login_logout_flow(client):
User.objects.create_user(username="login-user", email="login@example.com", password="StrongPass12345")
login_response = client.post(
reverse("users:login"),
data={"username": "login-user", "password": "StrongPass12345"},
follow=True,
)
assert login_response.status_code == 200
assert login_response.wsgi_request.user.is_authenticated
logout_response = client.post(reverse("users:logout"), follow=True)
assert logout_response.status_code == 200
assert not logout_response.wsgi_request.user.is_authenticated