diff --git a/bookmarks/tests/test_bookmark_edit_view.py b/bookmarks/tests/test_bookmark_edit_view.py index 6cc3094..18b04ec 100644 --- a/bookmarks/tests/test_bookmark_edit_view.py +++ b/bookmarks/tests/test_bookmark_edit_view.py @@ -26,6 +26,11 @@ class BookmarkEditViewTestCase(TestCase, BookmarkFactoryMixin): } return {**form_data, **overrides} + def test_should_render_successfully(self): + bookmark = self.setup_bookmark() + response = self.client.get(reverse("bookmarks:edit", args=[bookmark.id])) + self.assertEqual(response.status_code, 200) + def test_should_edit_bookmark(self): bookmark = self.setup_bookmark() form_data = self.create_form_data({"id": bookmark.id}) @@ -46,6 +51,14 @@ class BookmarkEditViewTestCase(TestCase, BookmarkFactoryMixin): self.assertEqual(tags[0].name, "editedtag1") self.assertEqual(tags[1].name, "editedtag2") + def test_should_return_422_with_invalid_form(self): + bookmark = self.setup_bookmark() + form_data = self.create_form_data({"id": bookmark.id, "url": ""}) + response = self.client.post( + reverse("bookmarks:edit", args=[bookmark.id]), form_data + ) + self.assertEqual(response.status_code, 422) + def test_should_edit_unread_state(self): bookmark = self.setup_bookmark() diff --git a/bookmarks/tests/test_bookmark_new_view.py b/bookmarks/tests/test_bookmark_new_view.py index cb18338..404d0d9 100644 --- a/bookmarks/tests/test_bookmark_new_view.py +++ b/bookmarks/tests/test_bookmark_new_view.py @@ -46,6 +46,11 @@ class BookmarkNewViewTestCase(TestCase, BookmarkFactoryMixin): self.assertEqual(tags[0].name, "tag1") self.assertEqual(tags[1].name, "tag2") + def test_should_return_422_with_invalid_form(self): + form_data = self.create_form_data({"url": ""}) + response = self.client.post(reverse("bookmarks:new"), form_data) + self.assertEqual(response.status_code, 422) + def test_should_create_new_unread_bookmark(self): form_data = self.create_form_data({"unread": True}) diff --git a/bookmarks/tests/test_password_change_view.py b/bookmarks/tests/test_password_change_view.py index 3c78973..4ba0fb2 100644 --- a/bookmarks/tests/test_password_change_view.py +++ b/bookmarks/tests/test_password_change_view.py @@ -43,6 +43,7 @@ class PasswordChangeViewTestCase(TestCase, BookmarkFactoryMixin): response = self.client.post(reverse("change_password"), form_data) + self.assertEqual(response.status_code, 422) self.assertIn("old_password", response.context_data["form"].errors) def test_should_return_error_for_mismatching_new_password(self): @@ -54,4 +55,5 @@ class PasswordChangeViewTestCase(TestCase, BookmarkFactoryMixin): response = self.client.post(reverse("change_password"), form_data) + self.assertEqual(response.status_code, 422) self.assertIn("new_password2", response.context_data["form"].errors) diff --git a/bookmarks/tests/test_settings_general_view.py b/bookmarks/tests/test_settings_general_view.py index 3aaab13..534b952 100644 --- a/bookmarks/tests/test_settings_general_view.py +++ b/bookmarks/tests/test_settings_general_view.py @@ -22,6 +22,7 @@ class SettingsGeneralViewTestCase(TestCase, BookmarkFactoryMixin): if not overrides: overrides = {} form_data = { + "update_profile": "", "theme": UserProfile.THEME_AUTO, "bookmark_date_display": UserProfile.BOOKMARK_DATE_DISPLAY_RELATIVE, "bookmark_description_display": UserProfile.BOOKMARK_DESCRIPTION_DISPLAY_INLINE, @@ -195,6 +196,12 @@ class SettingsGeneralViewTestCase(TestCase, BookmarkFactoryMixin): self.assertSuccessMessage(html, "Profile updated") + def test_update_profile_with_invalid_form_returns_422(self): + form_data = self.create_profile_form_data({"items_per_page": "-1"}) + response = self.client.post(reverse("bookmarks:settings.update"), form_data) + + self.assertEqual(response.status_code, 422) + def test_update_profile_should_not_be_called_without_respective_form_action(self): form_data = { "theme": UserProfile.THEME_DARK, @@ -217,7 +224,6 @@ class SettingsGeneralViewTestCase(TestCase, BookmarkFactoryMixin): # Enabling favicons schedules update form_data = self.create_profile_form_data( { - "update_profile": "", "enable_favicons": True, } ) @@ -331,7 +337,6 @@ class SettingsGeneralViewTestCase(TestCase, BookmarkFactoryMixin): # Enabling favicons schedules update form_data = self.create_profile_form_data( { - "update_profile": "", "enable_preview_images": True, } ) diff --git a/bookmarks/tests/test_singlefile_service.py b/bookmarks/tests/test_singlefile_service.py index c46d730..b9b0f7a 100644 --- a/bookmarks/tests/test_singlefile_service.py +++ b/bookmarks/tests/test_singlefile_service.py @@ -1,3 +1,4 @@ +import secrets import gzip import os import subprocess @@ -9,9 +10,10 @@ from bookmarks.services import singlefile class SingleFileServiceTestCase(TestCase): - html_content = "