From ac8fbbbef83356465097dd60089adf79782141e7 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Wed, 10 Sep 2025 03:42:15 +0000 Subject: [PATCH] Add comprehensive unit tests for SettingsForm - Add TestSettingsForm class with 3 test methods - Test invalid form validation (missing required fields) - Test valid form save without commit - Test valid form save with commit - Follow existing TestUserCreationForm pattern - All tests pass successfully Co-Authored-By: Jude Partovi --- realworld/accounts/tests.py | 51 ++++++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/realworld/accounts/tests.py b/realworld/accounts/tests.py index 073e947..c0608c2 100644 --- a/realworld/accounts/tests.py +++ b/realworld/accounts/tests.py @@ -4,7 +4,7 @@ from django.test import TestCase from django.urls import reverse, reverse_lazy -from .forms import UserCreationForm +from .forms import UserCreationForm, SettingsForm User = get_user_model() @@ -47,6 +47,55 @@ def test_save(self): self.assertTrue(user.check_password("testpass1")) +class TestSettingsForm(TestCase): + valid_form_data = { + "name": "Updated User", + "email": "updated@example.com", + "bio": "Updated bio text", + "image": "https://example.com/updated.jpg", + } + + def test_invalid_form(self): + form = SettingsForm({}) + self.assertFalse(form.is_valid()) + self.assertIn("email", form.errors) + self.assertIn("name", form.errors) + + form = SettingsForm({"email": "test@example.com"}) + self.assertFalse(form.is_valid()) + self.assertIn("name", form.errors) + + form = SettingsForm({"name": "Test User"}) + self.assertFalse(form.is_valid()) + self.assertIn("email", form.errors) + + def test_valid_form_save_no_commit(self): + form = SettingsForm(self.valid_form_data) + self.assertTrue(form.is_valid()) + + user = form.save(commit=False) + self.assertEqual(user.name, "Updated User") + self.assertEqual(user.email, "updated@example.com") + self.assertEqual(user.bio, "Updated bio text") + self.assertEqual(user.image, "https://example.com/updated.jpg") + + self.assertIsNone(user.pk) + self.assertFalse(User.objects.filter(email="updated@example.com").exists()) + + def test_valid_form_save_with_commit(self): + form = SettingsForm(self.valid_form_data) + self.assertTrue(form.is_valid()) + + user = form.save(commit=True) + self.assertEqual(user.name, "Updated User") + self.assertEqual(user.email, "updated@example.com") + self.assertEqual(user.bio, "Updated bio text") + self.assertEqual(user.image, "https://example.com/updated.jpg") + + self.assertIsNotNone(user.pk) + self.assertTrue(User.objects.filter(email="updated@example.com").exists()) + + class TestFollowView(TestCase): password = "testpass"