diff --git a/bookmarks/tests/test_bookmark_edit_view.py b/bookmarks/tests/test_bookmark_edit_view.py index 6cc3094e..18b04ec9 100644 --- a/bookmarks/tests/test_bookmark_edit_view.py +++ b/bookmarks/tests/test_bookmark_edit_view.py @@ -26,6 +26,11 @@ def create_form_data(self, overrides=None): } 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 @@ def test_should_edit_bookmark(self): 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 cb18338c..404d0d99 100644 --- a/bookmarks/tests/test_bookmark_new_view.py +++ b/bookmarks/tests/test_bookmark_new_view.py @@ -46,6 +46,11 @@ def test_should_create_new_bookmark(self): 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 3c789731..4ba0fb26 100644 --- a/bookmarks/tests/test_password_change_view.py +++ b/bookmarks/tests/test_password_change_view.py @@ -43,6 +43,7 @@ def test_should_return_error_for_invalid_old_password(self): 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 @@ def test_should_return_error_for_mismatching_new_password(self): 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 3aaab133..534b952c 100644 --- a/bookmarks/tests/test_settings_general_view.py +++ b/bookmarks/tests/test_settings_general_view.py @@ -22,6 +22,7 @@ def create_profile_form_data(self, overrides=None): 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 @@ def test_update_profile(self): 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 @@ def test_enable_favicons_should_schedule_icon_update(self): # Enabling favicons schedules update form_data = self.create_profile_form_data( { - "update_profile": "", "enable_favicons": True, } ) @@ -331,7 +337,6 @@ def test_enable_preview_image_should_schedule_preview_update(self): # 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 c46d730c..b9b0f7a7 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 @@ class SingleFileServiceTestCase(TestCase): - html_content = "