from django.contrib.auth import get_user_model from django.test import TestCase from django.urls import reverse class ProfileTests(TestCase): """验证资料显式创建、认证保护和更新边界。""" def setUp(self): self.user = get_user_model().objects.create_user(username="alice", password="safe-pass-123") def test_profile_requires_login(self): response = self.client.get(reverse("accounts:profile")) self.assertEqual(response.status_code, 302) def test_profile_is_created_and_updated(self): self.client.force_login(self.user) response = self.client.post(reverse("accounts:profile"), {"display_name": "爱丽丝", "timezone": "Asia/Shanghai"}) self.assertRedirects(response, reverse("accounts:profile")) self.user.refresh_from_db() self.assertEqual(self.user.profile.display_name, "爱丽丝")