Move more logic into bookmark form

This commit is contained in:
Sascha Ißbrücker
2025-03-09 23:11:48 +01:00
parent 9dfc9b03b4
commit b9bee24047
9 changed files with 119 additions and 116 deletions

View File

@@ -2,8 +2,10 @@ import datetime
from django.core.exceptions import ValidationError
from django.test import TestCase, override_settings
from django.test.client import RequestFactory
from bookmarks.models import BookmarkForm, Bookmark
from bookmarks.forms import BookmarkForm
from bookmarks.models import Bookmark
from bookmarks.tests.helpers import BookmarkFactoryMixin
ENABLED_URL_VALIDATION_TEST_CASES = [
@@ -62,12 +64,15 @@ class BookmarkValidationTestCase(TestCase, BookmarkFactoryMixin):
self._run_bookmark_model_url_validity_checks(DISABLED_URL_VALIDATION_TEST_CASES)
def test_bookmark_form_should_validate_required_fields(self):
form = BookmarkForm(data={"url": ""})
rf = RequestFactory()
request = rf.post("/", data={"url": ""})
form = BookmarkForm(request)
self.assertEqual(len(form.errors), 1)
self.assertIn("required", str(form.errors))
form = BookmarkForm(data={"url": None})
request = rf.post("/", data={})
form = BookmarkForm(request)
self.assertEqual(len(form.errors), 1)
self.assertIn("required", str(form.errors))
@@ -102,7 +107,9 @@ class BookmarkValidationTestCase(TestCase, BookmarkFactoryMixin):
def _run_bookmark_form_url_validity_checks(self, cases):
for case in cases:
url, expectation = case
form = BookmarkForm(data={"url": url})
rf = RequestFactory()
request = rf.post("/", data={"url": url})
form = BookmarkForm(request)
if expectation:
self.assertEqual(len(form.errors), 0)