mirror of
https://github.com/sissbruecker/linkding.git
synced 2025-08-13 13:39:27 +02:00
Merge siteroot application
This commit is contained in:
@@ -7,7 +7,7 @@ from django.test import TestCase
|
||||
|
||||
class AppOptionsTestCase(TestCase):
|
||||
def setUp(self) -> None:
|
||||
self.settings_module = importlib.import_module("siteroot.settings.base")
|
||||
self.settings_module = importlib.import_module("bookmarks.settings.base")
|
||||
|
||||
def test_empty_csrf_trusted_origins(self):
|
||||
module = importlib.reload(self.settings_module)
|
||||
|
@@ -16,17 +16,17 @@ class AuthApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
def test_auth_with_token_keyword(self):
|
||||
self.authenticate("Token")
|
||||
|
||||
url = reverse("bookmarks:user-profile")
|
||||
url = reverse("linkding:user-profile")
|
||||
self.get(url, expected_status_code=status.HTTP_200_OK)
|
||||
|
||||
def test_auth_with_bearer_keyword(self):
|
||||
self.authenticate("Bearer")
|
||||
|
||||
url = reverse("bookmarks:user-profile")
|
||||
url = reverse("linkding:user-profile")
|
||||
self.get(url, expected_status_code=status.HTTP_200_OK)
|
||||
|
||||
def test_auth_with_unknown_keyword(self):
|
||||
self.authenticate("Key")
|
||||
|
||||
url = reverse("bookmarks:user-profile")
|
||||
url = reverse("linkding:user-profile")
|
||||
self.get(url, expected_status_code=status.HTTP_401_UNAUTHORIZED)
|
||||
|
@@ -21,7 +21,7 @@ class AuthProxySupportTest(TestCase):
|
||||
)
|
||||
|
||||
headers = {"REMOTE_USER": user.username}
|
||||
response = self.client.get(reverse("bookmarks:index"), **headers)
|
||||
response = self.client.get(reverse("linkding:bookmarks.index"), **headers)
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
@@ -43,7 +43,7 @@ class AuthProxySupportTest(TestCase):
|
||||
)
|
||||
|
||||
headers = {"Custom-User": user.username}
|
||||
response = self.client.get(reverse("bookmarks:index"), **headers)
|
||||
response = self.client.get(reverse("linkding:bookmarks.index"), **headers)
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
@@ -53,6 +53,8 @@ class AuthProxySupportTest(TestCase):
|
||||
)
|
||||
|
||||
headers = {"REMOTE_USER": user.username}
|
||||
response = self.client.get(reverse("bookmarks:index"), **headers, follow=True)
|
||||
response = self.client.get(
|
||||
reverse("linkding:bookmarks.index"), **headers, follow=True
|
||||
)
|
||||
|
||||
self.assertRedirects(response, "/login/?next=%2Fbookmarks")
|
||||
|
@@ -37,7 +37,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark = self.setup_bookmark()
|
||||
|
||||
self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"archive": [bookmark.id],
|
||||
},
|
||||
@@ -54,7 +54,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark = self.setup_bookmark(user=other_user)
|
||||
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"archive": [bookmark.id],
|
||||
},
|
||||
@@ -69,7 +69,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark = self.setup_bookmark(is_archived=True)
|
||||
|
||||
self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"unarchive": [bookmark.id],
|
||||
},
|
||||
@@ -85,7 +85,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark = self.setup_bookmark(is_archived=True, user=other_user)
|
||||
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"unarchive": [bookmark.id],
|
||||
},
|
||||
@@ -99,7 +99,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark = self.setup_bookmark()
|
||||
|
||||
self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"remove": [bookmark.id],
|
||||
},
|
||||
@@ -114,7 +114,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark = self.setup_bookmark(user=other_user)
|
||||
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"remove": [bookmark.id],
|
||||
},
|
||||
@@ -126,7 +126,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark = self.setup_bookmark(unread=True)
|
||||
|
||||
self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"mark_as_read": [bookmark.id],
|
||||
},
|
||||
@@ -139,7 +139,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark = self.setup_bookmark(shared=True)
|
||||
|
||||
self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"unshare": [bookmark.id],
|
||||
},
|
||||
@@ -156,7 +156,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark = self.setup_bookmark(user=other_user, shared=True)
|
||||
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"unshare": [bookmark.id],
|
||||
},
|
||||
@@ -172,7 +172,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark = self.setup_bookmark()
|
||||
with patch.object(tasks, "_create_html_snapshot_task"):
|
||||
self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"create_html_snapshot": [bookmark.id],
|
||||
},
|
||||
@@ -187,7 +187,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark = self.setup_bookmark(user=other_user)
|
||||
with patch.object(tasks, "_create_html_snapshot_task"):
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"create_html_snapshot": [bookmark.id],
|
||||
},
|
||||
@@ -202,7 +202,7 @@ class BookmarkActionViewTestCase(
|
||||
|
||||
with patch.object(assets, "upload_asset") as mock_upload_asset:
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{"upload_asset": bookmark.id, "upload_asset_file": upload_file},
|
||||
)
|
||||
self.assertEqual(response.status_code, 302)
|
||||
@@ -223,7 +223,7 @@ class BookmarkActionViewTestCase(
|
||||
|
||||
with patch.object(assets, "upload_asset") as mock_upload_asset:
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{"upload_asset": bookmark.id, "upload_asset_file": upload_file},
|
||||
)
|
||||
self.assertEqual(response.status_code, 404)
|
||||
@@ -237,7 +237,7 @@ class BookmarkActionViewTestCase(
|
||||
upload_file = SimpleUploadedFile("test.txt", file_content)
|
||||
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{"upload_asset": bookmark.id, "upload_asset_file": upload_file},
|
||||
)
|
||||
self.assertEqual(response.status_code, 403)
|
||||
@@ -246,7 +246,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark = self.setup_bookmark()
|
||||
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{"upload_asset": bookmark.id},
|
||||
)
|
||||
self.assertEqual(response.status_code, 400)
|
||||
@@ -256,7 +256,7 @@ class BookmarkActionViewTestCase(
|
||||
asset = self.setup_asset(bookmark)
|
||||
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:index.action"), {"remove_asset": asset.id}
|
||||
reverse("linkding:bookmarks.index.action"), {"remove_asset": asset.id}
|
||||
)
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertFalse(BookmarkAsset.objects.filter(id=asset.id).exists())
|
||||
@@ -267,7 +267,7 @@ class BookmarkActionViewTestCase(
|
||||
asset = self.setup_asset(bookmark)
|
||||
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:index.action"), {"remove_asset": asset.id}
|
||||
reverse("linkding:bookmarks.index.action"), {"remove_asset": asset.id}
|
||||
)
|
||||
self.assertEqual(response.status_code, 404)
|
||||
self.assertTrue(BookmarkAsset.objects.filter(id=asset.id).exists())
|
||||
@@ -276,7 +276,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark = self.setup_bookmark()
|
||||
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"update_state": bookmark.id,
|
||||
"is_archived": "on",
|
||||
@@ -296,7 +296,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark = self.setup_bookmark(user=other_user)
|
||||
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"update_state": bookmark.id,
|
||||
"is_archived": "on",
|
||||
@@ -317,7 +317,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark3 = self.setup_bookmark()
|
||||
|
||||
self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"bulk_action": ["bulk_archive"],
|
||||
"bulk_execute": [""],
|
||||
@@ -342,7 +342,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark3 = self.setup_bookmark(user=other_user)
|
||||
|
||||
self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"bulk_action": ["bulk_archive"],
|
||||
"bulk_execute": [""],
|
||||
@@ -364,7 +364,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark3 = self.setup_bookmark(is_archived=True)
|
||||
|
||||
self.client.post(
|
||||
reverse("bookmarks:archived.action"),
|
||||
reverse("linkding:bookmarks.archived.action"),
|
||||
{
|
||||
"bulk_action": ["bulk_unarchive"],
|
||||
"bulk_execute": [""],
|
||||
@@ -389,7 +389,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark3 = self.setup_bookmark(is_archived=True, user=other_user)
|
||||
|
||||
self.client.post(
|
||||
reverse("bookmarks:archived.action"),
|
||||
reverse("linkding:bookmarks.archived.action"),
|
||||
{
|
||||
"bulk_action": ["bulk_unarchive"],
|
||||
"bulk_execute": [""],
|
||||
@@ -411,7 +411,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark3 = self.setup_bookmark()
|
||||
|
||||
self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"bulk_action": ["bulk_delete"],
|
||||
"bulk_execute": [""],
|
||||
@@ -436,7 +436,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark3 = self.setup_bookmark(user=other_user)
|
||||
|
||||
self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"bulk_action": ["bulk_delete"],
|
||||
"bulk_execute": [""],
|
||||
@@ -460,7 +460,7 @@ class BookmarkActionViewTestCase(
|
||||
tag2 = self.setup_tag()
|
||||
|
||||
self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"bulk_action": ["bulk_tag"],
|
||||
"bulk_execute": [""],
|
||||
@@ -492,7 +492,7 @@ class BookmarkActionViewTestCase(
|
||||
tag2 = self.setup_tag()
|
||||
|
||||
self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"bulk_action": ["bulk_tag"],
|
||||
"bulk_execute": [""],
|
||||
@@ -521,7 +521,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark3 = self.setup_bookmark(tags=[tag1, tag2])
|
||||
|
||||
self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"bulk_action": ["bulk_untag"],
|
||||
"bulk_execute": [""],
|
||||
@@ -553,7 +553,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark3 = self.setup_bookmark(tags=[tag1, tag2], user=other_user)
|
||||
|
||||
self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"bulk_action": ["bulk_untag"],
|
||||
"bulk_execute": [""],
|
||||
@@ -580,7 +580,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark3 = self.setup_bookmark(unread=True)
|
||||
|
||||
self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"bulk_action": ["bulk_read"],
|
||||
"bulk_execute": [""],
|
||||
@@ -605,7 +605,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark3 = self.setup_bookmark(unread=True, user=other_user)
|
||||
|
||||
self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"bulk_action": ["bulk_read"],
|
||||
"bulk_execute": [""],
|
||||
@@ -627,7 +627,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark3 = self.setup_bookmark(unread=False)
|
||||
|
||||
self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"bulk_action": ["bulk_unread"],
|
||||
"bulk_execute": [""],
|
||||
@@ -652,7 +652,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark3 = self.setup_bookmark(unread=False, user=other_user)
|
||||
|
||||
self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"bulk_action": ["bulk_unread"],
|
||||
"bulk_execute": [""],
|
||||
@@ -674,7 +674,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark3 = self.setup_bookmark(shared=False)
|
||||
|
||||
self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"bulk_action": ["bulk_share"],
|
||||
"bulk_execute": [""],
|
||||
@@ -699,7 +699,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark3 = self.setup_bookmark(shared=False, user=other_user)
|
||||
|
||||
self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"bulk_action": ["bulk_share"],
|
||||
"bulk_execute": [""],
|
||||
@@ -721,7 +721,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark3 = self.setup_bookmark(shared=True)
|
||||
|
||||
self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"bulk_action": ["bulk_unshare"],
|
||||
"bulk_execute": [""],
|
||||
@@ -746,7 +746,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark3 = self.setup_bookmark(shared=True, user=other_user)
|
||||
|
||||
self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"bulk_action": ["bulk_unshare"],
|
||||
"bulk_execute": [""],
|
||||
@@ -768,7 +768,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark3 = self.setup_bookmark()
|
||||
|
||||
self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"bulk_action": ["bulk_archive"],
|
||||
"bulk_execute": [""],
|
||||
@@ -784,7 +784,7 @@ class BookmarkActionViewTestCase(
|
||||
self.setup_numbered_bookmarks(100)
|
||||
|
||||
self.client.post(
|
||||
reverse("bookmarks:index.action") + "?page=2",
|
||||
reverse("linkding:bookmarks.index.action") + "?page=2",
|
||||
{
|
||||
"bulk_action": ["bulk_delete"],
|
||||
"bulk_execute": [""],
|
||||
@@ -813,7 +813,7 @@ class BookmarkActionViewTestCase(
|
||||
self.assertIsNotNone(Bookmark.objects.filter(title="Bookmark 3").first())
|
||||
|
||||
self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"bulk_action": ["bulk_delete"],
|
||||
"bulk_execute": [""],
|
||||
@@ -833,7 +833,7 @@ class BookmarkActionViewTestCase(
|
||||
self.assertEqual(3, Bookmark.objects.filter(title__startswith="foo").count())
|
||||
|
||||
self.client.post(
|
||||
reverse("bookmarks:index.action") + "?q=foo",
|
||||
reverse("linkding:bookmarks.index.action") + "?q=foo",
|
||||
{
|
||||
"bulk_action": ["bulk_delete"],
|
||||
"bulk_execute": [""],
|
||||
@@ -858,7 +858,7 @@ class BookmarkActionViewTestCase(
|
||||
)
|
||||
|
||||
self.client.post(
|
||||
reverse("bookmarks:archived.action"),
|
||||
reverse("linkding:bookmarks.archived.action"),
|
||||
{
|
||||
"bulk_action": ["bulk_delete"],
|
||||
"bulk_execute": [""],
|
||||
@@ -878,7 +878,7 @@ class BookmarkActionViewTestCase(
|
||||
self.assertEqual(3, Bookmark.objects.filter(title__startswith="foo").count())
|
||||
|
||||
self.client.post(
|
||||
reverse("bookmarks:archived.action") + "?q=foo",
|
||||
reverse("linkding:bookmarks.archived.action") + "?q=foo",
|
||||
{
|
||||
"bulk_action": ["bulk_delete"],
|
||||
"bulk_execute": [""],
|
||||
@@ -893,7 +893,7 @@ class BookmarkActionViewTestCase(
|
||||
self.setup_bulk_edit_scope_test_data()
|
||||
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:shared.action"),
|
||||
reverse("linkding:bookmarks.shared.action"),
|
||||
{
|
||||
"bulk_action": ["bulk_delete"],
|
||||
"bulk_execute": [""],
|
||||
@@ -908,7 +908,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark3 = self.setup_bookmark()
|
||||
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"bulk_action": ["bulk_archive"],
|
||||
"bulk_execute": [""],
|
||||
@@ -917,7 +917,7 @@ class BookmarkActionViewTestCase(
|
||||
self.assertEqual(response.status_code, 302)
|
||||
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"bulk_action": ["bulk_archive"],
|
||||
"bulk_execute": [""],
|
||||
@@ -934,7 +934,7 @@ class BookmarkActionViewTestCase(
|
||||
bookmark3 = self.setup_bookmark()
|
||||
|
||||
self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
{
|
||||
"bookmark_id": [
|
||||
str(bookmark1.id),
|
||||
@@ -947,22 +947,22 @@ class BookmarkActionViewTestCase(
|
||||
self.assertBookmarksAreUnmodified([bookmark1, bookmark2, bookmark3])
|
||||
|
||||
def test_index_action_redirects_to_index_with_query_params(self):
|
||||
url = reverse("bookmarks:index.action") + "?q=foo&page=2"
|
||||
redirect_url = reverse("bookmarks:index") + "?q=foo&page=2"
|
||||
url = reverse("linkding:bookmarks.index.action") + "?q=foo&page=2"
|
||||
redirect_url = reverse("linkding:bookmarks.index") + "?q=foo&page=2"
|
||||
response = self.client.post(url)
|
||||
|
||||
self.assertRedirects(response, redirect_url)
|
||||
|
||||
def test_archived_action_redirects_to_archived_with_query_params(self):
|
||||
url = reverse("bookmarks:archived.action") + "?q=foo&page=2"
|
||||
redirect_url = reverse("bookmarks:archived") + "?q=foo&page=2"
|
||||
url = reverse("linkding:bookmarks.archived.action") + "?q=foo&page=2"
|
||||
redirect_url = reverse("linkding:bookmarks.archived") + "?q=foo&page=2"
|
||||
response = self.client.post(url)
|
||||
|
||||
self.assertRedirects(response, redirect_url)
|
||||
|
||||
def test_shared_action_redirects_to_shared_with_query_params(self):
|
||||
url = reverse("bookmarks:shared.action") + "?q=foo&page=2"
|
||||
redirect_url = reverse("bookmarks:shared") + "?q=foo&page=2"
|
||||
url = reverse("linkding:bookmarks.shared.action") + "?q=foo&page=2"
|
||||
redirect_url = reverse("linkding:bookmarks.shared") + "?q=foo&page=2"
|
||||
response = self.client.post(url)
|
||||
|
||||
self.assertRedirects(response, redirect_url)
|
||||
@@ -1012,7 +1012,7 @@ class BookmarkActionViewTestCase(
|
||||
def test_index_action_with_turbo_returns_bookmark_update(self):
|
||||
fixture = self.bookmark_update_fixture()
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:index.action"),
|
||||
reverse("linkding:bookmarks.index.action"),
|
||||
HTTP_ACCEPT="text/vnd.turbo-stream.html",
|
||||
)
|
||||
|
||||
@@ -1030,7 +1030,7 @@ class BookmarkActionViewTestCase(
|
||||
def test_archived_action_with_turbo_returns_bookmark_update(self):
|
||||
fixture = self.bookmark_update_fixture()
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:archived.action"),
|
||||
reverse("linkding:bookmarks.archived.action"),
|
||||
HTTP_ACCEPT="text/vnd.turbo-stream.html",
|
||||
)
|
||||
|
||||
@@ -1048,7 +1048,7 @@ class BookmarkActionViewTestCase(
|
||||
def test_shared_action_with_turbo_returns_bookmark_update(self):
|
||||
fixture = self.bookmark_update_fixture()
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:shared.action"),
|
||||
reverse("linkding:bookmarks.shared.action"),
|
||||
HTTP_ACCEPT="text/vnd.turbo-stream.html",
|
||||
)
|
||||
|
||||
|
@@ -46,7 +46,7 @@ class BookmarkArchivedViewTestCase(
|
||||
self.setup_bookmark(is_archived=True, user=other_user),
|
||||
]
|
||||
|
||||
response = self.client.get(reverse("bookmarks:archived"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.archived"))
|
||||
|
||||
self.assertVisibleBookmarks(response, visible_bookmarks)
|
||||
self.assertInvisibleBookmarks(response, invisible_bookmarks)
|
||||
@@ -59,7 +59,7 @@ class BookmarkArchivedViewTestCase(
|
||||
3, prefix="bar", archived=True
|
||||
)
|
||||
|
||||
response = self.client.get(reverse("bookmarks:archived") + "?q=foo")
|
||||
response = self.client.get(reverse("linkding:bookmarks.archived") + "?q=foo")
|
||||
html = collapse_whitespace(response.content.decode())
|
||||
|
||||
self.assertVisibleBookmarks(response, visible_bookmarks)
|
||||
@@ -84,7 +84,7 @@ class BookmarkArchivedViewTestCase(
|
||||
unarchived_bookmarks + other_user_bookmarks
|
||||
)
|
||||
|
||||
response = self.client.get(reverse("bookmarks:archived"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.archived"))
|
||||
|
||||
self.assertVisibleTags(response, visible_tags)
|
||||
self.assertInvisibleTags(response, invisible_tags)
|
||||
@@ -100,7 +100,7 @@ class BookmarkArchivedViewTestCase(
|
||||
visible_tags = self.get_tags_from_bookmarks(visible_bookmarks)
|
||||
invisible_tags = self.get_tags_from_bookmarks(invisible_bookmarks)
|
||||
|
||||
response = self.client.get(reverse("bookmarks:archived") + "?q=foo")
|
||||
response = self.client.get(reverse("linkding:bookmarks.archived") + "?q=foo")
|
||||
|
||||
self.assertVisibleTags(response, visible_tags)
|
||||
self.assertInvisibleTags(response, invisible_tags)
|
||||
@@ -132,7 +132,7 @@ class BookmarkArchivedViewTestCase(
|
||||
unread_tags = self.get_tags_from_bookmarks(unread_bookmarks)
|
||||
read_tags = self.get_tags_from_bookmarks(read_bookmarks)
|
||||
|
||||
response = self.client.get(reverse("bookmarks:archived"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.archived"))
|
||||
self.assertVisibleBookmarks(response, unread_bookmarks)
|
||||
self.assertInvisibleBookmarks(response, read_bookmarks)
|
||||
self.assertVisibleTags(response, unread_tags)
|
||||
@@ -149,7 +149,8 @@ class BookmarkArchivedViewTestCase(
|
||||
self.setup_bookmark(is_archived=True, tags=tags)
|
||||
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:archived") + f"?q=%23{tags[0].name}+%23{tags[1].name}"
|
||||
reverse("linkding:bookmarks.archived")
|
||||
+ f"?q=%23{tags[0].name}+%23{tags[1].name}"
|
||||
)
|
||||
|
||||
self.assertSelectedTags(response, [tags[0], tags[1]])
|
||||
@@ -167,7 +168,7 @@ class BookmarkArchivedViewTestCase(
|
||||
self.setup_bookmark(title=tags[0].name, tags=tags, is_archived=True)
|
||||
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:archived")
|
||||
reverse("linkding:bookmarks.archived")
|
||||
+ f"?q={tags[0].name}+%23{tags[1].name.upper()}"
|
||||
)
|
||||
|
||||
@@ -187,7 +188,7 @@ class BookmarkArchivedViewTestCase(
|
||||
self.setup_bookmark(tags=tags, is_archived=True)
|
||||
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:archived")
|
||||
reverse("linkding:bookmarks.archived")
|
||||
+ f"?q={tags[0].name}+%23{tags[1].name.upper()}"
|
||||
)
|
||||
|
||||
@@ -196,7 +197,7 @@ class BookmarkArchivedViewTestCase(
|
||||
def test_should_open_bookmarks_in_new_page_by_default(self):
|
||||
visible_bookmarks = self.setup_numbered_bookmarks(3, archived=True)
|
||||
|
||||
response = self.client.get(reverse("bookmarks:archived"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.archived"))
|
||||
|
||||
self.assertVisibleBookmarks(response, visible_bookmarks, "_blank")
|
||||
|
||||
@@ -207,14 +208,14 @@ class BookmarkArchivedViewTestCase(
|
||||
|
||||
visible_bookmarks = self.setup_numbered_bookmarks(3, archived=True)
|
||||
|
||||
response = self.client.get(reverse("bookmarks:archived"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.archived"))
|
||||
|
||||
self.assertVisibleBookmarks(response, visible_bookmarks, "_self")
|
||||
|
||||
def test_edit_link_return_url_respects_search_options(self):
|
||||
bookmark = self.setup_bookmark(title="foo", is_archived=True)
|
||||
edit_url = reverse("bookmarks:edit", args=[bookmark.id])
|
||||
base_url = reverse("bookmarks:archived")
|
||||
edit_url = reverse("linkding:bookmarks.edit", args=[bookmark.id])
|
||||
base_url = reverse("linkding:bookmarks.archived")
|
||||
|
||||
# without query params
|
||||
return_url = urllib.parse.quote(base_url)
|
||||
@@ -240,8 +241,8 @@ class BookmarkArchivedViewTestCase(
|
||||
self.assertEditLink(response, url)
|
||||
|
||||
def test_bulk_edit_respects_search_options(self):
|
||||
action_url = reverse("bookmarks:archived.action")
|
||||
base_url = reverse("bookmarks:archived")
|
||||
action_url = reverse("linkding:bookmarks.archived.action")
|
||||
base_url = reverse("linkding:bookmarks.archived")
|
||||
|
||||
# without params
|
||||
url = f"{action_url}"
|
||||
@@ -264,7 +265,7 @@ class BookmarkArchivedViewTestCase(
|
||||
self.assertBulkActionForm(response, url)
|
||||
|
||||
def test_allowed_bulk_actions(self):
|
||||
url = reverse("bookmarks:archived")
|
||||
url = reverse("linkding:bookmarks.archived")
|
||||
response = self.client.get(url)
|
||||
html = response.content.decode()
|
||||
|
||||
@@ -287,7 +288,7 @@ class BookmarkArchivedViewTestCase(
|
||||
user_profile.enable_sharing = True
|
||||
user_profile.save()
|
||||
|
||||
url = reverse("bookmarks:archived")
|
||||
url = reverse("linkding:bookmarks.archived")
|
||||
response = self.client.get(url)
|
||||
html = response.content.decode()
|
||||
|
||||
@@ -309,13 +310,13 @@ class BookmarkArchivedViewTestCase(
|
||||
|
||||
def test_apply_search_preferences(self):
|
||||
# no params
|
||||
response = self.client.post(reverse("bookmarks:archived"))
|
||||
response = self.client.post(reverse("linkding:bookmarks.archived"))
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertEqual(response.url, reverse("bookmarks:archived"))
|
||||
self.assertEqual(response.url, reverse("linkding:bookmarks.archived"))
|
||||
|
||||
# some params
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:archived"),
|
||||
reverse("linkding:bookmarks.archived"),
|
||||
{
|
||||
"q": "foo",
|
||||
"sort": BookmarkSearch.SORT_TITLE_ASC,
|
||||
@@ -323,12 +324,13 @@ class BookmarkArchivedViewTestCase(
|
||||
)
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertEqual(
|
||||
response.url, reverse("bookmarks:archived") + "?q=foo&sort=title_asc"
|
||||
response.url,
|
||||
reverse("linkding:bookmarks.archived") + "?q=foo&sort=title_asc",
|
||||
)
|
||||
|
||||
# params with default value are removed
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:archived"),
|
||||
reverse("linkding:bookmarks.archived"),
|
||||
{
|
||||
"q": "foo",
|
||||
"user": "",
|
||||
@@ -339,12 +341,12 @@ class BookmarkArchivedViewTestCase(
|
||||
)
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertEqual(
|
||||
response.url, reverse("bookmarks:archived") + "?q=foo&unread=yes"
|
||||
response.url, reverse("linkding:bookmarks.archived") + "?q=foo&unread=yes"
|
||||
)
|
||||
|
||||
# page is removed
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:archived"),
|
||||
reverse("linkding:bookmarks.archived"),
|
||||
{
|
||||
"q": "foo",
|
||||
"page": "2",
|
||||
@@ -353,7 +355,8 @@ class BookmarkArchivedViewTestCase(
|
||||
)
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertEqual(
|
||||
response.url, reverse("bookmarks:archived") + "?q=foo&sort=title_asc"
|
||||
response.url,
|
||||
reverse("linkding:bookmarks.archived") + "?q=foo&sort=title_asc",
|
||||
)
|
||||
|
||||
def test_save_search_preferences(self):
|
||||
@@ -361,7 +364,7 @@ class BookmarkArchivedViewTestCase(
|
||||
|
||||
# no params
|
||||
self.client.post(
|
||||
reverse("bookmarks:archived"),
|
||||
reverse("linkding:bookmarks.archived"),
|
||||
{
|
||||
"save": "",
|
||||
},
|
||||
@@ -378,7 +381,7 @@ class BookmarkArchivedViewTestCase(
|
||||
|
||||
# with param
|
||||
self.client.post(
|
||||
reverse("bookmarks:archived"),
|
||||
reverse("linkding:bookmarks.archived"),
|
||||
{
|
||||
"save": "",
|
||||
"sort": BookmarkSearch.SORT_TITLE_ASC,
|
||||
@@ -396,7 +399,7 @@ class BookmarkArchivedViewTestCase(
|
||||
|
||||
# add a param
|
||||
self.client.post(
|
||||
reverse("bookmarks:archived"),
|
||||
reverse("linkding:bookmarks.archived"),
|
||||
{
|
||||
"save": "",
|
||||
"sort": BookmarkSearch.SORT_TITLE_ASC,
|
||||
@@ -415,7 +418,7 @@ class BookmarkArchivedViewTestCase(
|
||||
|
||||
# remove a param
|
||||
self.client.post(
|
||||
reverse("bookmarks:archived"),
|
||||
reverse("linkding:bookmarks.archived"),
|
||||
{
|
||||
"save": "",
|
||||
"unread": BookmarkSearch.FILTER_UNREAD_YES,
|
||||
@@ -433,7 +436,7 @@ class BookmarkArchivedViewTestCase(
|
||||
|
||||
# ignores non-preferences
|
||||
self.client.post(
|
||||
reverse("bookmarks:archived"),
|
||||
reverse("linkding:bookmarks.archived"),
|
||||
{
|
||||
"save": "",
|
||||
"q": "foo",
|
||||
@@ -453,7 +456,7 @@ class BookmarkArchivedViewTestCase(
|
||||
)
|
||||
|
||||
def test_url_encode_bookmark_actions_url(self):
|
||||
url = reverse("bookmarks:archived") + "?q=%23foo"
|
||||
url = reverse("linkding:bookmarks.archived") + "?q=%23foo"
|
||||
response = self.client.get(url)
|
||||
html = response.content.decode()
|
||||
soup = self.make_soup(html)
|
||||
@@ -467,34 +470,34 @@ class BookmarkArchivedViewTestCase(
|
||||
def test_encode_search_params(self):
|
||||
bookmark = self.setup_bookmark(description="alert('xss')", is_archived=True)
|
||||
|
||||
url = reverse("bookmarks:archived") + "?q=alert(%27xss%27)"
|
||||
url = reverse("linkding:bookmarks.archived") + "?q=alert(%27xss%27)"
|
||||
response = self.client.get(url)
|
||||
self.assertNotContains(response, "alert('xss')")
|
||||
self.assertContains(response, bookmark.url)
|
||||
|
||||
url = reverse("bookmarks:archived") + "?sort=alert(%27xss%27)"
|
||||
url = reverse("linkding:bookmarks.archived") + "?sort=alert(%27xss%27)"
|
||||
response = self.client.get(url)
|
||||
self.assertNotContains(response, "alert('xss')")
|
||||
|
||||
url = reverse("bookmarks:archived") + "?unread=alert(%27xss%27)"
|
||||
url = reverse("linkding:bookmarks.archived") + "?unread=alert(%27xss%27)"
|
||||
response = self.client.get(url)
|
||||
self.assertNotContains(response, "alert('xss')")
|
||||
|
||||
url = reverse("bookmarks:archived") + "?shared=alert(%27xss%27)"
|
||||
url = reverse("linkding:bookmarks.archived") + "?shared=alert(%27xss%27)"
|
||||
response = self.client.get(url)
|
||||
self.assertNotContains(response, "alert('xss')")
|
||||
|
||||
url = reverse("bookmarks:archived") + "?user=alert(%27xss%27)"
|
||||
url = reverse("linkding:bookmarks.archived") + "?user=alert(%27xss%27)"
|
||||
response = self.client.get(url)
|
||||
self.assertNotContains(response, "alert('xss')")
|
||||
|
||||
url = reverse("bookmarks:archived") + "?page=alert(%27xss%27)"
|
||||
url = reverse("linkding:bookmarks.archived") + "?page=alert(%27xss%27)"
|
||||
response = self.client.get(url)
|
||||
self.assertNotContains(response, "alert('xss')")
|
||||
|
||||
def test_turbo_frame_details_modal_renders_details_modal_update(self):
|
||||
bookmark = self.setup_bookmark()
|
||||
url = reverse("bookmarks:archived") + f"?bookmark_id={bookmark.id}"
|
||||
url = reverse("linkding:bookmarks.archived") + f"?bookmark_id={bookmark.id}"
|
||||
response = self.client.get(url, headers={"Turbo-Frame": "details-modal"})
|
||||
|
||||
self.assertEqual(200, response.status_code)
|
||||
@@ -505,7 +508,7 @@ class BookmarkArchivedViewTestCase(
|
||||
self.assertIsNone(soup.select_one("#tag-cloud-container"))
|
||||
|
||||
def test_does_not_include_rss_feed(self):
|
||||
response = self.client.get(reverse("bookmarks:archived"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.archived"))
|
||||
soup = self.make_soup(response.content.decode())
|
||||
|
||||
feed = soup.select_one('head link[type="application/rss+xml"]')
|
||||
|
@@ -31,7 +31,7 @@ class BookmarkArchivedViewPerformanceTestCase(
|
||||
# capture number of queries
|
||||
context = CaptureQueriesContext(self.get_connection())
|
||||
with context:
|
||||
response = self.client.get(reverse("bookmarks:archived"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.archived"))
|
||||
html = response.content.decode("utf-8")
|
||||
soup = self.make_soup(html)
|
||||
list_items = soup.select("li[ld-bookmark-item]")
|
||||
@@ -46,7 +46,7 @@ class BookmarkArchivedViewPerformanceTestCase(
|
||||
|
||||
# assert num queries doesn't increase
|
||||
with self.assertNumQueries(number_of_queries):
|
||||
response = self.client.get(reverse("bookmarks:archived"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.archived"))
|
||||
html = response.content.decode("utf-8")
|
||||
soup = self.make_soup(html)
|
||||
list_items = soup.select("li[ld-bookmark-item]")
|
||||
|
@@ -117,13 +117,13 @@ class BookmarkAssetViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
def test_view_access(self):
|
||||
self.view_access_test("bookmarks:assets.view")
|
||||
self.view_access_test("linkding:assets.view")
|
||||
|
||||
def test_view_access_guest_user(self):
|
||||
self.view_access_guest_user_test("bookmarks:assets.view")
|
||||
self.view_access_guest_user_test("linkding:assets.view")
|
||||
|
||||
def test_reader_view_access(self):
|
||||
self.view_access_test("bookmarks:assets.read")
|
||||
self.view_access_test("linkding:assets.read")
|
||||
|
||||
def test_reader_view_access_guest_user(self):
|
||||
self.view_access_guest_user_test("bookmarks:assets.read")
|
||||
self.view_access_guest_user_test("linkding:assets.read")
|
||||
|
@@ -43,7 +43,7 @@ class BookmarkAssetsApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
]
|
||||
|
||||
url = reverse(
|
||||
"bookmarks:bookmark_asset-list", kwargs={"bookmark_id": bookmark1.id}
|
||||
"linkding:bookmark_asset-list", kwargs={"bookmark_id": bookmark1.id}
|
||||
)
|
||||
response = self.get(url, expected_status_code=status.HTTP_200_OK)
|
||||
self.assertEqual(len(response.data["results"]), 3)
|
||||
@@ -52,7 +52,7 @@ class BookmarkAssetsApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
self.assertAsset(bookmark1_assets[2], response.data["results"][2])
|
||||
|
||||
url = reverse(
|
||||
"bookmarks:bookmark_asset-list", kwargs={"bookmark_id": bookmark2.id}
|
||||
"linkding:bookmark_asset-list", kwargs={"bookmark_id": bookmark2.id}
|
||||
)
|
||||
response = self.get(url, expected_status_code=status.HTTP_200_OK)
|
||||
self.assertEqual(len(response.data["results"]), 3)
|
||||
@@ -68,14 +68,14 @@ class BookmarkAssetsApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
self.setup_asset(bookmark=bookmark)
|
||||
|
||||
url = reverse(
|
||||
"bookmarks:bookmark_asset-list", kwargs={"bookmark_id": bookmark.id}
|
||||
"linkding:bookmark_asset-list", kwargs={"bookmark_id": bookmark.id}
|
||||
)
|
||||
self.get(url, expected_status_code=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
def test_asset_list_requires_authentication(self):
|
||||
bookmark = self.setup_bookmark()
|
||||
url = reverse(
|
||||
"bookmarks:bookmark_asset-list", kwargs={"bookmark_id": bookmark.id}
|
||||
"linkding:bookmark_asset-list", kwargs={"bookmark_id": bookmark.id}
|
||||
)
|
||||
self.get(url, expected_status_code=status.HTTP_401_UNAUTHORIZED)
|
||||
|
||||
@@ -94,7 +94,7 @@ class BookmarkAssetsApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
gzip=False,
|
||||
)
|
||||
url = reverse(
|
||||
"bookmarks:bookmark_asset-detail",
|
||||
"linkding:bookmark_asset-detail",
|
||||
kwargs={"bookmark_id": asset.bookmark.id, "pk": asset.id},
|
||||
)
|
||||
response = self.get(url, expected_status_code=status.HTTP_200_OK)
|
||||
@@ -108,7 +108,7 @@ class BookmarkAssetsApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
asset = self.setup_asset(bookmark=bookmark)
|
||||
|
||||
url = reverse(
|
||||
"bookmarks:bookmark_asset-detail",
|
||||
"linkding:bookmark_asset-detail",
|
||||
kwargs={"bookmark_id": asset.bookmark.id, "pk": asset.id},
|
||||
)
|
||||
self.get(url, expected_status_code=status.HTTP_404_NOT_FOUND)
|
||||
@@ -117,7 +117,7 @@ class BookmarkAssetsApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
bookmark = self.setup_bookmark()
|
||||
asset = self.setup_asset(bookmark=bookmark)
|
||||
url = reverse(
|
||||
"bookmarks:bookmark_asset-detail",
|
||||
"linkding:bookmark_asset-detail",
|
||||
kwargs={"bookmark_id": asset.bookmark.id, "pk": asset.id},
|
||||
)
|
||||
self.get(url, expected_status_code=status.HTTP_401_UNAUTHORIZED)
|
||||
@@ -145,7 +145,7 @@ class BookmarkAssetsApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
self.setup_asset_file(asset=asset, file_content=file_content)
|
||||
|
||||
url = reverse(
|
||||
"bookmarks:bookmark_asset-download",
|
||||
"linkding:bookmark_asset-download",
|
||||
kwargs={"bookmark_id": asset.bookmark.id, "pk": asset.id},
|
||||
)
|
||||
response = self.get(url, expected_status_code=status.HTTP_200_OK)
|
||||
@@ -173,7 +173,7 @@ class BookmarkAssetsApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
self.setup_asset_file(asset=asset, file_content=file_content)
|
||||
|
||||
url = reverse(
|
||||
"bookmarks:bookmark_asset-download",
|
||||
"linkding:bookmark_asset-download",
|
||||
kwargs={"bookmark_id": asset.bookmark.id, "pk": asset.id},
|
||||
)
|
||||
response = self.get(url, expected_status_code=status.HTTP_200_OK)
|
||||
@@ -199,7 +199,7 @@ class BookmarkAssetsApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
)
|
||||
|
||||
url = reverse(
|
||||
"bookmarks:bookmark_asset-download",
|
||||
"linkding:bookmark_asset-download",
|
||||
kwargs={"bookmark_id": asset.bookmark.id, "pk": asset.id},
|
||||
)
|
||||
self.get(url, expected_status_code=status.HTTP_404_NOT_FOUND)
|
||||
@@ -212,7 +212,7 @@ class BookmarkAssetsApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
asset = self.setup_asset(bookmark=bookmark)
|
||||
|
||||
url = reverse(
|
||||
"bookmarks:bookmark_asset-download",
|
||||
"linkding:bookmark_asset-download",
|
||||
kwargs={"bookmark_id": asset.bookmark.id, "pk": asset.id},
|
||||
)
|
||||
self.get(url, expected_status_code=status.HTTP_404_NOT_FOUND)
|
||||
@@ -221,7 +221,7 @@ class BookmarkAssetsApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
bookmark = self.setup_bookmark()
|
||||
asset = self.setup_asset(bookmark=bookmark)
|
||||
url = reverse(
|
||||
"bookmarks:bookmark_asset-download",
|
||||
"linkding:bookmark_asset-download",
|
||||
kwargs={"bookmark_id": asset.bookmark.id, "pk": asset.id},
|
||||
)
|
||||
self.get(url, expected_status_code=status.HTTP_401_UNAUTHORIZED)
|
||||
@@ -239,7 +239,7 @@ class BookmarkAssetsApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
|
||||
bookmark = self.setup_bookmark()
|
||||
url = reverse(
|
||||
"bookmarks:bookmark_asset-upload", kwargs={"bookmark_id": bookmark.id}
|
||||
"linkding:bookmark_asset-upload", kwargs={"bookmark_id": bookmark.id}
|
||||
)
|
||||
file_content = b"test file content"
|
||||
file_name = "test.txt"
|
||||
@@ -264,7 +264,7 @@ class BookmarkAssetsApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
|
||||
bookmark = self.setup_bookmark()
|
||||
url = reverse(
|
||||
"bookmarks:bookmark_asset-upload", kwargs={"bookmark_id": bookmark.id}
|
||||
"linkding:bookmark_asset-upload", kwargs={"bookmark_id": bookmark.id}
|
||||
)
|
||||
|
||||
response = self.client.post(url, {}, format="multipart")
|
||||
@@ -276,7 +276,7 @@ class BookmarkAssetsApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
other_user = self.setup_user()
|
||||
bookmark = self.setup_bookmark(user=other_user)
|
||||
url = reverse(
|
||||
"bookmarks:bookmark_asset-upload", kwargs={"bookmark_id": bookmark.id}
|
||||
"linkding:bookmark_asset-upload", kwargs={"bookmark_id": bookmark.id}
|
||||
)
|
||||
|
||||
response = self.client.post(url, {}, format="multipart")
|
||||
@@ -285,7 +285,7 @@ class BookmarkAssetsApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
def test_upload_asset_requires_authentication(self):
|
||||
bookmark = self.setup_bookmark()
|
||||
url = reverse(
|
||||
"bookmarks:bookmark_asset-upload", kwargs={"bookmark_id": bookmark.id}
|
||||
"linkding:bookmark_asset-upload", kwargs={"bookmark_id": bookmark.id}
|
||||
)
|
||||
|
||||
response = self.client.post(url, {}, format="multipart")
|
||||
@@ -296,7 +296,7 @@ class BookmarkAssetsApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
self.authenticate()
|
||||
bookmark = self.setup_bookmark()
|
||||
url = reverse(
|
||||
"bookmarks:bookmark_asset-upload", kwargs={"bookmark_id": bookmark.id}
|
||||
"linkding:bookmark_asset-upload", kwargs={"bookmark_id": bookmark.id}
|
||||
)
|
||||
response = self.client.post(url, {}, format="multipart")
|
||||
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
|
||||
@@ -309,7 +309,7 @@ class BookmarkAssetsApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
self.setup_asset_file(asset=asset)
|
||||
|
||||
url = reverse(
|
||||
"bookmarks:bookmark_asset-detail",
|
||||
"linkding:bookmark_asset-detail",
|
||||
kwargs={"bookmark_id": asset.bookmark.id, "pk": asset.id},
|
||||
)
|
||||
self.delete(url, expected_status_code=status.HTTP_204_NO_CONTENT)
|
||||
@@ -325,7 +325,7 @@ class BookmarkAssetsApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
asset = self.setup_asset(bookmark=bookmark)
|
||||
|
||||
url = reverse(
|
||||
"bookmarks:bookmark_asset-detail",
|
||||
"linkding:bookmark_asset-detail",
|
||||
kwargs={"bookmark_id": asset.bookmark.id, "pk": asset.id},
|
||||
)
|
||||
self.delete(url, expected_status_code=status.HTTP_404_NOT_FOUND)
|
||||
@@ -334,7 +334,7 @@ class BookmarkAssetsApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
bookmark = self.setup_bookmark()
|
||||
asset = self.setup_asset(bookmark=bookmark)
|
||||
url = reverse(
|
||||
"bookmarks:bookmark_asset-detail",
|
||||
"linkding:bookmark_asset-detail",
|
||||
kwargs={"bookmark_id": asset.bookmark.id, "pk": asset.id},
|
||||
)
|
||||
self.delete(url, expected_status_code=status.HTTP_401_UNAUTHORIZED)
|
||||
|
@@ -15,18 +15,20 @@ class BookmarkDetailsModalTestCase(TestCase, BookmarkFactoryMixin, HtmlTestMixin
|
||||
self.client.force_login(user)
|
||||
|
||||
def get_details_form(self, soup, bookmark):
|
||||
form_url = reverse("bookmarks:index.action") + f"?details={bookmark.id}"
|
||||
form_url = (
|
||||
reverse("linkding:bookmarks.index.action") + f"?details={bookmark.id}"
|
||||
)
|
||||
return soup.find("form", {"action": form_url, "enctype": "multipart/form-data"})
|
||||
|
||||
def get_index_details_modal(self, bookmark):
|
||||
url = reverse("bookmarks:index") + f"?details={bookmark.id}"
|
||||
url = reverse("linkding:bookmarks.index") + f"?details={bookmark.id}"
|
||||
response = self.client.get(url)
|
||||
soup = self.make_soup(response.content)
|
||||
modal = soup.find("turbo-frame", {"id": "details-modal"})
|
||||
return modal
|
||||
|
||||
def get_shared_details_modal(self, bookmark):
|
||||
url = reverse("bookmarks:shared") + f"?details={bookmark.id}"
|
||||
url = reverse("linkding:bookmarks.shared") + f"?details={bookmark.id}"
|
||||
response = self.client.get(url)
|
||||
soup = self.make_soup(response.content)
|
||||
modal = soup.find("turbo-frame", {"id": "details-modal"})
|
||||
@@ -55,7 +57,7 @@ class BookmarkDetailsModalTestCase(TestCase, BookmarkFactoryMixin, HtmlTestMixin
|
||||
# own bookmark
|
||||
bookmark = self.setup_bookmark()
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:index") + f"?details={bookmark.id}"
|
||||
reverse("linkding:bookmarks.index") + f"?details={bookmark.id}"
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
@@ -63,18 +65,20 @@ class BookmarkDetailsModalTestCase(TestCase, BookmarkFactoryMixin, HtmlTestMixin
|
||||
other_user = self.setup_user()
|
||||
bookmark = self.setup_bookmark(user=other_user)
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:index") + f"?details={bookmark.id}"
|
||||
reverse("linkding:bookmarks.index") + f"?details={bookmark.id}"
|
||||
)
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
# non-existent bookmark - just returns without modal in response
|
||||
response = self.client.get(reverse("bookmarks:index") + "?details=9999")
|
||||
response = self.client.get(
|
||||
reverse("linkding:bookmarks.index") + "?details=9999"
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
# guest user
|
||||
self.client.logout()
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:shared") + f"?details={bookmark.id}"
|
||||
reverse("linkding:bookmarks.shared") + f"?details={bookmark.id}"
|
||||
)
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
@@ -82,7 +86,7 @@ class BookmarkDetailsModalTestCase(TestCase, BookmarkFactoryMixin, HtmlTestMixin
|
||||
# own bookmark
|
||||
bookmark = self.setup_bookmark()
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:index") + f"?details={bookmark.id}"
|
||||
reverse("linkding:bookmarks.index") + f"?details={bookmark.id}"
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
@@ -90,18 +94,20 @@ class BookmarkDetailsModalTestCase(TestCase, BookmarkFactoryMixin, HtmlTestMixin
|
||||
other_user = self.setup_user()
|
||||
bookmark = self.setup_bookmark(user=other_user)
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:index") + f"?details={bookmark.id}"
|
||||
reverse("linkding:bookmarks.index") + f"?details={bookmark.id}"
|
||||
)
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
# non-existent bookmark - just returns without modal in response
|
||||
response = self.client.get(reverse("bookmarks:index") + "?details=9999")
|
||||
response = self.client.get(
|
||||
reverse("linkding:bookmarks.index") + "?details=9999"
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
# guest user
|
||||
self.client.logout()
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:shared") + f"?details={bookmark.id}"
|
||||
reverse("linkding:bookmarks.shared") + f"?details={bookmark.id}"
|
||||
)
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
@@ -111,7 +117,7 @@ class BookmarkDetailsModalTestCase(TestCase, BookmarkFactoryMixin, HtmlTestMixin
|
||||
bookmark = self.setup_bookmark(shared=True, user=other_user)
|
||||
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:shared") + f"?details={bookmark.id}"
|
||||
reverse("linkding:bookmarks.shared") + f"?details={bookmark.id}"
|
||||
)
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
@@ -121,14 +127,14 @@ class BookmarkDetailsModalTestCase(TestCase, BookmarkFactoryMixin, HtmlTestMixin
|
||||
profile.save()
|
||||
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:shared") + f"?details={bookmark.id}"
|
||||
reverse("linkding:bookmarks.shared") + f"?details={bookmark.id}"
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
# shared bookmark, guest user, no public sharing
|
||||
self.client.logout()
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:shared") + f"?details={bookmark.id}"
|
||||
reverse("linkding:bookmarks.shared") + f"?details={bookmark.id}"
|
||||
)
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
@@ -137,7 +143,7 @@ class BookmarkDetailsModalTestCase(TestCase, BookmarkFactoryMixin, HtmlTestMixin
|
||||
profile.save()
|
||||
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:shared") + f"?details={bookmark.id}"
|
||||
reverse("linkding:bookmarks.shared") + f"?details={bookmark.id}"
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
@@ -231,7 +237,7 @@ class BookmarkDetailsModalTestCase(TestCase, BookmarkFactoryMixin, HtmlTestMixin
|
||||
soup = self.get_index_details_modal(bookmark)
|
||||
self.assertEqual(self.count_weblinks(soup), 3)
|
||||
|
||||
reader_mode_url = reverse("bookmarks:assets.read", args=[asset.id])
|
||||
reader_mode_url = reverse("linkding:assets.read", args=[asset.id])
|
||||
link = self.find_weblink(soup, reader_mode_url)
|
||||
self.assertIsNotNone(link)
|
||||
|
||||
@@ -465,7 +471,7 @@ class BookmarkDetailsModalTestCase(TestCase, BookmarkFactoryMixin, HtmlTestMixin
|
||||
for tag in bookmark.tags.all():
|
||||
tag_link = section.find("a", string=f"#{tag.name}")
|
||||
self.assertIsNotNone(tag_link)
|
||||
expected_url = reverse("bookmarks:index") + f"?q=%23{tag.name}"
|
||||
expected_url = reverse("linkding:bookmarks.index") + f"?q=%23{tag.name}"
|
||||
self.assertEqual(tag_link["href"], expected_url)
|
||||
|
||||
def test_description(self):
|
||||
@@ -519,7 +525,7 @@ class BookmarkDetailsModalTestCase(TestCase, BookmarkFactoryMixin, HtmlTestMixin
|
||||
|
||||
form = delete_button.find_parent("form")
|
||||
self.assertIsNotNone(form)
|
||||
expected_url = reverse("bookmarks:index.action")
|
||||
expected_url = reverse("linkding:bookmarks.index.action")
|
||||
self.assertEqual(expected_url, form["action"])
|
||||
|
||||
def test_actions_visibility(self):
|
||||
@@ -605,7 +611,7 @@ class BookmarkDetailsModalTestCase(TestCase, BookmarkFactoryMixin, HtmlTestMixin
|
||||
self.assertIsNotNone(asset_text)
|
||||
self.assertIn(asset.display_name, asset_text.text)
|
||||
|
||||
view_url = reverse("bookmarks:assets.view", args=[asset.id])
|
||||
view_url = reverse("linkding:assets.view", args=[asset.id])
|
||||
view_link = asset_item.find("a", {"href": view_url})
|
||||
self.assertIsNotNone(view_link)
|
||||
|
||||
@@ -688,7 +694,7 @@ class BookmarkDetailsModalTestCase(TestCase, BookmarkFactoryMixin, HtmlTestMixin
|
||||
|
||||
soup = self.get_index_details_modal(bookmark)
|
||||
asset_item = self.find_asset(soup, asset)
|
||||
view_url = reverse("bookmarks:assets.view", args=[asset.id])
|
||||
view_url = reverse("linkding:assets.view", args=[asset.id])
|
||||
view_link = asset_item.find("a", {"href": view_url})
|
||||
self.assertIsNone(view_link)
|
||||
|
||||
|
@@ -28,14 +28,18 @@ class BookmarkEditViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
|
||||
def test_should_render_successfully(self):
|
||||
bookmark = self.setup_bookmark()
|
||||
response = self.client.get(reverse("bookmarks:edit", args=[bookmark.id]))
|
||||
response = self.client.get(
|
||||
reverse("linkding: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})
|
||||
|
||||
self.client.post(reverse("bookmarks:edit", args=[bookmark.id]), form_data)
|
||||
self.client.post(
|
||||
reverse("linkding:bookmarks.edit", args=[bookmark.id]), form_data
|
||||
)
|
||||
|
||||
bookmark.refresh_from_db()
|
||||
|
||||
@@ -55,7 +59,7 @@ class BookmarkEditViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
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
|
||||
reverse("linkding:bookmarks.edit", args=[bookmark.id]), form_data
|
||||
)
|
||||
self.assertEqual(response.status_code, 422)
|
||||
|
||||
@@ -63,12 +67,16 @@ class BookmarkEditViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
bookmark = self.setup_bookmark()
|
||||
|
||||
form_data = self.create_form_data({"id": bookmark.id, "unread": True})
|
||||
self.client.post(reverse("bookmarks:edit", args=[bookmark.id]), form_data)
|
||||
self.client.post(
|
||||
reverse("linkding:bookmarks.edit", args=[bookmark.id]), form_data
|
||||
)
|
||||
bookmark.refresh_from_db()
|
||||
self.assertTrue(bookmark.unread)
|
||||
|
||||
form_data = self.create_form_data({"id": bookmark.id, "unread": False})
|
||||
self.client.post(reverse("bookmarks:edit", args=[bookmark.id]), form_data)
|
||||
self.client.post(
|
||||
reverse("linkding:bookmarks.edit", args=[bookmark.id]), form_data
|
||||
)
|
||||
bookmark.refresh_from_db()
|
||||
self.assertFalse(bookmark.unread)
|
||||
|
||||
@@ -76,12 +84,16 @@ class BookmarkEditViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
bookmark = self.setup_bookmark()
|
||||
|
||||
form_data = self.create_form_data({"id": bookmark.id, "shared": True})
|
||||
self.client.post(reverse("bookmarks:edit", args=[bookmark.id]), form_data)
|
||||
self.client.post(
|
||||
reverse("linkding:bookmarks.edit", args=[bookmark.id]), form_data
|
||||
)
|
||||
bookmark.refresh_from_db()
|
||||
self.assertTrue(bookmark.shared)
|
||||
|
||||
form_data = self.create_form_data({"id": bookmark.id, "shared": False})
|
||||
self.client.post(reverse("bookmarks:edit", args=[bookmark.id]), form_data)
|
||||
self.client.post(
|
||||
reverse("linkding:bookmarks.edit", args=[bookmark.id]), form_data
|
||||
)
|
||||
bookmark.refresh_from_db()
|
||||
self.assertFalse(bookmark.shared)
|
||||
|
||||
@@ -95,7 +107,9 @@ class BookmarkEditViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
notes="edited notes",
|
||||
)
|
||||
|
||||
response = self.client.get(reverse("bookmarks:edit", args=[bookmark.id]))
|
||||
response = self.client.get(
|
||||
reverse("linkding:bookmarks.edit", args=[bookmark.id])
|
||||
)
|
||||
html = response.content.decode()
|
||||
|
||||
self.assertInHTML(
|
||||
@@ -151,21 +165,21 @@ class BookmarkEditViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
# if the URL isn't modified it's not a duplicate
|
||||
form_data = self.create_form_data({"url": edited_bookmark.url})
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:edit", args=[edited_bookmark.id]), form_data
|
||||
reverse("linkding:bookmarks.edit", args=[edited_bookmark.id]), form_data
|
||||
)
|
||||
self.assertEqual(response.status_code, 302)
|
||||
|
||||
# if the URL is already bookmarked by another user, it's not a duplicate
|
||||
form_data = self.create_form_data({"url": other_user_bookmark.url})
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:edit", args=[edited_bookmark.id]), form_data
|
||||
reverse("linkding:bookmarks.edit", args=[edited_bookmark.id]), form_data
|
||||
)
|
||||
self.assertEqual(response.status_code, 302)
|
||||
|
||||
# if the URL is already bookmarked by the same user, it's a duplicate
|
||||
form_data = self.create_form_data({"url": existing_bookmark.url})
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:edit", args=[edited_bookmark.id]), form_data
|
||||
reverse("linkding:bookmarks.edit", args=[edited_bookmark.id]), form_data
|
||||
)
|
||||
self.assertEqual(response.status_code, 422)
|
||||
self.assertInHTML(
|
||||
@@ -180,23 +194,23 @@ class BookmarkEditViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
form_data = self.create_form_data()
|
||||
|
||||
url = (
|
||||
reverse("bookmarks:edit", args=[bookmark.id])
|
||||
reverse("linkding:bookmarks.edit", args=[bookmark.id])
|
||||
+ "?return_url="
|
||||
+ reverse("bookmarks:close")
|
||||
+ reverse("linkding:bookmarks.close")
|
||||
)
|
||||
response = self.client.post(url, form_data)
|
||||
|
||||
self.assertRedirects(response, reverse("bookmarks:close"))
|
||||
self.assertRedirects(response, reverse("linkding:bookmarks.close"))
|
||||
|
||||
def test_should_redirect_to_bookmark_index_by_default(self):
|
||||
bookmark = self.setup_bookmark()
|
||||
form_data = self.create_form_data()
|
||||
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:edit", args=[bookmark.id]), form_data
|
||||
reverse("linkding:bookmarks.edit", args=[bookmark.id]), form_data
|
||||
)
|
||||
|
||||
self.assertRedirects(response, reverse("bookmarks:index"))
|
||||
self.assertRedirects(response, reverse("linkding:bookmarks.index"))
|
||||
|
||||
def test_should_not_redirect_to_external_url(self):
|
||||
bookmark = self.setup_bookmark()
|
||||
@@ -204,17 +218,17 @@ class BookmarkEditViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
def post_with(return_url, follow=None):
|
||||
form_data = self.create_form_data()
|
||||
url = (
|
||||
reverse("bookmarks:edit", args=[bookmark.id])
|
||||
reverse("linkding:bookmarks.edit", args=[bookmark.id])
|
||||
+ f"?return_url={return_url}"
|
||||
)
|
||||
return self.client.post(url, form_data, follow=follow)
|
||||
|
||||
response = post_with("https://example.com")
|
||||
self.assertRedirects(response, reverse("bookmarks:index"))
|
||||
self.assertRedirects(response, reverse("linkding:bookmarks.index"))
|
||||
response = post_with("//example.com")
|
||||
self.assertRedirects(response, reverse("bookmarks:index"))
|
||||
self.assertRedirects(response, reverse("linkding:bookmarks.index"))
|
||||
response = post_with("://example.com")
|
||||
self.assertRedirects(response, reverse("bookmarks:index"))
|
||||
self.assertRedirects(response, reverse("linkding:bookmarks.index"))
|
||||
|
||||
response = post_with("/foo//example.com", follow=True)
|
||||
self.assertEqual(response.status_code, 404)
|
||||
@@ -227,7 +241,7 @@ class BookmarkEditViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
form_data = self.create_form_data({"id": bookmark.id})
|
||||
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:edit", args=[bookmark.id]), form_data
|
||||
reverse("linkding:bookmarks.edit", args=[bookmark.id]), form_data
|
||||
)
|
||||
bookmark.refresh_from_db()
|
||||
self.assertNotEqual(bookmark.url, form_data["url"])
|
||||
@@ -238,7 +252,9 @@ class BookmarkEditViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
|
||||
self.user.profile.enable_sharing = False
|
||||
self.user.profile.save()
|
||||
response = self.client.get(reverse("bookmarks:edit", args=[bookmark.id]))
|
||||
response = self.client.get(
|
||||
reverse("linkding:bookmarks.edit", args=[bookmark.id])
|
||||
)
|
||||
html = response.content.decode()
|
||||
|
||||
self.assertInHTML(
|
||||
@@ -255,7 +271,9 @@ class BookmarkEditViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
|
||||
self.user.profile.enable_sharing = True
|
||||
self.user.profile.save()
|
||||
response = self.client.get(reverse("bookmarks:edit", args=[bookmark.id]))
|
||||
response = self.client.get(
|
||||
reverse("linkding:bookmarks.edit", args=[bookmark.id])
|
||||
)
|
||||
html = response.content.decode()
|
||||
|
||||
self.assertInHTML(
|
||||
@@ -272,12 +290,16 @@ class BookmarkEditViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
|
||||
def test_should_hide_notes_if_there_are_no_notes(self):
|
||||
bookmark = self.setup_bookmark()
|
||||
response = self.client.get(reverse("bookmarks:edit", args=[bookmark.id]))
|
||||
response = self.client.get(
|
||||
reverse("linkding:bookmarks.edit", args=[bookmark.id])
|
||||
)
|
||||
|
||||
self.assertContains(response, '<details class="notes">', count=1)
|
||||
|
||||
def test_should_show_notes_if_there_are_notes(self):
|
||||
bookmark = self.setup_bookmark(notes="test notes")
|
||||
response = self.client.get(reverse("bookmarks:edit", args=[bookmark.id]))
|
||||
response = self.client.get(
|
||||
reverse("linkding:bookmarks.edit", args=[bookmark.id])
|
||||
)
|
||||
|
||||
self.assertContains(response, '<details class="notes" open>', count=1)
|
||||
|
@@ -44,7 +44,7 @@ class BookmarkIndexViewTestCase(
|
||||
self.setup_bookmark(user=other_user),
|
||||
]
|
||||
|
||||
response = self.client.get(reverse("bookmarks:index"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.index"))
|
||||
|
||||
self.assertVisibleBookmarks(response, visible_bookmarks)
|
||||
self.assertInvisibleBookmarks(response, invisible_bookmarks)
|
||||
@@ -53,7 +53,7 @@ class BookmarkIndexViewTestCase(
|
||||
visible_bookmarks = self.setup_numbered_bookmarks(3, prefix="foo")
|
||||
invisible_bookmarks = self.setup_numbered_bookmarks(3, prefix="bar")
|
||||
|
||||
response = self.client.get(reverse("bookmarks:index") + "?q=foo")
|
||||
response = self.client.get(reverse("linkding:bookmarks.index") + "?q=foo")
|
||||
|
||||
self.assertVisibleBookmarks(response, visible_bookmarks)
|
||||
self.assertInvisibleBookmarks(response, invisible_bookmarks)
|
||||
@@ -75,7 +75,7 @@ class BookmarkIndexViewTestCase(
|
||||
archived_bookmarks + other_user_bookmarks
|
||||
)
|
||||
|
||||
response = self.client.get(reverse("bookmarks:index"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.index"))
|
||||
|
||||
self.assertVisibleTags(response, visible_tags)
|
||||
self.assertInvisibleTags(response, invisible_tags)
|
||||
@@ -91,7 +91,7 @@ class BookmarkIndexViewTestCase(
|
||||
visible_tags = self.get_tags_from_bookmarks(visible_bookmarks)
|
||||
invisible_tags = self.get_tags_from_bookmarks(invisible_bookmarks)
|
||||
|
||||
response = self.client.get(reverse("bookmarks:index") + "?q=foo")
|
||||
response = self.client.get(reverse("linkding:bookmarks.index") + "?q=foo")
|
||||
|
||||
self.assertVisibleTags(response, visible_tags)
|
||||
self.assertInvisibleTags(response, invisible_tags)
|
||||
@@ -113,7 +113,7 @@ class BookmarkIndexViewTestCase(
|
||||
unread_tags = self.get_tags_from_bookmarks(unread_bookmarks)
|
||||
read_tags = self.get_tags_from_bookmarks(read_bookmarks)
|
||||
|
||||
response = self.client.get(reverse("bookmarks:index"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.index"))
|
||||
self.assertVisibleBookmarks(response, unread_bookmarks)
|
||||
self.assertInvisibleBookmarks(response, read_bookmarks)
|
||||
self.assertVisibleTags(response, unread_tags)
|
||||
@@ -130,7 +130,7 @@ class BookmarkIndexViewTestCase(
|
||||
self.setup_bookmark(tags=tags)
|
||||
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:index")
|
||||
reverse("linkding:bookmarks.index")
|
||||
+ f"?q=%23{tags[0].name}+%23{tags[1].name.upper()}"
|
||||
)
|
||||
|
||||
@@ -149,7 +149,8 @@ class BookmarkIndexViewTestCase(
|
||||
self.setup_bookmark(title=tags[0].name, tags=tags)
|
||||
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:index") + f"?q={tags[0].name}+%23{tags[1].name.upper()}"
|
||||
reverse("linkding:bookmarks.index")
|
||||
+ f"?q={tags[0].name}+%23{tags[1].name.upper()}"
|
||||
)
|
||||
|
||||
self.assertSelectedTags(response, [tags[1]])
|
||||
@@ -168,7 +169,8 @@ class BookmarkIndexViewTestCase(
|
||||
self.setup_bookmark(tags=tags)
|
||||
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:index") + f"?q={tags[0].name}+%23{tags[1].name.upper()}"
|
||||
reverse("linkding:bookmarks.index")
|
||||
+ f"?q={tags[0].name}+%23{tags[1].name.upper()}"
|
||||
)
|
||||
|
||||
self.assertSelectedTags(response, [tags[0], tags[1]])
|
||||
@@ -176,7 +178,7 @@ class BookmarkIndexViewTestCase(
|
||||
def test_should_open_bookmarks_in_new_page_by_default(self):
|
||||
visible_bookmarks = self.setup_numbered_bookmarks(3)
|
||||
|
||||
response = self.client.get(reverse("bookmarks:index"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.index"))
|
||||
|
||||
self.assertVisibleBookmarks(response, visible_bookmarks, "_blank")
|
||||
|
||||
@@ -187,14 +189,14 @@ class BookmarkIndexViewTestCase(
|
||||
|
||||
visible_bookmarks = self.setup_numbered_bookmarks(3)
|
||||
|
||||
response = self.client.get(reverse("bookmarks:index"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.index"))
|
||||
|
||||
self.assertVisibleBookmarks(response, visible_bookmarks, "_self")
|
||||
|
||||
def test_edit_link_return_url_respects_search_options(self):
|
||||
bookmark = self.setup_bookmark(title="foo")
|
||||
edit_url = reverse("bookmarks:edit", args=[bookmark.id])
|
||||
base_url = reverse("bookmarks:index")
|
||||
edit_url = reverse("linkding:bookmarks.edit", args=[bookmark.id])
|
||||
base_url = reverse("linkding:bookmarks.index")
|
||||
|
||||
# without query params
|
||||
return_url = urllib.parse.quote(base_url)
|
||||
@@ -220,8 +222,8 @@ class BookmarkIndexViewTestCase(
|
||||
self.assertEditLink(response, url)
|
||||
|
||||
def test_bulk_edit_respects_search_options(self):
|
||||
action_url = reverse("bookmarks:index.action")
|
||||
base_url = reverse("bookmarks:index")
|
||||
action_url = reverse("linkding:bookmarks.index.action")
|
||||
base_url = reverse("linkding:bookmarks.index")
|
||||
|
||||
# without params
|
||||
url = f"{action_url}"
|
||||
@@ -244,7 +246,7 @@ class BookmarkIndexViewTestCase(
|
||||
self.assertBulkActionForm(response, url)
|
||||
|
||||
def test_allowed_bulk_actions(self):
|
||||
url = reverse("bookmarks:index")
|
||||
url = reverse("linkding:bookmarks.index")
|
||||
response = self.client.get(url)
|
||||
html = response.content.decode()
|
||||
|
||||
@@ -267,7 +269,7 @@ class BookmarkIndexViewTestCase(
|
||||
user_profile.enable_sharing = True
|
||||
user_profile.save()
|
||||
|
||||
url = reverse("bookmarks:index")
|
||||
url = reverse("linkding:bookmarks.index")
|
||||
response = self.client.get(url)
|
||||
html = response.content.decode()
|
||||
|
||||
@@ -289,13 +291,13 @@ class BookmarkIndexViewTestCase(
|
||||
|
||||
def test_apply_search_preferences(self):
|
||||
# no params
|
||||
response = self.client.post(reverse("bookmarks:index"))
|
||||
response = self.client.post(reverse("linkding:bookmarks.index"))
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertEqual(response.url, reverse("bookmarks:index"))
|
||||
self.assertEqual(response.url, reverse("linkding:bookmarks.index"))
|
||||
|
||||
# some params
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:index"),
|
||||
reverse("linkding:bookmarks.index"),
|
||||
{
|
||||
"q": "foo",
|
||||
"sort": BookmarkSearch.SORT_TITLE_ASC,
|
||||
@@ -303,12 +305,12 @@ class BookmarkIndexViewTestCase(
|
||||
)
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertEqual(
|
||||
response.url, reverse("bookmarks:index") + "?q=foo&sort=title_asc"
|
||||
response.url, reverse("linkding:bookmarks.index") + "?q=foo&sort=title_asc"
|
||||
)
|
||||
|
||||
# params with default value are removed
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:index"),
|
||||
reverse("linkding:bookmarks.index"),
|
||||
{
|
||||
"q": "foo",
|
||||
"user": "",
|
||||
@@ -318,11 +320,13 @@ class BookmarkIndexViewTestCase(
|
||||
},
|
||||
)
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertEqual(response.url, reverse("bookmarks:index") + "?q=foo&unread=yes")
|
||||
self.assertEqual(
|
||||
response.url, reverse("linkding:bookmarks.index") + "?q=foo&unread=yes"
|
||||
)
|
||||
|
||||
# page is removed
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:index"),
|
||||
reverse("linkding:bookmarks.index"),
|
||||
{
|
||||
"q": "foo",
|
||||
"page": "2",
|
||||
@@ -331,7 +335,7 @@ class BookmarkIndexViewTestCase(
|
||||
)
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertEqual(
|
||||
response.url, reverse("bookmarks:index") + "?q=foo&sort=title_asc"
|
||||
response.url, reverse("linkding:bookmarks.index") + "?q=foo&sort=title_asc"
|
||||
)
|
||||
|
||||
def test_save_search_preferences(self):
|
||||
@@ -339,7 +343,7 @@ class BookmarkIndexViewTestCase(
|
||||
|
||||
# no params
|
||||
self.client.post(
|
||||
reverse("bookmarks:index"),
|
||||
reverse("linkding:bookmarks.index"),
|
||||
{
|
||||
"save": "",
|
||||
},
|
||||
@@ -356,7 +360,7 @@ class BookmarkIndexViewTestCase(
|
||||
|
||||
# with param
|
||||
self.client.post(
|
||||
reverse("bookmarks:index"),
|
||||
reverse("linkding:bookmarks.index"),
|
||||
{
|
||||
"save": "",
|
||||
"sort": BookmarkSearch.SORT_TITLE_ASC,
|
||||
@@ -374,7 +378,7 @@ class BookmarkIndexViewTestCase(
|
||||
|
||||
# add a param
|
||||
self.client.post(
|
||||
reverse("bookmarks:index"),
|
||||
reverse("linkding:bookmarks.index"),
|
||||
{
|
||||
"save": "",
|
||||
"sort": BookmarkSearch.SORT_TITLE_ASC,
|
||||
@@ -393,7 +397,7 @@ class BookmarkIndexViewTestCase(
|
||||
|
||||
# remove a param
|
||||
self.client.post(
|
||||
reverse("bookmarks:index"),
|
||||
reverse("linkding:bookmarks.index"),
|
||||
{
|
||||
"save": "",
|
||||
"unread": BookmarkSearch.FILTER_UNREAD_YES,
|
||||
@@ -411,7 +415,7 @@ class BookmarkIndexViewTestCase(
|
||||
|
||||
# ignores non-preferences
|
||||
self.client.post(
|
||||
reverse("bookmarks:index"),
|
||||
reverse("linkding:bookmarks.index"),
|
||||
{
|
||||
"save": "",
|
||||
"q": "foo",
|
||||
@@ -431,7 +435,7 @@ class BookmarkIndexViewTestCase(
|
||||
)
|
||||
|
||||
def test_url_encode_bookmark_actions_url(self):
|
||||
url = reverse("bookmarks:index") + "?q=%23foo"
|
||||
url = reverse("linkding:bookmarks.index") + "?q=%23foo"
|
||||
response = self.client.get(url)
|
||||
html = response.content.decode()
|
||||
soup = self.make_soup(html)
|
||||
@@ -445,34 +449,34 @@ class BookmarkIndexViewTestCase(
|
||||
def test_encode_search_params(self):
|
||||
bookmark = self.setup_bookmark(description="alert('xss')")
|
||||
|
||||
url = reverse("bookmarks:index") + "?q=alert(%27xss%27)"
|
||||
url = reverse("linkding:bookmarks.index") + "?q=alert(%27xss%27)"
|
||||
response = self.client.get(url)
|
||||
self.assertNotContains(response, "alert('xss')")
|
||||
self.assertContains(response, bookmark.url)
|
||||
|
||||
url = reverse("bookmarks:index") + "?sort=alert(%27xss%27)"
|
||||
url = reverse("linkding:bookmarks.index") + "?sort=alert(%27xss%27)"
|
||||
response = self.client.get(url)
|
||||
self.assertNotContains(response, "alert('xss')")
|
||||
|
||||
url = reverse("bookmarks:index") + "?unread=alert(%27xss%27)"
|
||||
url = reverse("linkding:bookmarks.index") + "?unread=alert(%27xss%27)"
|
||||
response = self.client.get(url)
|
||||
self.assertNotContains(response, "alert('xss')")
|
||||
|
||||
url = reverse("bookmarks:index") + "?shared=alert(%27xss%27)"
|
||||
url = reverse("linkding:bookmarks.index") + "?shared=alert(%27xss%27)"
|
||||
response = self.client.get(url)
|
||||
self.assertNotContains(response, "alert('xss')")
|
||||
|
||||
url = reverse("bookmarks:index") + "?user=alert(%27xss%27)"
|
||||
url = reverse("linkding:bookmarks.index") + "?user=alert(%27xss%27)"
|
||||
response = self.client.get(url)
|
||||
self.assertNotContains(response, "alert('xss')")
|
||||
|
||||
url = reverse("bookmarks:index") + "?page=alert(%27xss%27)"
|
||||
url = reverse("linkding:bookmarks.index") + "?page=alert(%27xss%27)"
|
||||
response = self.client.get(url)
|
||||
self.assertNotContains(response, "alert('xss')")
|
||||
|
||||
def test_turbo_frame_details_modal_renders_details_modal_update(self):
|
||||
bookmark = self.setup_bookmark()
|
||||
url = reverse("bookmarks:index") + f"?bookmark_id={bookmark.id}"
|
||||
url = reverse("linkding:bookmarks.index") + f"?bookmark_id={bookmark.id}"
|
||||
response = self.client.get(url, headers={"Turbo-Frame": "details-modal"})
|
||||
|
||||
self.assertEqual(200, response.status_code)
|
||||
@@ -483,7 +487,7 @@ class BookmarkIndexViewTestCase(
|
||||
self.assertIsNone(soup.select_one("#tag-cloud-container"))
|
||||
|
||||
def test_does_not_include_rss_feed(self):
|
||||
response = self.client.get(reverse("bookmarks:index"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.index"))
|
||||
soup = self.make_soup(response.content.decode())
|
||||
|
||||
feed = soup.select_one('head link[type="application/rss+xml"]')
|
||||
|
@@ -31,7 +31,7 @@ class BookmarkIndexViewPerformanceTestCase(
|
||||
# capture number of queries
|
||||
context = CaptureQueriesContext(self.get_connection())
|
||||
with context:
|
||||
response = self.client.get(reverse("bookmarks:index"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.index"))
|
||||
html = response.content.decode("utf-8")
|
||||
soup = self.make_soup(html)
|
||||
list_items = soup.select("li[ld-bookmark-item]")
|
||||
@@ -46,7 +46,7 @@ class BookmarkIndexViewPerformanceTestCase(
|
||||
|
||||
# assert num queries doesn't increase
|
||||
with self.assertNumQueries(number_of_queries):
|
||||
response = self.client.get(reverse("bookmarks:index"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.index"))
|
||||
html = response.content.decode("utf-8")
|
||||
soup = self.make_soup(html)
|
||||
list_items = soup.select("li[ld-bookmark-item]")
|
||||
|
@@ -29,7 +29,7 @@ class BookmarkNewViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
def test_should_create_new_bookmark(self):
|
||||
form_data = self.create_form_data()
|
||||
|
||||
self.client.post(reverse("bookmarks:new"), form_data)
|
||||
self.client.post(reverse("linkding:bookmarks.new"), form_data)
|
||||
|
||||
self.assertEqual(Bookmark.objects.count(), 1)
|
||||
|
||||
@@ -48,13 +48,13 @@ class BookmarkNewViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
|
||||
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)
|
||||
response = self.client.post(reverse("linkding: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})
|
||||
|
||||
self.client.post(reverse("bookmarks:new"), form_data)
|
||||
self.client.post(reverse("linkding:bookmarks.new"), form_data)
|
||||
|
||||
self.assertEqual(Bookmark.objects.count(), 1)
|
||||
|
||||
@@ -64,7 +64,7 @@ class BookmarkNewViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
def test_should_create_new_shared_bookmark(self):
|
||||
form_data = self.create_form_data({"shared": True})
|
||||
|
||||
self.client.post(reverse("bookmarks:new"), form_data)
|
||||
self.client.post(reverse("linkding:bookmarks.new"), form_data)
|
||||
|
||||
self.assertEqual(Bookmark.objects.count(), 1)
|
||||
|
||||
@@ -72,7 +72,9 @@ class BookmarkNewViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
self.assertTrue(bookmark.shared)
|
||||
|
||||
def test_should_prefill_url_from_url_parameter(self):
|
||||
response = self.client.get(reverse("bookmarks:new") + "?url=http://example.com")
|
||||
response = self.client.get(
|
||||
reverse("linkding:bookmarks.new") + "?url=http://example.com"
|
||||
)
|
||||
html = response.content.decode()
|
||||
|
||||
self.assertInHTML(
|
||||
@@ -83,7 +85,9 @@ class BookmarkNewViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
)
|
||||
|
||||
def test_should_prefill_title_from_url_parameter(self):
|
||||
response = self.client.get(reverse("bookmarks:new") + "?title=Example%20Title")
|
||||
response = self.client.get(
|
||||
reverse("linkding:bookmarks.new") + "?title=Example%20Title"
|
||||
)
|
||||
html = response.content.decode()
|
||||
|
||||
self.assertInHTML(
|
||||
@@ -95,7 +99,8 @@ class BookmarkNewViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
|
||||
def test_should_prefill_description_from_url_parameter(self):
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:new") + "?description=Example%20Site%20Description"
|
||||
reverse("linkding:bookmarks.new")
|
||||
+ "?description=Example%20Site%20Description"
|
||||
)
|
||||
html = response.content.decode()
|
||||
|
||||
@@ -107,7 +112,7 @@ class BookmarkNewViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
|
||||
def test_should_prefill_notes_from_url_parameter(self):
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:new")
|
||||
reverse("linkding:bookmarks.new")
|
||||
+ "?notes=%2A%2AFind%2A%2A%20more%20info%20%5Bhere%5D%28http%3A%2F%2Fexample.com%29"
|
||||
)
|
||||
html = response.content.decode()
|
||||
@@ -129,7 +134,7 @@ class BookmarkNewViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
)
|
||||
|
||||
def test_should_enable_auto_close_when_specified_in_url_parameter(self):
|
||||
response = self.client.get(reverse("bookmarks:new") + "?auto_close")
|
||||
response = self.client.get(reverse("linkding:bookmarks.new") + "?auto_close")
|
||||
html = response.content.decode()
|
||||
|
||||
self.assertInHTML(
|
||||
@@ -139,7 +144,7 @@ class BookmarkNewViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
)
|
||||
|
||||
def test_should_not_enable_auto_close_when_not_specified_in_url_parameter(self):
|
||||
response = self.client.get(reverse("bookmarks:new"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.new"))
|
||||
html = response.content.decode()
|
||||
|
||||
self.assertInHTML(
|
||||
@@ -149,30 +154,31 @@ class BookmarkNewViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
def test_should_redirect_to_index_view(self):
|
||||
form_data = self.create_form_data()
|
||||
|
||||
response = self.client.post(reverse("bookmarks:new"), form_data)
|
||||
response = self.client.post(reverse("linkding:bookmarks.new"), form_data)
|
||||
|
||||
self.assertRedirects(response, reverse("bookmarks:index"))
|
||||
self.assertRedirects(response, reverse("linkding:bookmarks.index"))
|
||||
|
||||
def test_should_not_redirect_to_external_url(self):
|
||||
form_data = self.create_form_data()
|
||||
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:new") + "?return_url=https://example.com", form_data
|
||||
reverse("linkding:bookmarks.new") + "?return_url=https://example.com",
|
||||
form_data,
|
||||
)
|
||||
|
||||
self.assertRedirects(response, reverse("bookmarks:index"))
|
||||
self.assertRedirects(response, reverse("linkding:bookmarks.index"))
|
||||
|
||||
def test_auto_close_should_redirect_to_close_view(self):
|
||||
form_data = self.create_form_data({"auto_close": "true"})
|
||||
|
||||
response = self.client.post(reverse("bookmarks:new"), form_data)
|
||||
response = self.client.post(reverse("linkding:bookmarks.new"), form_data)
|
||||
|
||||
self.assertRedirects(response, reverse("bookmarks:close"))
|
||||
self.assertRedirects(response, reverse("linkding:bookmarks.close"))
|
||||
|
||||
def test_should_respect_share_profile_setting(self):
|
||||
self.user.profile.enable_sharing = False
|
||||
self.user.profile.save()
|
||||
response = self.client.get(reverse("bookmarks:new"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.new"))
|
||||
html = response.content.decode()
|
||||
|
||||
self.assertInHTML(
|
||||
@@ -189,7 +195,7 @@ class BookmarkNewViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
|
||||
self.user.profile.enable_sharing = True
|
||||
self.user.profile.save()
|
||||
response = self.client.get(reverse("bookmarks:new"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.new"))
|
||||
html = response.content.decode()
|
||||
|
||||
self.assertInHTML(
|
||||
@@ -208,7 +214,7 @@ class BookmarkNewViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
self.user.profile.enable_sharing = True
|
||||
self.user.profile.save()
|
||||
|
||||
response = self.client.get(reverse("bookmarks:new"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.new"))
|
||||
html = response.content.decode()
|
||||
self.assertInHTML(
|
||||
"""
|
||||
@@ -222,7 +228,7 @@ class BookmarkNewViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
self.user.profile.enable_public_sharing = True
|
||||
self.user.profile.save()
|
||||
|
||||
response = self.client.get(reverse("bookmarks:new"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.new"))
|
||||
html = response.content.decode()
|
||||
self.assertInHTML(
|
||||
"""
|
||||
@@ -235,12 +241,14 @@ class BookmarkNewViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
|
||||
def test_should_hide_notes_if_there_are_no_notes(self):
|
||||
bookmark = self.setup_bookmark()
|
||||
response = self.client.get(reverse("bookmarks:edit", args=[bookmark.id]))
|
||||
response = self.client.get(
|
||||
reverse("linkding:bookmarks.edit", args=[bookmark.id])
|
||||
)
|
||||
|
||||
self.assertContains(response, '<details class="notes">', count=1)
|
||||
|
||||
def test_should_not_check_unread_by_default(self):
|
||||
response = self.client.get(reverse("bookmarks:new"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.new"))
|
||||
html = response.content.decode()
|
||||
|
||||
self.assertInHTML(
|
||||
@@ -252,7 +260,7 @@ class BookmarkNewViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
self.user.profile.default_mark_unread = True
|
||||
self.user.profile.save()
|
||||
|
||||
response = self.client.get(reverse("bookmarks:new"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.new"))
|
||||
html = response.content.decode()
|
||||
|
||||
self.assertInHTML(
|
||||
|
@@ -75,7 +75,7 @@ class BookmarkSharedViewTestCase(
|
||||
self.setup_bookmark(shared=True, user=user4),
|
||||
]
|
||||
|
||||
response = self.client.get(reverse("bookmarks:shared"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.shared"))
|
||||
|
||||
self.assertVisibleBookmarks(response, visible_bookmarks)
|
||||
self.assertInvisibleBookmarks(response, invisible_bookmarks)
|
||||
@@ -94,7 +94,7 @@ class BookmarkSharedViewTestCase(
|
||||
self.setup_bookmark(shared=True, user=user3),
|
||||
]
|
||||
|
||||
url = reverse("bookmarks:shared") + "?user=" + user1.username
|
||||
url = reverse("linkding:bookmarks.shared") + "?user=" + user1.username
|
||||
response = self.client.get(url)
|
||||
|
||||
self.assertVisibleBookmarks(response, visible_bookmarks)
|
||||
@@ -109,7 +109,7 @@ class BookmarkSharedViewTestCase(
|
||||
)
|
||||
invisible_bookmarks = self.setup_numbered_bookmarks(3, shared=True, user=user)
|
||||
|
||||
response = self.client.get(reverse("bookmarks:shared") + "?q=foo")
|
||||
response = self.client.get(reverse("linkding:bookmarks.shared") + "?q=foo")
|
||||
|
||||
self.assertVisibleBookmarks(response, visible_bookmarks)
|
||||
self.assertInvisibleBookmarks(response, invisible_bookmarks)
|
||||
@@ -125,7 +125,7 @@ class BookmarkSharedViewTestCase(
|
||||
3, shared=True, user=user2, prefix="user2"
|
||||
)
|
||||
|
||||
response = self.client.get(reverse("bookmarks:shared"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.shared"))
|
||||
|
||||
self.assertVisibleBookmarks(response, visible_bookmarks)
|
||||
self.assertInvisibleBookmarks(response, invisible_bookmarks)
|
||||
@@ -159,7 +159,7 @@ class BookmarkSharedViewTestCase(
|
||||
self.setup_bookmark(shared=False, user=user3, tags=[invisible_tags[2]])
|
||||
self.setup_bookmark(shared=True, user=user4, tags=[invisible_tags[3]])
|
||||
|
||||
response = self.client.get(reverse("bookmarks:shared"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.shared"))
|
||||
|
||||
self.assertVisibleTags(response, visible_tags)
|
||||
self.assertInvisibleTags(response, invisible_tags)
|
||||
@@ -181,7 +181,7 @@ class BookmarkSharedViewTestCase(
|
||||
self.setup_bookmark(shared=True, user=user2, tags=[invisible_tags[0]])
|
||||
self.setup_bookmark(shared=True, user=user3, tags=[invisible_tags[1]])
|
||||
|
||||
url = reverse("bookmarks:shared") + "?user=" + user1.username
|
||||
url = reverse("linkding:bookmarks.shared") + "?user=" + user1.username
|
||||
response = self.client.get(url)
|
||||
|
||||
self.assertVisibleTags(response, visible_tags)
|
||||
@@ -217,7 +217,9 @@ class BookmarkSharedViewTestCase(
|
||||
self.setup_bookmark(shared=True, user=user2, tags=[invisible_tags[1]])
|
||||
self.setup_bookmark(shared=True, user=user3, tags=[invisible_tags[2]])
|
||||
|
||||
response = self.client.get(reverse("bookmarks:shared") + "?q=searchvalue")
|
||||
response = self.client.get(
|
||||
reverse("linkding:bookmarks.shared") + "?q=searchvalue"
|
||||
)
|
||||
|
||||
self.assertVisibleTags(response, visible_tags)
|
||||
self.assertInvisibleTags(response, invisible_tags)
|
||||
@@ -241,7 +243,7 @@ class BookmarkSharedViewTestCase(
|
||||
self.setup_bookmark(shared=True, user=user2, tags=[invisible_tags[0]])
|
||||
self.setup_bookmark(shared=True, user=user2, tags=[invisible_tags[1]])
|
||||
|
||||
response = self.client.get(reverse("bookmarks:shared"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.shared"))
|
||||
|
||||
self.assertVisibleTags(response, visible_tags)
|
||||
self.assertInvisibleTags(response, invisible_tags)
|
||||
@@ -258,7 +260,7 @@ class BookmarkSharedViewTestCase(
|
||||
self.setup_bookmark(shared=False, user=self.setup_user(enable_sharing=True))
|
||||
self.setup_bookmark(shared=True, user=self.setup_user(enable_sharing=False))
|
||||
|
||||
response = self.client.get(reverse("bookmarks:shared"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.shared"))
|
||||
self.assertVisibleUserOptions(response, expected_visible_users)
|
||||
|
||||
def test_should_list_only_users_with_publicly_shared_bookmarks_without_login(self):
|
||||
@@ -278,7 +280,7 @@ class BookmarkSharedViewTestCase(
|
||||
self.setup_bookmark(shared=True, user=self.setup_user(enable_sharing=True))
|
||||
self.setup_bookmark(shared=True, user=self.setup_user(enable_sharing=True))
|
||||
|
||||
response = self.client.get(reverse("bookmarks:shared"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.shared"))
|
||||
self.assertVisibleUserOptions(response, expected_visible_users)
|
||||
|
||||
def test_should_list_bookmarks_and_tags_for_search_preferences(self):
|
||||
@@ -313,7 +315,7 @@ class BookmarkSharedViewTestCase(
|
||||
unread_tags = self.get_tags_from_bookmarks(unread_bookmarks)
|
||||
read_tags = self.get_tags_from_bookmarks(read_bookmarks)
|
||||
|
||||
response = self.client.get(reverse("bookmarks:shared"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.shared"))
|
||||
self.assertVisibleBookmarks(response, unread_bookmarks)
|
||||
self.assertInvisibleBookmarks(response, read_bookmarks)
|
||||
self.assertVisibleTags(response, unread_tags)
|
||||
@@ -330,7 +332,7 @@ class BookmarkSharedViewTestCase(
|
||||
self.setup_bookmark(shared=True),
|
||||
]
|
||||
|
||||
response = self.client.get(reverse("bookmarks:shared"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.shared"))
|
||||
|
||||
self.assertVisibleBookmarks(response, visible_bookmarks, "_blank")
|
||||
|
||||
@@ -347,7 +349,7 @@ class BookmarkSharedViewTestCase(
|
||||
self.setup_bookmark(shared=True),
|
||||
]
|
||||
|
||||
response = self.client.get(reverse("bookmarks:shared"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.shared"))
|
||||
|
||||
self.assertVisibleBookmarks(response, visible_bookmarks, "_self")
|
||||
|
||||
@@ -358,8 +360,8 @@ class BookmarkSharedViewTestCase(
|
||||
user.profile.save()
|
||||
|
||||
bookmark = self.setup_bookmark(title="foo", shared=True, user=user)
|
||||
edit_url = reverse("bookmarks:edit", args=[bookmark.id])
|
||||
base_url = reverse("bookmarks:shared")
|
||||
edit_url = reverse("linkding:bookmarks.edit", args=[bookmark.id])
|
||||
base_url = reverse("linkding:bookmarks.shared")
|
||||
|
||||
# without query params
|
||||
return_url = urllib.parse.quote(base_url)
|
||||
@@ -394,13 +396,13 @@ class BookmarkSharedViewTestCase(
|
||||
|
||||
def test_apply_search_preferences(self):
|
||||
# no params
|
||||
response = self.client.post(reverse("bookmarks:shared"))
|
||||
response = self.client.post(reverse("linkding:bookmarks.shared"))
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertEqual(response.url, reverse("bookmarks:shared"))
|
||||
self.assertEqual(response.url, reverse("linkding:bookmarks.shared"))
|
||||
|
||||
# some params
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:shared"),
|
||||
reverse("linkding:bookmarks.shared"),
|
||||
{
|
||||
"q": "foo",
|
||||
"sort": BookmarkSearch.SORT_TITLE_ASC,
|
||||
@@ -408,12 +410,12 @@ class BookmarkSharedViewTestCase(
|
||||
)
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertEqual(
|
||||
response.url, reverse("bookmarks:shared") + "?q=foo&sort=title_asc"
|
||||
response.url, reverse("linkding:bookmarks.shared") + "?q=foo&sort=title_asc"
|
||||
)
|
||||
|
||||
# params with default value are removed
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:shared"),
|
||||
reverse("linkding:bookmarks.shared"),
|
||||
{
|
||||
"q": "foo",
|
||||
"user": "",
|
||||
@@ -424,12 +426,12 @@ class BookmarkSharedViewTestCase(
|
||||
)
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertEqual(
|
||||
response.url, reverse("bookmarks:shared") + "?q=foo&unread=yes"
|
||||
response.url, reverse("linkding:bookmarks.shared") + "?q=foo&unread=yes"
|
||||
)
|
||||
|
||||
# page is removed
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:shared"),
|
||||
reverse("linkding:bookmarks.shared"),
|
||||
{
|
||||
"q": "foo",
|
||||
"page": "2",
|
||||
@@ -438,7 +440,7 @@ class BookmarkSharedViewTestCase(
|
||||
)
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertEqual(
|
||||
response.url, reverse("bookmarks:shared") + "?q=foo&sort=title_asc"
|
||||
response.url, reverse("linkding:bookmarks.shared") + "?q=foo&sort=title_asc"
|
||||
)
|
||||
|
||||
def test_save_search_preferences(self):
|
||||
@@ -447,7 +449,7 @@ class BookmarkSharedViewTestCase(
|
||||
|
||||
# no params
|
||||
self.client.post(
|
||||
reverse("bookmarks:shared"),
|
||||
reverse("linkding:bookmarks.shared"),
|
||||
{
|
||||
"save": "",
|
||||
},
|
||||
@@ -464,7 +466,7 @@ class BookmarkSharedViewTestCase(
|
||||
|
||||
# with param
|
||||
self.client.post(
|
||||
reverse("bookmarks:shared"),
|
||||
reverse("linkding:bookmarks.shared"),
|
||||
{
|
||||
"save": "",
|
||||
"sort": BookmarkSearch.SORT_TITLE_ASC,
|
||||
@@ -482,7 +484,7 @@ class BookmarkSharedViewTestCase(
|
||||
|
||||
# add a param
|
||||
self.client.post(
|
||||
reverse("bookmarks:shared"),
|
||||
reverse("linkding:bookmarks.shared"),
|
||||
{
|
||||
"save": "",
|
||||
"sort": BookmarkSearch.SORT_TITLE_ASC,
|
||||
@@ -501,7 +503,7 @@ class BookmarkSharedViewTestCase(
|
||||
|
||||
# remove a param
|
||||
self.client.post(
|
||||
reverse("bookmarks:shared"),
|
||||
reverse("linkding:bookmarks.shared"),
|
||||
{
|
||||
"save": "",
|
||||
"unread": BookmarkSearch.FILTER_UNREAD_YES,
|
||||
@@ -519,7 +521,7 @@ class BookmarkSharedViewTestCase(
|
||||
|
||||
# ignores non-preferences
|
||||
self.client.post(
|
||||
reverse("bookmarks:shared"),
|
||||
reverse("linkding:bookmarks.shared"),
|
||||
{
|
||||
"save": "",
|
||||
"q": "foo",
|
||||
@@ -539,7 +541,7 @@ class BookmarkSharedViewTestCase(
|
||||
)
|
||||
|
||||
def test_url_encode_bookmark_actions_url(self):
|
||||
url = reverse("bookmarks:shared") + "?q=%23foo"
|
||||
url = reverse("linkding:bookmarks.shared") + "?q=%23foo"
|
||||
response = self.client.get(url)
|
||||
html = response.content.decode()
|
||||
soup = self.make_soup(html)
|
||||
@@ -557,34 +559,34 @@ class BookmarkSharedViewTestCase(
|
||||
user.profile.save()
|
||||
bookmark = self.setup_bookmark(description="alert('xss')", shared=True)
|
||||
|
||||
url = reverse("bookmarks:shared") + "?q=alert(%27xss%27)"
|
||||
url = reverse("linkding:bookmarks.shared") + "?q=alert(%27xss%27)"
|
||||
response = self.client.get(url)
|
||||
self.assertNotContains(response, "alert('xss')")
|
||||
self.assertContains(response, bookmark.url)
|
||||
|
||||
url = reverse("bookmarks:shared") + "?sort=alert(%27xss%27)"
|
||||
url = reverse("linkding:bookmarks.shared") + "?sort=alert(%27xss%27)"
|
||||
response = self.client.get(url)
|
||||
self.assertNotContains(response, "alert('xss')")
|
||||
|
||||
url = reverse("bookmarks:shared") + "?unread=alert(%27xss%27)"
|
||||
url = reverse("linkding:bookmarks.shared") + "?unread=alert(%27xss%27)"
|
||||
response = self.client.get(url)
|
||||
self.assertNotContains(response, "alert('xss')")
|
||||
|
||||
url = reverse("bookmarks:shared") + "?shared=alert(%27xss%27)"
|
||||
url = reverse("linkding:bookmarks.shared") + "?shared=alert(%27xss%27)"
|
||||
response = self.client.get(url)
|
||||
self.assertNotContains(response, "alert('xss')")
|
||||
|
||||
url = reverse("bookmarks:shared") + "?user=alert(%27xss%27)"
|
||||
url = reverse("linkding:bookmarks.shared") + "?user=alert(%27xss%27)"
|
||||
response = self.client.get(url)
|
||||
self.assertNotContains(response, "alert('xss')")
|
||||
|
||||
url = reverse("bookmarks:shared") + "?page=alert(%27xss%27)"
|
||||
url = reverse("linkding:bookmarks.shared") + "?page=alert(%27xss%27)"
|
||||
response = self.client.get(url)
|
||||
self.assertNotContains(response, "alert('xss')")
|
||||
|
||||
def test_turbo_frame_details_modal_renders_details_modal_update(self):
|
||||
bookmark = self.setup_bookmark()
|
||||
url = reverse("bookmarks:shared") + f"?bookmark_id={bookmark.id}"
|
||||
url = reverse("linkding:bookmarks.shared") + f"?bookmark_id={bookmark.id}"
|
||||
response = self.client.get(url, headers={"Turbo-Frame": "details-modal"})
|
||||
|
||||
self.assertEqual(200, response.status_code)
|
||||
@@ -595,9 +597,9 @@ class BookmarkSharedViewTestCase(
|
||||
self.assertIsNone(soup.select_one("#tag-cloud-container"))
|
||||
|
||||
def test_includes_public_shared_rss_feed(self):
|
||||
response = self.client.get(reverse("bookmarks:shared"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.shared"))
|
||||
soup = self.make_soup(response.content.decode())
|
||||
|
||||
feed = soup.select_one('head link[type="application/rss+xml"]')
|
||||
self.assertIsNotNone(feed)
|
||||
self.assertEqual(feed.attrs["href"], reverse("bookmarks:feeds.public_shared"))
|
||||
self.assertEqual(feed.attrs["href"], reverse("linkding:feeds.public_shared"))
|
||||
|
@@ -32,7 +32,7 @@ class BookmarkSharedViewPerformanceTestCase(
|
||||
# capture number of queries
|
||||
context = CaptureQueriesContext(self.get_connection())
|
||||
with context:
|
||||
response = self.client.get(reverse("bookmarks:shared"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.shared"))
|
||||
html = response.content.decode("utf-8")
|
||||
soup = self.make_soup(html)
|
||||
list_items = soup.select("li[ld-bookmark-item]")
|
||||
@@ -48,7 +48,7 @@ class BookmarkSharedViewPerformanceTestCase(
|
||||
|
||||
# assert num queries doesn't increase
|
||||
with self.assertNumQueries(number_of_queries):
|
||||
response = self.client.get(reverse("bookmarks:shared"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.shared"))
|
||||
html = response.content.decode("utf-8")
|
||||
soup = self.make_soup(html)
|
||||
list_items = soup.select("li[ld-bookmark-item]")
|
||||
|
@@ -89,7 +89,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
bookmarks = self.setup_numbered_bookmarks(5)
|
||||
|
||||
response = self.get(
|
||||
reverse("bookmarks:bookmark-list"), expected_status_code=status.HTTP_200_OK
|
||||
reverse("linkding:bookmark-list"), expected_status_code=status.HTTP_200_OK
|
||||
)
|
||||
self.assertBookmarkListEqual(response.data["results"], bookmarks)
|
||||
|
||||
@@ -104,7 +104,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
)
|
||||
|
||||
response = self.get(
|
||||
reverse("bookmarks:bookmark-list"), expected_status_code=status.HTTP_200_OK
|
||||
reverse("linkding:bookmark-list"), expected_status_code=status.HTTP_200_OK
|
||||
)
|
||||
self.assertBookmarkListEqual(response.data["results"], bookmarks)
|
||||
|
||||
@@ -116,7 +116,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
bookmark.save()
|
||||
|
||||
response = self.get(
|
||||
reverse("bookmarks:bookmark-list"), expected_status_code=status.HTTP_200_OK
|
||||
reverse("linkding:bookmark-list"), expected_status_code=status.HTTP_200_OK
|
||||
)
|
||||
self.assertIsNone(response.data["results"][0]["website_title"])
|
||||
self.assertIsNone(response.data["results"][0]["website_description"])
|
||||
@@ -127,7 +127,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
self.setup_numbered_bookmarks(5, archived=True)
|
||||
|
||||
response = self.get(
|
||||
reverse("bookmarks:bookmark-list"), expected_status_code=status.HTTP_200_OK
|
||||
reverse("linkding:bookmark-list"), expected_status_code=status.HTTP_200_OK
|
||||
)
|
||||
self.assertBookmarkListEqual(response.data["results"], bookmarks)
|
||||
|
||||
@@ -138,7 +138,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
self.setup_numbered_bookmarks(5)
|
||||
|
||||
response = self.get(
|
||||
reverse("bookmarks:bookmark-list") + "?q=" + search_value,
|
||||
reverse("linkding:bookmark-list") + "?q=" + search_value,
|
||||
expected_status_code=status.HTTP_200_OK,
|
||||
)
|
||||
self.assertBookmarkListEqual(response.data["results"], bookmarks)
|
||||
@@ -150,7 +150,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
|
||||
# Filter off
|
||||
response = self.get(
|
||||
reverse("bookmarks:bookmark-list"), expected_status_code=status.HTTP_200_OK
|
||||
reverse("linkding:bookmark-list"), expected_status_code=status.HTTP_200_OK
|
||||
)
|
||||
self.assertBookmarkListEqual(
|
||||
response.data["results"], unread_bookmarks + read_bookmarks
|
||||
@@ -158,14 +158,14 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
|
||||
# Filter shared
|
||||
response = self.get(
|
||||
reverse("bookmarks:bookmark-list") + "?unread=yes",
|
||||
reverse("linkding:bookmark-list") + "?unread=yes",
|
||||
expected_status_code=status.HTTP_200_OK,
|
||||
)
|
||||
self.assertBookmarkListEqual(response.data["results"], unread_bookmarks)
|
||||
|
||||
# Filter unshared
|
||||
response = self.get(
|
||||
reverse("bookmarks:bookmark-list") + "?unread=no",
|
||||
reverse("linkding:bookmark-list") + "?unread=no",
|
||||
expected_status_code=status.HTTP_200_OK,
|
||||
)
|
||||
self.assertBookmarkListEqual(response.data["results"], read_bookmarks)
|
||||
@@ -177,7 +177,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
|
||||
# Filter off
|
||||
response = self.get(
|
||||
reverse("bookmarks:bookmark-list"), expected_status_code=status.HTTP_200_OK
|
||||
reverse("linkding:bookmark-list"), expected_status_code=status.HTTP_200_OK
|
||||
)
|
||||
self.assertBookmarkListEqual(
|
||||
response.data["results"], unshared_bookmarks + shared_bookmarks
|
||||
@@ -185,14 +185,14 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
|
||||
# Filter shared
|
||||
response = self.get(
|
||||
reverse("bookmarks:bookmark-list") + "?shared=yes",
|
||||
reverse("linkding:bookmark-list") + "?shared=yes",
|
||||
expected_status_code=status.HTTP_200_OK,
|
||||
)
|
||||
self.assertBookmarkListEqual(response.data["results"], shared_bookmarks)
|
||||
|
||||
# Filter unshared
|
||||
response = self.get(
|
||||
reverse("bookmarks:bookmark-list") + "?shared=no",
|
||||
reverse("linkding:bookmark-list") + "?shared=no",
|
||||
expected_status_code=status.HTTP_200_OK,
|
||||
)
|
||||
self.assertBookmarkListEqual(response.data["results"], unshared_bookmarks)
|
||||
@@ -203,7 +203,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
bookmarks.reverse()
|
||||
|
||||
response = self.get(
|
||||
reverse("bookmarks:bookmark-list") + "?sort=title_desc",
|
||||
reverse("linkding:bookmark-list") + "?sort=title_desc",
|
||||
expected_status_code=status.HTTP_200_OK,
|
||||
)
|
||||
self.assertBookmarkListEqual(response.data["results"], bookmarks)
|
||||
@@ -214,7 +214,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
archived_bookmarks = self.setup_numbered_bookmarks(5, archived=True)
|
||||
|
||||
response = self.get(
|
||||
reverse("bookmarks:bookmark-archived"),
|
||||
reverse("linkding:bookmark-archived"),
|
||||
expected_status_code=status.HTTP_200_OK,
|
||||
)
|
||||
self.assertBookmarkListEqual(response.data["results"], archived_bookmarks)
|
||||
@@ -231,7 +231,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
)
|
||||
|
||||
response = self.get(
|
||||
reverse("bookmarks:bookmark-archived"),
|
||||
reverse("linkding:bookmark-archived"),
|
||||
expected_status_code=status.HTTP_200_OK,
|
||||
)
|
||||
self.assertBookmarkListEqual(response.data["results"], archived_bookmarks)
|
||||
@@ -245,7 +245,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
self.setup_numbered_bookmarks(5, archived=True)
|
||||
|
||||
response = self.get(
|
||||
reverse("bookmarks:bookmark-archived") + "?q=" + search_value,
|
||||
reverse("linkding:bookmark-archived") + "?q=" + search_value,
|
||||
expected_status_code=status.HTTP_200_OK,
|
||||
)
|
||||
self.assertBookmarkListEqual(response.data["results"], archived_bookmarks)
|
||||
@@ -256,7 +256,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
bookmarks.reverse()
|
||||
|
||||
response = self.get(
|
||||
reverse("bookmarks:bookmark-archived") + "?sort=title_desc",
|
||||
reverse("linkding:bookmark-archived") + "?sort=title_desc",
|
||||
expected_status_code=status.HTTP_200_OK,
|
||||
)
|
||||
self.assertBookmarkListEqual(response.data["results"], bookmarks)
|
||||
@@ -280,7 +280,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
self.setup_bookmark(shared=True, user=user4)
|
||||
|
||||
response = self.get(
|
||||
reverse("bookmarks:bookmark-shared"),
|
||||
reverse("linkding:bookmark-shared"),
|
||||
expected_status_code=status.HTTP_200_OK,
|
||||
)
|
||||
self.assertBookmarkListEqual(response.data["results"], shared_bookmarks)
|
||||
@@ -300,7 +300,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
)
|
||||
|
||||
response = self.get(
|
||||
reverse("bookmarks:bookmark-shared"),
|
||||
reverse("linkding:bookmark-shared"),
|
||||
expected_status_code=status.HTTP_200_OK,
|
||||
)
|
||||
self.assertBookmarkListEqual(response.data["results"], shared_bookmarks)
|
||||
@@ -317,7 +317,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
self.setup_bookmark(shared=True, user=user2)
|
||||
|
||||
response = self.get(
|
||||
reverse("bookmarks:bookmark-shared"),
|
||||
reverse("linkding:bookmark-shared"),
|
||||
expected_status_code=status.HTTP_200_OK,
|
||||
)
|
||||
self.assertBookmarkListEqual(response.data["results"], shared_bookmarks)
|
||||
@@ -339,7 +339,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
self.setup_bookmark(shared=True, user=user3),
|
||||
|
||||
response = self.get(
|
||||
reverse("bookmarks:bookmark-shared") + "?q=searchvalue",
|
||||
reverse("linkding:bookmark-shared") + "?q=searchvalue",
|
||||
expected_status_code=status.HTTP_200_OK,
|
||||
)
|
||||
self.assertBookmarkListEqual(response.data["results"], expected_bookmarks)
|
||||
@@ -352,7 +352,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
self.setup_bookmark(shared=True, user=user_search_user),
|
||||
]
|
||||
response = self.get(
|
||||
reverse("bookmarks:bookmark-shared") + "?user=" + user_search_user.username,
|
||||
reverse("linkding:bookmark-shared") + "?user=" + user_search_user.username,
|
||||
expected_status_code=status.HTTP_200_OK,
|
||||
)
|
||||
self.assertBookmarkListEqual(response.data["results"], expected_bookmarks)
|
||||
@@ -371,7 +371,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
),
|
||||
]
|
||||
response = self.get(
|
||||
reverse("bookmarks:bookmark-shared")
|
||||
reverse("linkding:bookmark-shared")
|
||||
+ "?q=searchvalue&user="
|
||||
+ combined_search_user.username,
|
||||
expected_status_code=status.HTTP_200_OK,
|
||||
@@ -385,7 +385,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
bookmarks.reverse()
|
||||
|
||||
response = self.get(
|
||||
reverse("bookmarks:bookmark-shared") + "?sort=title_desc",
|
||||
reverse("linkding:bookmark-shared") + "?sort=title_desc",
|
||||
expected_status_code=status.HTTP_200_OK,
|
||||
)
|
||||
self.assertBookmarkListEqual(response.data["results"], bookmarks)
|
||||
@@ -403,7 +403,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
"shared": False,
|
||||
"tag_names": ["tag1", "tag2"],
|
||||
}
|
||||
self.post(reverse("bookmarks:bookmark-list"), data, status.HTTP_201_CREATED)
|
||||
self.post(reverse("linkding:bookmark-list"), data, status.HTTP_201_CREATED)
|
||||
bookmark = Bookmark.objects.get(url=data["url"])
|
||||
self.assertEqual(bookmark.url, data["url"])
|
||||
self.assertEqual(bookmark.title, data["title"])
|
||||
@@ -427,7 +427,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
description="Website description",
|
||||
preview_image=None,
|
||||
)
|
||||
self.post(reverse("bookmarks:bookmark-list"), data, status.HTTP_201_CREATED)
|
||||
self.post(reverse("linkding:bookmark-list"), data, status.HTTP_201_CREATED)
|
||||
bookmark = Bookmark.objects.get(url=data["url"])
|
||||
self.assertEqual(bookmark.title, "Website title")
|
||||
self.assertEqual(bookmark.description, "Website description")
|
||||
@@ -446,7 +446,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
preview_image=None,
|
||||
)
|
||||
self.post(
|
||||
reverse("bookmarks:bookmark-list") + "?disable_scraping",
|
||||
reverse("linkding:bookmark-list") + "?disable_scraping",
|
||||
data,
|
||||
status.HTTP_201_CREATED,
|
||||
)
|
||||
@@ -463,7 +463,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
wraps=bookmarks.services.bookmarks.create_bookmark,
|
||||
) as mock_create_bookmark:
|
||||
data = {"url": "https://example.com/"}
|
||||
self.post(reverse("bookmarks:bookmark-list"), data, status.HTTP_201_CREATED)
|
||||
self.post(reverse("linkding:bookmark-list"), data, status.HTTP_201_CREATED)
|
||||
|
||||
mock_create_bookmark.assert_called_with(
|
||||
ANY, "", self.get_or_create_test_user(), disable_html_snapshot=False
|
||||
@@ -479,7 +479,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
) as mock_create_bookmark:
|
||||
data = {"url": "https://example.com/"}
|
||||
self.post(
|
||||
reverse("bookmarks:bookmark-list") + "?disable_html_snapshot",
|
||||
reverse("linkding:bookmark-list") + "?disable_html_snapshot",
|
||||
data,
|
||||
status.HTTP_201_CREATED,
|
||||
)
|
||||
@@ -502,7 +502,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
"is_archived": True,
|
||||
"tag_names": ["tag1", "tag2"],
|
||||
}
|
||||
self.post(reverse("bookmarks:bookmark-list"), data, status.HTTP_201_CREATED)
|
||||
self.post(reverse("linkding:bookmark-list"), data, status.HTTP_201_CREATED)
|
||||
bookmark = Bookmark.objects.get(url=data["url"])
|
||||
self.assertEqual(bookmark.id, original_bookmark.id)
|
||||
self.assertEqual(bookmark.url, data["url"])
|
||||
@@ -526,7 +526,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
"description": "Test description",
|
||||
"tag_names": ["tag 1", "tag 2"],
|
||||
}
|
||||
self.post(reverse("bookmarks:bookmark-list"), data, status.HTTP_201_CREATED)
|
||||
self.post(reverse("linkding:bookmark-list"), data, status.HTTP_201_CREATED)
|
||||
bookmark = Bookmark.objects.get(url=data["url"])
|
||||
tag_names = [tag.name for tag in bookmark.tags.all()]
|
||||
self.assertListEqual(tag_names, ["tag-1", "tag-2"])
|
||||
@@ -536,7 +536,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
|
||||
data = {"url": "https://example.com/"}
|
||||
self.post(
|
||||
reverse("bookmarks:bookmark-list") + "?disable_scraping",
|
||||
reverse("linkding:bookmark-list") + "?disable_scraping",
|
||||
data,
|
||||
status.HTTP_201_CREATED,
|
||||
)
|
||||
@@ -561,7 +561,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
"is_archived": True,
|
||||
"tag_names": ["tag1", "tag2"],
|
||||
}
|
||||
self.post(reverse("bookmarks:bookmark-list"), data, status.HTTP_201_CREATED)
|
||||
self.post(reverse("linkding:bookmark-list"), data, status.HTTP_201_CREATED)
|
||||
bookmark = Bookmark.objects.get(url=data["url"])
|
||||
self.assertEqual(bookmark.url, data["url"])
|
||||
self.assertEqual(bookmark.title, data["title"])
|
||||
@@ -575,7 +575,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
self.authenticate()
|
||||
|
||||
data = {"url": "https://example.com/"}
|
||||
self.post(reverse("bookmarks:bookmark-list"), data, status.HTTP_201_CREATED)
|
||||
self.post(reverse("linkding:bookmark-list"), data, status.HTTP_201_CREATED)
|
||||
bookmark = Bookmark.objects.get(url=data["url"])
|
||||
self.assertFalse(bookmark.is_archived)
|
||||
|
||||
@@ -583,7 +583,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
self.authenticate()
|
||||
|
||||
data = {"url": "https://example.com/", "unread": True}
|
||||
self.post(reverse("bookmarks:bookmark-list"), data, status.HTTP_201_CREATED)
|
||||
self.post(reverse("linkding:bookmark-list"), data, status.HTTP_201_CREATED)
|
||||
bookmark = Bookmark.objects.get(url=data["url"])
|
||||
self.assertTrue(bookmark.unread)
|
||||
|
||||
@@ -591,7 +591,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
self.authenticate()
|
||||
|
||||
data = {"url": "https://example.com/"}
|
||||
self.post(reverse("bookmarks:bookmark-list"), data, status.HTTP_201_CREATED)
|
||||
self.post(reverse("linkding:bookmark-list"), data, status.HTTP_201_CREATED)
|
||||
bookmark = Bookmark.objects.get(url=data["url"])
|
||||
self.assertFalse(bookmark.unread)
|
||||
|
||||
@@ -599,7 +599,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
self.authenticate()
|
||||
|
||||
data = {"url": "https://example.com/", "shared": True}
|
||||
self.post(reverse("bookmarks:bookmark-list"), data, status.HTTP_201_CREATED)
|
||||
self.post(reverse("linkding:bookmark-list"), data, status.HTTP_201_CREATED)
|
||||
bookmark = Bookmark.objects.get(url=data["url"])
|
||||
self.assertTrue(bookmark.shared)
|
||||
|
||||
@@ -607,7 +607,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
self.authenticate()
|
||||
|
||||
data = {"url": "https://example.com/"}
|
||||
self.post(reverse("bookmarks:bookmark-list"), data, status.HTTP_201_CREATED)
|
||||
self.post(reverse("linkding:bookmark-list"), data, status.HTTP_201_CREATED)
|
||||
bookmark = Bookmark.objects.get(url=data["url"])
|
||||
self.assertFalse(bookmark.shared)
|
||||
|
||||
@@ -621,7 +621,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
profile.save()
|
||||
|
||||
data = {"url": "https://example.com/", "tag_names": [tag1.name]}
|
||||
self.post(reverse("bookmarks:bookmark-list"), data, status.HTTP_201_CREATED)
|
||||
self.post(reverse("linkding:bookmark-list"), data, status.HTTP_201_CREATED)
|
||||
bookmark = Bookmark.objects.get(url=data["url"])
|
||||
self.assertCountEqual(bookmark.tags.all(), [tag1, tag2])
|
||||
|
||||
@@ -629,7 +629,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
self.authenticate()
|
||||
bookmark = self.setup_bookmark()
|
||||
|
||||
url = reverse("bookmarks:bookmark-detail", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[bookmark.id])
|
||||
response = self.get(url, expected_status_code=status.HTTP_200_OK)
|
||||
self.assertBookmarkListEqual([response.data], [bookmark])
|
||||
|
||||
@@ -641,7 +641,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
tags=[tag1],
|
||||
)
|
||||
|
||||
url = reverse("bookmarks:bookmark-detail", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[bookmark.id])
|
||||
response = self.get(url, expected_status_code=status.HTTP_200_OK)
|
||||
self.assertBookmarkListEqual([response.data], [bookmark])
|
||||
|
||||
@@ -655,7 +655,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
),
|
||||
)
|
||||
|
||||
url = reverse("bookmarks:bookmark-detail", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[bookmark.id])
|
||||
response = self.get(url, expected_status_code=status.HTTP_200_OK)
|
||||
self.assertEqual(
|
||||
response.data["web_archive_snapshot_url"],
|
||||
@@ -667,7 +667,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
bookmark = self.setup_bookmark()
|
||||
|
||||
data = {"url": "https://example.com/updated"}
|
||||
url = reverse("bookmarks:bookmark-detail", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[bookmark.id])
|
||||
self.put(url, data, expected_status_code=status.HTTP_200_OK)
|
||||
updated_bookmark = Bookmark.objects.get(id=bookmark.id)
|
||||
self.assertEqual(updated_bookmark.url, data["url"])
|
||||
@@ -682,7 +682,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
"website_title": "test",
|
||||
"website_description": "test",
|
||||
}
|
||||
url = reverse("bookmarks:bookmark-detail", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[bookmark.id])
|
||||
self.put(url, data, expected_status_code=status.HTTP_200_OK)
|
||||
updated_bookmark = Bookmark.objects.get(id=bookmark.id)
|
||||
self.assertEqual(data["url"], updated_bookmark.url)
|
||||
@@ -699,7 +699,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
bookmark = self.setup_bookmark()
|
||||
|
||||
data = {"title": "https://example.com/"}
|
||||
url = reverse("bookmarks:bookmark-detail", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[bookmark.id])
|
||||
self.put(url, data, expected_status_code=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
def test_update_bookmark_with_minimal_payload_does_not_modify_bookmark(self):
|
||||
@@ -709,7 +709,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
)
|
||||
|
||||
data = {"url": "https://example.com/"}
|
||||
url = reverse("bookmarks:bookmark-detail", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[bookmark.id])
|
||||
self.put(url, data, expected_status_code=status.HTTP_200_OK)
|
||||
updated_bookmark = Bookmark.objects.get(id=bookmark.id)
|
||||
self.assertEqual(updated_bookmark.url, data["url"])
|
||||
@@ -726,7 +726,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
bookmark = self.setup_bookmark()
|
||||
|
||||
data = {"url": "https://example.com/", "unread": True}
|
||||
url = reverse("bookmarks:bookmark-detail", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[bookmark.id])
|
||||
self.put(url, data, expected_status_code=status.HTTP_200_OK)
|
||||
updated_bookmark = Bookmark.objects.get(id=bookmark.id)
|
||||
self.assertEqual(updated_bookmark.unread, True)
|
||||
@@ -736,7 +736,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
bookmark = self.setup_bookmark()
|
||||
|
||||
data = {"url": "https://example.com/", "shared": True}
|
||||
url = reverse("bookmarks:bookmark-detail", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[bookmark.id])
|
||||
self.put(url, data, expected_status_code=status.HTTP_200_OK)
|
||||
updated_bookmark = Bookmark.objects.get(id=bookmark.id)
|
||||
self.assertEqual(updated_bookmark.shared, True)
|
||||
@@ -752,7 +752,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
profile.save()
|
||||
|
||||
data = {"url": "https://example.com/", "tag_names": [tag1.name]}
|
||||
url = reverse("bookmarks:bookmark-detail", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[bookmark.id])
|
||||
self.put(url, data, expected_status_code=status.HTTP_200_OK)
|
||||
updated_bookmark = Bookmark.objects.get(id=bookmark.id)
|
||||
self.assertCountEqual(updated_bookmark.tags.all(), [tag1, tag2])
|
||||
@@ -767,17 +767,17 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
|
||||
# if the URL isn't modified it's not a duplicate
|
||||
data = {"url": edited_bookmark.url}
|
||||
url = reverse("bookmarks:bookmark-detail", args=[edited_bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[edited_bookmark.id])
|
||||
self.put(url, data, expected_status_code=status.HTTP_200_OK)
|
||||
|
||||
# if the URL is already bookmarked by another user, it's not a duplicate
|
||||
data = {"url": other_user_bookmark.url}
|
||||
url = reverse("bookmarks:bookmark-detail", args=[edited_bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[edited_bookmark.id])
|
||||
self.put(url, data, expected_status_code=status.HTTP_200_OK)
|
||||
|
||||
# if the URL is already bookmarked by the same user, it's a duplicate
|
||||
data = {"url": existing_bookmark.url}
|
||||
url = reverse("bookmarks:bookmark-detail", args=[edited_bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[edited_bookmark.id])
|
||||
self.put(url, data, expected_status_code=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
def test_patch_bookmark(self):
|
||||
@@ -785,55 +785,55 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
bookmark = self.setup_bookmark()
|
||||
|
||||
data = {"url": "https://example.com"}
|
||||
url = reverse("bookmarks:bookmark-detail", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[bookmark.id])
|
||||
self.patch(url, data, expected_status_code=status.HTTP_200_OK)
|
||||
bookmark.refresh_from_db()
|
||||
self.assertEqual(bookmark.url, data["url"])
|
||||
|
||||
data = {"title": "Updated title"}
|
||||
url = reverse("bookmarks:bookmark-detail", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[bookmark.id])
|
||||
self.patch(url, data, expected_status_code=status.HTTP_200_OK)
|
||||
bookmark.refresh_from_db()
|
||||
self.assertEqual(bookmark.title, data["title"])
|
||||
|
||||
data = {"description": "Updated description"}
|
||||
url = reverse("bookmarks:bookmark-detail", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[bookmark.id])
|
||||
self.patch(url, data, expected_status_code=status.HTTP_200_OK)
|
||||
bookmark.refresh_from_db()
|
||||
self.assertEqual(bookmark.description, data["description"])
|
||||
|
||||
data = {"notes": "Updated notes"}
|
||||
url = reverse("bookmarks:bookmark-detail", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[bookmark.id])
|
||||
self.patch(url, data, expected_status_code=status.HTTP_200_OK)
|
||||
bookmark.refresh_from_db()
|
||||
self.assertEqual(bookmark.notes, data["notes"])
|
||||
|
||||
data = {"unread": True}
|
||||
url = reverse("bookmarks:bookmark-detail", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[bookmark.id])
|
||||
self.patch(url, data, expected_status_code=status.HTTP_200_OK)
|
||||
bookmark.refresh_from_db()
|
||||
self.assertTrue(bookmark.unread)
|
||||
|
||||
data = {"unread": False}
|
||||
url = reverse("bookmarks:bookmark-detail", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[bookmark.id])
|
||||
self.patch(url, data, expected_status_code=status.HTTP_200_OK)
|
||||
bookmark.refresh_from_db()
|
||||
self.assertFalse(bookmark.unread)
|
||||
|
||||
data = {"shared": True}
|
||||
url = reverse("bookmarks:bookmark-detail", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[bookmark.id])
|
||||
self.patch(url, data, expected_status_code=status.HTTP_200_OK)
|
||||
bookmark.refresh_from_db()
|
||||
self.assertTrue(bookmark.shared)
|
||||
|
||||
data = {"shared": False}
|
||||
url = reverse("bookmarks:bookmark-detail", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[bookmark.id])
|
||||
self.patch(url, data, expected_status_code=status.HTTP_200_OK)
|
||||
bookmark.refresh_from_db()
|
||||
self.assertFalse(bookmark.shared)
|
||||
|
||||
data = {"tag_names": ["updated-tag-1", "updated-tag-2"]}
|
||||
url = reverse("bookmarks:bookmark-detail", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[bookmark.id])
|
||||
self.patch(url, data, expected_status_code=status.HTTP_200_OK)
|
||||
bookmark.refresh_from_db()
|
||||
tag_names = [tag.name for tag in bookmark.tags.all()]
|
||||
@@ -848,7 +848,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
"website_title": "test",
|
||||
"website_description": "test",
|
||||
}
|
||||
url = reverse("bookmarks:bookmark-detail", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[bookmark.id])
|
||||
self.patch(url, data, expected_status_code=status.HTTP_200_OK)
|
||||
updated_bookmark = Bookmark.objects.get(id=bookmark.id)
|
||||
self.assertNotEqual(
|
||||
@@ -865,7 +865,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
is_archived=True, unread=True, shared=True, tags=[self.setup_tag()]
|
||||
)
|
||||
|
||||
url = reverse("bookmarks:bookmark-detail", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[bookmark.id])
|
||||
self.patch(url, {}, expected_status_code=status.HTTP_200_OK)
|
||||
updated_bookmark = Bookmark.objects.get(id=bookmark.id)
|
||||
self.assertEqual(updated_bookmark.url, bookmark.url)
|
||||
@@ -888,7 +888,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
profile.save()
|
||||
|
||||
data = {"tag_names": [tag1.name]}
|
||||
url = reverse("bookmarks:bookmark-detail", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[bookmark.id])
|
||||
self.patch(url, data, expected_status_code=status.HTTP_200_OK)
|
||||
updated_bookmark = Bookmark.objects.get(id=bookmark.id)
|
||||
self.assertCountEqual(updated_bookmark.tags.all(), [tag1, tag2])
|
||||
@@ -897,7 +897,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
self.authenticate()
|
||||
bookmark = self.setup_bookmark()
|
||||
|
||||
url = reverse("bookmarks:bookmark-detail", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[bookmark.id])
|
||||
self.delete(url, expected_status_code=status.HTTP_204_NO_CONTENT)
|
||||
self.assertEqual(len(Bookmark.objects.filter(id=bookmark.id)), 0)
|
||||
|
||||
@@ -905,7 +905,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
self.authenticate()
|
||||
bookmark = self.setup_bookmark()
|
||||
|
||||
url = reverse("bookmarks:bookmark-archive", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-archive", args=[bookmark.id])
|
||||
self.post(url, expected_status_code=status.HTTP_204_NO_CONTENT)
|
||||
bookmark = Bookmark.objects.get(id=bookmark.id)
|
||||
self.assertTrue(bookmark.is_archived)
|
||||
@@ -914,7 +914,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
self.authenticate()
|
||||
bookmark = self.setup_bookmark(is_archived=True)
|
||||
|
||||
url = reverse("bookmarks:bookmark-unarchive", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-unarchive", args=[bookmark.id])
|
||||
self.post(url, expected_status_code=status.HTTP_204_NO_CONTENT)
|
||||
bookmark = Bookmark.objects.get(id=bookmark.id)
|
||||
self.assertFalse(bookmark.is_archived)
|
||||
@@ -922,7 +922,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
def test_check_returns_no_bookmark_if_url_is_not_bookmarked(self):
|
||||
self.authenticate()
|
||||
|
||||
url = reverse("bookmarks:bookmark-check")
|
||||
url = reverse("linkding:bookmark-check")
|
||||
check_url = urllib.parse.quote_plus("https://example.com")
|
||||
response = self.get(
|
||||
f"{url}?url={check_url}", expected_status_code=status.HTTP_200_OK
|
||||
@@ -945,7 +945,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
)
|
||||
mock_load_website_metadata.return_value = expected_metadata
|
||||
|
||||
url = reverse("bookmarks:bookmark-check")
|
||||
url = reverse("linkding:bookmark-check")
|
||||
check_url = urllib.parse.quote_plus("https://example.com")
|
||||
response = self.get(
|
||||
f"{url}?url={check_url}", expected_status_code=status.HTTP_200_OK
|
||||
@@ -969,7 +969,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
preview_image_file="preview.png",
|
||||
)
|
||||
|
||||
url = reverse("bookmarks:bookmark-check")
|
||||
url = reverse("linkding:bookmark-check")
|
||||
check_url = urllib.parse.quote_plus("https://example.com")
|
||||
response = self.get(
|
||||
f"{url}?url={check_url}", expected_status_code=status.HTTP_200_OK
|
||||
@@ -1006,7 +1006,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
)
|
||||
mock_load_website_metadata.return_value = expected_metadata
|
||||
|
||||
url = reverse("bookmarks:bookmark-check")
|
||||
url = reverse("linkding:bookmark-check")
|
||||
check_url = urllib.parse.quote_plus("https://example.com")
|
||||
response = self.get(
|
||||
f"{url}?url={check_url}", expected_status_code=status.HTTP_200_OK
|
||||
@@ -1022,7 +1022,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
def test_check_returns_no_auto_tags_if_none_configured(self):
|
||||
self.authenticate()
|
||||
|
||||
url = reverse("bookmarks:bookmark-check")
|
||||
url = reverse("linkding:bookmark-check")
|
||||
check_url = urllib.parse.quote_plus("https://example.com")
|
||||
response = self.get(
|
||||
f"{url}?url={check_url}", expected_status_code=status.HTTP_200_OK
|
||||
@@ -1038,7 +1038,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
profile.auto_tagging_rules = "example.com tag1 tag2"
|
||||
profile.save()
|
||||
|
||||
url = reverse("bookmarks:bookmark-check")
|
||||
url = reverse("linkding:bookmark-check")
|
||||
check_url = urllib.parse.quote_plus("https://example.com")
|
||||
response = self.get(
|
||||
f"{url}?url={check_url}", expected_status_code=status.HTTP_200_OK
|
||||
@@ -1059,23 +1059,23 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
inaccessible_shared_bookmark = self.setup_bookmark(user=other_user, shared=True)
|
||||
self.setup_bookmark(user=other_user, is_archived=True)
|
||||
|
||||
url = reverse("bookmarks:bookmark-list")
|
||||
url = reverse("linkding:bookmark-list")
|
||||
response = self.get(url, expected_status_code=status.HTTP_200_OK)
|
||||
self.assertEqual(len(response.data["results"]), 1)
|
||||
|
||||
url = reverse("bookmarks:bookmark-archived")
|
||||
url = reverse("linkding:bookmark-archived")
|
||||
response = self.get(url, expected_status_code=status.HTTP_200_OK)
|
||||
self.assertEqual(len(response.data["results"]), 1)
|
||||
|
||||
url = reverse("bookmarks:bookmark-detail", args=[inaccessible_bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[inaccessible_bookmark.id])
|
||||
self.get(url, expected_status_code=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
url = reverse(
|
||||
"bookmarks:bookmark-detail", args=[inaccessible_shared_bookmark.id]
|
||||
"linkding:bookmark-detail", args=[inaccessible_shared_bookmark.id]
|
||||
)
|
||||
self.get(url, expected_status_code=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
url = reverse("bookmarks:bookmark-detail", args=[inaccessible_bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[inaccessible_bookmark.id])
|
||||
self.put(
|
||||
url,
|
||||
{url: "https://example.com/"},
|
||||
@@ -1084,7 +1084,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
self.patch(url, expected_status_code=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
url = reverse(
|
||||
"bookmarks:bookmark-detail", args=[inaccessible_shared_bookmark.id]
|
||||
"linkding:bookmark-detail", args=[inaccessible_shared_bookmark.id]
|
||||
)
|
||||
self.put(
|
||||
url,
|
||||
@@ -1093,31 +1093,31 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
)
|
||||
self.patch(url, expected_status_code=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
url = reverse("bookmarks:bookmark-detail", args=[inaccessible_bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[inaccessible_bookmark.id])
|
||||
self.delete(url, expected_status_code=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
url = reverse(
|
||||
"bookmarks:bookmark-detail", args=[inaccessible_shared_bookmark.id]
|
||||
"linkding:bookmark-detail", args=[inaccessible_shared_bookmark.id]
|
||||
)
|
||||
self.delete(url, expected_status_code=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
url = reverse("bookmarks:bookmark-archive", args=[inaccessible_bookmark.id])
|
||||
url = reverse("linkding:bookmark-archive", args=[inaccessible_bookmark.id])
|
||||
self.post(url, expected_status_code=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
url = reverse(
|
||||
"bookmarks:bookmark-archive", args=[inaccessible_shared_bookmark.id]
|
||||
"linkding:bookmark-archive", args=[inaccessible_shared_bookmark.id]
|
||||
)
|
||||
self.post(url, expected_status_code=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
url = reverse("bookmarks:bookmark-unarchive", args=[inaccessible_bookmark.id])
|
||||
url = reverse("linkding:bookmark-unarchive", args=[inaccessible_bookmark.id])
|
||||
self.post(url, expected_status_code=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
url = reverse(
|
||||
"bookmarks:bookmark-unarchive", args=[inaccessible_shared_bookmark.id]
|
||||
"linkding:bookmark-unarchive", args=[inaccessible_shared_bookmark.id]
|
||||
)
|
||||
self.post(url, expected_status_code=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
url = reverse("bookmarks:bookmark-check")
|
||||
url = reverse("linkding:bookmark-check")
|
||||
check_url = urllib.parse.quote_plus(inaccessible_bookmark.url)
|
||||
response = self.get(
|
||||
f"{url}?url={check_url}", expected_status_code=status.HTTP_200_OK
|
||||
@@ -1153,7 +1153,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
|
||||
# default profile
|
||||
profile = self.user.profile
|
||||
url = reverse("bookmarks:user-profile")
|
||||
url = reverse("linkding:user-profile")
|
||||
response = self.get(url, expected_status_code=status.HTTP_200_OK)
|
||||
|
||||
self.assertUserProfile(response, profile)
|
||||
@@ -1176,7 +1176,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
}
|
||||
profile.save()
|
||||
|
||||
url = reverse("bookmarks:user-profile")
|
||||
url = reverse("linkding:user-profile")
|
||||
response = self.get(url, expected_status_code=status.HTTP_200_OK)
|
||||
|
||||
self.assertUserProfile(response, profile)
|
||||
@@ -1194,7 +1194,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
|
||||
self.authenticate()
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:bookmark-singlefile"),
|
||||
reverse("linkding:bookmark-singlefile"),
|
||||
self.create_singlefile_upload_body(),
|
||||
format="multipart",
|
||||
expected_status_code=status.HTTP_201_CREATED,
|
||||
@@ -1211,7 +1211,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
|
||||
self.authenticate()
|
||||
self.client.post(
|
||||
reverse("bookmarks:bookmark-singlefile"),
|
||||
reverse("linkding:bookmark-singlefile"),
|
||||
self.create_singlefile_upload_body(),
|
||||
format="multipart",
|
||||
expected_status_code=status.HTTP_201_CREATED,
|
||||
@@ -1232,7 +1232,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
|
||||
self.authenticate()
|
||||
self.client.post(
|
||||
reverse("bookmarks:bookmark-singlefile"),
|
||||
reverse("linkding:bookmark-singlefile"),
|
||||
self.create_singlefile_upload_body(),
|
||||
format="multipart",
|
||||
expected_status_code=status.HTTP_201_CREATED,
|
||||
@@ -1248,7 +1248,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
) as mock_create_bookmark:
|
||||
self.authenticate()
|
||||
self.client.post(
|
||||
reverse("bookmarks:bookmark-singlefile"),
|
||||
reverse("linkding:bookmark-singlefile"),
|
||||
self.create_singlefile_upload_body(),
|
||||
format="multipart",
|
||||
expected_status_code=status.HTTP_201_CREATED,
|
||||
@@ -1267,7 +1267,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
file = io.BytesIO(file_content)
|
||||
file.name = "snapshot.html"
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:bookmark-singlefile"),
|
||||
reverse("linkding:bookmark-singlefile"),
|
||||
{"file": file},
|
||||
format="multipart",
|
||||
expected_status_code=status.HTTP_400_BAD_REQUEST,
|
||||
@@ -1278,7 +1278,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
|
||||
# Missing 'file'
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:bookmark-singlefile"),
|
||||
reverse("linkding:bookmark-singlefile"),
|
||||
{"url": "https://example.com"},
|
||||
format="multipart",
|
||||
expected_status_code=status.HTTP_400_BAD_REQUEST,
|
||||
@@ -1291,7 +1291,7 @@ class BookmarksApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
|
||||
def test_singlefile_upload_disabled(self):
|
||||
self.authenticate()
|
||||
self.client.post(
|
||||
reverse("bookmarks:bookmark-singlefile"),
|
||||
reverse("linkding:bookmark-singlefile"),
|
||||
self.create_singlefile_upload_body(),
|
||||
format="multipart",
|
||||
expected_status_code=status.HTTP_403_FORBIDDEN,
|
||||
|
@@ -33,7 +33,7 @@ class BookmarksApiPerformanceTestCase(LinkdingApiTestCase, BookmarkFactoryMixin)
|
||||
context = CaptureQueriesContext(self.get_connection())
|
||||
with context:
|
||||
self.get(
|
||||
reverse("bookmarks:bookmark-list"),
|
||||
reverse("linkding:bookmark-list"),
|
||||
expected_status_code=status.HTTP_200_OK,
|
||||
)
|
||||
|
||||
@@ -51,7 +51,7 @@ class BookmarksApiPerformanceTestCase(LinkdingApiTestCase, BookmarkFactoryMixin)
|
||||
context = CaptureQueriesContext(self.get_connection())
|
||||
with context:
|
||||
self.get(
|
||||
reverse("bookmarks:bookmark-archived"),
|
||||
reverse("linkding:bookmark-archived"),
|
||||
expected_status_code=status.HTTP_200_OK,
|
||||
)
|
||||
|
||||
@@ -70,7 +70,7 @@ class BookmarksApiPerformanceTestCase(LinkdingApiTestCase, BookmarkFactoryMixin)
|
||||
context = CaptureQueriesContext(self.get_connection())
|
||||
with context:
|
||||
self.get(
|
||||
reverse("bookmarks:bookmark-shared"),
|
||||
reverse("linkding:bookmark-shared"),
|
||||
expected_status_code=status.HTTP_200_OK,
|
||||
)
|
||||
|
||||
|
@@ -16,36 +16,36 @@ class BookmarksApiPermissionsTestCase(LinkdingApiTestCase, BookmarkFactoryMixin)
|
||||
|
||||
def test_list_bookmarks_requires_authentication(self):
|
||||
self.get(
|
||||
reverse("bookmarks:bookmark-list"),
|
||||
reverse("linkding:bookmark-list"),
|
||||
expected_status_code=status.HTTP_401_UNAUTHORIZED,
|
||||
)
|
||||
|
||||
self.authenticate()
|
||||
self.get(
|
||||
reverse("bookmarks:bookmark-list"), expected_status_code=status.HTTP_200_OK
|
||||
reverse("linkding:bookmark-list"), expected_status_code=status.HTTP_200_OK
|
||||
)
|
||||
|
||||
def test_list_archived_bookmarks_requires_authentication(self):
|
||||
self.get(
|
||||
reverse("bookmarks:bookmark-archived"),
|
||||
reverse("linkding:bookmark-archived"),
|
||||
expected_status_code=status.HTTP_401_UNAUTHORIZED,
|
||||
)
|
||||
|
||||
self.authenticate()
|
||||
self.get(
|
||||
reverse("bookmarks:bookmark-archived"),
|
||||
reverse("linkding:bookmark-archived"),
|
||||
expected_status_code=status.HTTP_200_OK,
|
||||
)
|
||||
|
||||
def test_list_shared_bookmarks_does_not_require_authentication(self):
|
||||
self.get(
|
||||
reverse("bookmarks:bookmark-shared"),
|
||||
reverse("linkding:bookmark-shared"),
|
||||
expected_status_code=status.HTTP_200_OK,
|
||||
)
|
||||
|
||||
self.authenticate()
|
||||
self.get(
|
||||
reverse("bookmarks:bookmark-shared"),
|
||||
reverse("linkding:bookmark-shared"),
|
||||
expected_status_code=status.HTTP_200_OK,
|
||||
)
|
||||
|
||||
@@ -61,16 +61,14 @@ class BookmarksApiPermissionsTestCase(LinkdingApiTestCase, BookmarkFactoryMixin)
|
||||
"tag_names": ["tag1", "tag2"],
|
||||
}
|
||||
|
||||
self.post(
|
||||
reverse("bookmarks:bookmark-list"), data, status.HTTP_401_UNAUTHORIZED
|
||||
)
|
||||
self.post(reverse("linkding:bookmark-list"), data, status.HTTP_401_UNAUTHORIZED)
|
||||
|
||||
self.authenticate()
|
||||
self.post(reverse("bookmarks:bookmark-list"), data, status.HTTP_201_CREATED)
|
||||
self.post(reverse("linkding:bookmark-list"), data, status.HTTP_201_CREATED)
|
||||
|
||||
def test_get_bookmark_requires_authentication(self):
|
||||
bookmark = self.setup_bookmark()
|
||||
url = reverse("bookmarks:bookmark-detail", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[bookmark.id])
|
||||
|
||||
self.get(url, expected_status_code=status.HTTP_401_UNAUTHORIZED)
|
||||
|
||||
@@ -80,7 +78,7 @@ class BookmarksApiPermissionsTestCase(LinkdingApiTestCase, BookmarkFactoryMixin)
|
||||
def test_update_bookmark_requires_authentication(self):
|
||||
bookmark = self.setup_bookmark()
|
||||
data = {"url": "https://example.com/"}
|
||||
url = reverse("bookmarks:bookmark-detail", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[bookmark.id])
|
||||
|
||||
self.put(url, data, expected_status_code=status.HTTP_401_UNAUTHORIZED)
|
||||
|
||||
@@ -93,14 +91,14 @@ class BookmarksApiPermissionsTestCase(LinkdingApiTestCase, BookmarkFactoryMixin)
|
||||
other_user = self.setup_user()
|
||||
bookmark = self.setup_bookmark(user=other_user)
|
||||
data = {"url": "https://example.com/"}
|
||||
url = reverse("bookmarks:bookmark-detail", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[bookmark.id])
|
||||
|
||||
self.put(url, data, expected_status_code=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
def test_patch_bookmark_requires_authentication(self):
|
||||
bookmark = self.setup_bookmark()
|
||||
data = {"url": "https://example.com"}
|
||||
url = reverse("bookmarks:bookmark-detail", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[bookmark.id])
|
||||
|
||||
self.patch(url, data, expected_status_code=status.HTTP_401_UNAUTHORIZED)
|
||||
|
||||
@@ -113,13 +111,13 @@ class BookmarksApiPermissionsTestCase(LinkdingApiTestCase, BookmarkFactoryMixin)
|
||||
other_user = self.setup_user()
|
||||
bookmark = self.setup_bookmark(user=other_user)
|
||||
data = {"url": "https://example.com"}
|
||||
url = reverse("bookmarks:bookmark-detail", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[bookmark.id])
|
||||
|
||||
self.patch(url, data, expected_status_code=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
def test_delete_bookmark_requires_authentication(self):
|
||||
bookmark = self.setup_bookmark()
|
||||
url = reverse("bookmarks:bookmark-detail", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-detail", args=[bookmark.id])
|
||||
|
||||
self.delete(url, expected_status_code=status.HTTP_401_UNAUTHORIZED)
|
||||
|
||||
@@ -128,7 +126,7 @@ class BookmarksApiPermissionsTestCase(LinkdingApiTestCase, BookmarkFactoryMixin)
|
||||
|
||||
def test_archive_requires_authentication(self):
|
||||
bookmark = self.setup_bookmark()
|
||||
url = reverse("bookmarks:bookmark-archive", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-archive", args=[bookmark.id])
|
||||
|
||||
self.post(url, expected_status_code=status.HTTP_401_UNAUTHORIZED)
|
||||
|
||||
@@ -137,7 +135,7 @@ class BookmarksApiPermissionsTestCase(LinkdingApiTestCase, BookmarkFactoryMixin)
|
||||
|
||||
def test_unarchive_requires_authentication(self):
|
||||
bookmark = self.setup_bookmark(is_archived=True)
|
||||
url = reverse("bookmarks:bookmark-unarchive", args=[bookmark.id])
|
||||
url = reverse("linkding:bookmark-unarchive", args=[bookmark.id])
|
||||
|
||||
self.post(url, expected_status_code=status.HTTP_401_UNAUTHORIZED)
|
||||
|
||||
@@ -145,7 +143,7 @@ class BookmarksApiPermissionsTestCase(LinkdingApiTestCase, BookmarkFactoryMixin)
|
||||
self.post(url, expected_status_code=status.HTTP_204_NO_CONTENT)
|
||||
|
||||
def test_check_requires_authentication(self):
|
||||
url = reverse("bookmarks:bookmark-check")
|
||||
url = reverse("linkding:bookmark-check")
|
||||
check_url = urllib.parse.quote_plus("https://example.com")
|
||||
|
||||
self.get(
|
||||
@@ -156,7 +154,7 @@ class BookmarksApiPermissionsTestCase(LinkdingApiTestCase, BookmarkFactoryMixin)
|
||||
self.get(f"{url}?url={check_url}", expected_status_code=status.HTTP_200_OK)
|
||||
|
||||
def test_user_profile_requires_authentication(self):
|
||||
url = reverse("bookmarks:user-profile")
|
||||
url = reverse("linkding:user-profile")
|
||||
|
||||
self.get(url, expected_status_code=status.HTTP_401_UNAUTHORIZED)
|
||||
|
||||
@@ -164,6 +162,6 @@ class BookmarksApiPermissionsTestCase(LinkdingApiTestCase, BookmarkFactoryMixin)
|
||||
self.get(url, expected_status_code=status.HTTP_200_OK)
|
||||
|
||||
def test_singlefile_upload_requires_authentication(self):
|
||||
url = reverse("bookmarks:bookmark-singlefile")
|
||||
url = reverse("linkding:bookmark-singlefile")
|
||||
|
||||
self.post(url, expected_status_code=status.HTTP_401_UNAUTHORIZED)
|
||||
|
@@ -65,7 +65,7 @@ class BookmarkListTemplateTest(TestCase, BookmarkFactoryMixin, HtmlTestMixin):
|
||||
count=1,
|
||||
):
|
||||
if base_url is None:
|
||||
base_url = reverse("bookmarks:index")
|
||||
base_url = reverse("linkding:bookmarks.index")
|
||||
details_url = base_url + f"?details={bookmark.id}"
|
||||
self.assertInHTML(
|
||||
f"""
|
||||
@@ -76,7 +76,7 @@ class BookmarkListTemplateTest(TestCase, BookmarkFactoryMixin, HtmlTestMixin):
|
||||
)
|
||||
|
||||
def assertEditLinkCount(self, html: str, bookmark: Bookmark, count=1):
|
||||
edit_url = reverse("bookmarks:edit", args=[bookmark.id])
|
||||
edit_url = reverse("linkding:bookmarks.edit", args=[bookmark.id])
|
||||
self.assertInHTML(
|
||||
f"""
|
||||
<a href="{edit_url}?return_url=/bookmarks">Edit</a>
|
||||
@@ -660,7 +660,9 @@ class BookmarkListTemplateTest(TestCase, BookmarkFactoryMixin, HtmlTestMixin):
|
||||
bookmark = self.setup_bookmark(user=other_user, shared=True)
|
||||
html = self.render_template(context_type=contexts.SharedBookmarkListContext)
|
||||
|
||||
self.assertViewLink(html, bookmark, base_url=reverse("bookmarks:shared"))
|
||||
self.assertViewLink(
|
||||
html, bookmark, base_url=reverse("linkding:bookmarks.shared")
|
||||
)
|
||||
self.assertNoBookmarkActions(html, bookmark)
|
||||
self.assertShareInfo(html, bookmark)
|
||||
|
||||
@@ -952,7 +954,9 @@ class BookmarkListTemplateTest(TestCase, BookmarkFactoryMixin, HtmlTestMixin):
|
||||
self.assertWebArchiveLink(
|
||||
html, "1 week ago", bookmark.web_archive_snapshot_url, link_target="_blank"
|
||||
)
|
||||
self.assertViewLink(html, bookmark, base_url=reverse("bookmarks:shared"))
|
||||
self.assertViewLink(
|
||||
html, bookmark, base_url=reverse("linkding:bookmarks.shared")
|
||||
)
|
||||
self.assertNoBookmarkActions(html, bookmark)
|
||||
self.assertShareInfo(html, bookmark)
|
||||
self.assertMarkAsReadButton(html, bookmark, count=0)
|
||||
|
@@ -12,21 +12,21 @@ class MockUrlConf:
|
||||
class ContextPathTestCase(TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.siteroot_urls = importlib.import_module("siteroot.urls")
|
||||
self.urls_module = importlib.import_module("bookmarks.urls")
|
||||
|
||||
@override_settings(LD_CONTEXT_PATH=None)
|
||||
def tearDown(self):
|
||||
importlib.reload(self.siteroot_urls)
|
||||
importlib.reload(self.urls_module)
|
||||
|
||||
@override_settings(LD_CONTEXT_PATH="linkding/")
|
||||
def test_route_with_context_path(self):
|
||||
module = importlib.reload(self.siteroot_urls)
|
||||
module = importlib.reload(self.urls_module)
|
||||
# pass mock config instead of actual module to prevent caching the
|
||||
# url config in django.urls.reverse
|
||||
urlconf = MockUrlConf(module)
|
||||
test_cases = [
|
||||
("bookmarks:index", "/linkding/bookmarks"),
|
||||
("bookmarks:bookmark-list", "/linkding/api/bookmarks/"),
|
||||
("linkding:bookmarks.index", "/linkding/bookmarks"),
|
||||
("linkding:bookmark-list", "/linkding/api/bookmarks/"),
|
||||
("login", "/linkding/login/"),
|
||||
(
|
||||
"admin:bookmarks_bookmark_changelist",
|
||||
@@ -40,13 +40,13 @@ class ContextPathTestCase(TestCase):
|
||||
|
||||
@override_settings(LD_CONTEXT_PATH="")
|
||||
def test_route_without_context_path(self):
|
||||
module = importlib.reload(self.siteroot_urls)
|
||||
module = importlib.reload(self.urls_module)
|
||||
# pass mock config instead of actual module to prevent caching the
|
||||
# url config in django.urls.reverse
|
||||
urlconf = MockUrlConf(module)
|
||||
test_cases = [
|
||||
("bookmarks:index", "/bookmarks"),
|
||||
("bookmarks:bookmark-list", "/api/bookmarks/"),
|
||||
("linkding:bookmarks.index", "/bookmarks"),
|
||||
("linkding:bookmark-list", "/api/bookmarks/"),
|
||||
("login", "/login/"),
|
||||
("admin:bookmarks_bookmark_changelist", "/admin/bookmarks/bookmark/"),
|
||||
]
|
||||
|
@@ -10,7 +10,7 @@ class CustomCssViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
self.client.force_login(user)
|
||||
|
||||
def test_with_empty_css(self):
|
||||
response = self.client.get(reverse("bookmarks:custom_css"))
|
||||
response = self.client.get(reverse("linkding:custom_css"))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(response["Content-Type"], "text/css")
|
||||
self.assertEqual(response.headers["Cache-Control"], "public, max-age=2592000")
|
||||
@@ -21,7 +21,7 @@ class CustomCssViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
self.user.profile.custom_css = css
|
||||
self.user.profile.save()
|
||||
|
||||
response = self.client.get(reverse("bookmarks:custom_css"))
|
||||
response = self.client.get(reverse("linkding:custom_css"))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(response["Content-Type"], "text/css")
|
||||
self.assertEqual(response.headers["Cache-Control"], "public, max-age=2592000")
|
||||
|
@@ -86,8 +86,8 @@ class ExporterTestCase(TestCase, BookmarkFactoryMixin):
|
||||
"<DD>Example description[linkding-notes]Example notes[/linkding-notes]",
|
||||
'<DT><A HREF="https://example.com/6" ADD_DATE="6" LAST_MODIFIED="66" PRIVATE="0" TOREAD="0" TAGS="">Title 6</A>',
|
||||
"<DD>[linkding-notes]Example notes[/linkding-notes]",
|
||||
'<DT><A HREF="https://example.com/7" ADD_DATE="7" LAST_MODIFIED="77" PRIVATE="1" TOREAD="0" TAGS="linkding:archived">Title 7</A>',
|
||||
'<DT><A HREF="https://example.com/8" ADD_DATE="8" LAST_MODIFIED="88" PRIVATE="1" TOREAD="0" TAGS="tag4,tag5,linkding:archived">Title 8</A>',
|
||||
'<DT><A HREF="https://example.com/7" ADD_DATE="7" LAST_MODIFIED="77" PRIVATE="1" TOREAD="0" TAGS="linkding:bookmarks.archived">Title 7</A>',
|
||||
'<DT><A HREF="https://example.com/8" ADD_DATE="8" LAST_MODIFIED="88" PRIVATE="1" TOREAD="0" TAGS="tag4,tag5,linkding:bookmarks.archived">Title 8</A>',
|
||||
]
|
||||
self.assertIn("\n\r".join(lines), html)
|
||||
|
||||
|
@@ -25,7 +25,7 @@ class ExporterPerformanceTestCase(TestCase, BookmarkFactoryMixin):
|
||||
# capture number of queries
|
||||
context = CaptureQueriesContext(self.get_connection())
|
||||
with context:
|
||||
self.client.get(reverse("bookmarks:settings.export"), follow=True)
|
||||
self.client.get(reverse("linkding:settings.export"), follow=True)
|
||||
|
||||
number_of_queries = context.final_queries
|
||||
|
||||
|
@@ -51,12 +51,12 @@ class FeedsTestCase(TestCase, BookmarkFactoryMixin):
|
||||
self.assertContains(response, expected_item, count=1)
|
||||
|
||||
def test_all_returns_404_for_unknown_feed_token(self):
|
||||
response = self.client.get(reverse("bookmarks:feeds.all", args=["foo"]))
|
||||
response = self.client.get(reverse("linkding:feeds.all", args=["foo"]))
|
||||
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
def test_all_metadata(self):
|
||||
feed_url = reverse("bookmarks:feeds.all", args=[self.token.key])
|
||||
feed_url = reverse("linkding:feeds.all", args=[self.token.key])
|
||||
response = self.client.get(feed_url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
@@ -77,9 +77,7 @@ class FeedsTestCase(TestCase, BookmarkFactoryMixin):
|
||||
self.setup_bookmark(is_archived=True)
|
||||
self.setup_bookmark(is_archived=True)
|
||||
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:feeds.all", args=[self.token.key])
|
||||
)
|
||||
response = self.client.get(reverse("linkding:feeds.all", args=[self.token.key]))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertFeedItems(response, bookmarks)
|
||||
|
||||
@@ -91,20 +89,18 @@ class FeedsTestCase(TestCase, BookmarkFactoryMixin):
|
||||
self.setup_bookmark(unread=True, user=other_user)
|
||||
self.setup_bookmark(unread=True, user=other_user)
|
||||
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:feeds.all", args=[self.token.key])
|
||||
)
|
||||
response = self.client.get(reverse("linkding:feeds.all", args=[self.token.key]))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
self.assertContains(response, "<item>", count=0)
|
||||
|
||||
def test_unread_returns_404_for_unknown_feed_token(self):
|
||||
response = self.client.get(reverse("bookmarks:feeds.unread", args=["foo"]))
|
||||
response = self.client.get(reverse("linkding:feeds.unread", args=["foo"]))
|
||||
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
def test_unread_metadata(self):
|
||||
feed_url = reverse("bookmarks:feeds.unread", args=[self.token.key])
|
||||
feed_url = reverse("linkding:feeds.unread", args=[self.token.key])
|
||||
response = self.client.get(feed_url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
@@ -130,7 +126,7 @@ class FeedsTestCase(TestCase, BookmarkFactoryMixin):
|
||||
]
|
||||
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:feeds.unread", args=[self.token.key])
|
||||
reverse("linkding:feeds.unread", args=[self.token.key])
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertFeedItems(response, unread_bookmarks)
|
||||
@@ -144,19 +140,19 @@ class FeedsTestCase(TestCase, BookmarkFactoryMixin):
|
||||
self.setup_bookmark(unread=True, user=other_user)
|
||||
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:feeds.unread", args=[self.token.key])
|
||||
reverse("linkding:feeds.unread", args=[self.token.key])
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
self.assertContains(response, "<item>", count=0)
|
||||
|
||||
def test_shared_returns_404_for_unknown_feed_token(self):
|
||||
response = self.client.get(reverse("bookmarks:feeds.shared", args=["foo"]))
|
||||
response = self.client.get(reverse("linkding:feeds.shared", args=["foo"]))
|
||||
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
def test_shared_metadata(self):
|
||||
feed_url = reverse("bookmarks:feeds.shared", args=[self.token.key])
|
||||
feed_url = reverse("linkding:feeds.shared", args=[self.token.key])
|
||||
response = self.client.get(feed_url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
@@ -182,18 +178,18 @@ class FeedsTestCase(TestCase, BookmarkFactoryMixin):
|
||||
]
|
||||
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:feeds.shared", args=[self.token.key])
|
||||
reverse("linkding:feeds.shared", args=[self.token.key])
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertFeedItems(response, shared_bookmarks)
|
||||
|
||||
def test_public_shared_does_not_require_auth(self):
|
||||
response = self.client.get(reverse("bookmarks:feeds.public_shared"))
|
||||
response = self.client.get(reverse("linkding:feeds.public_shared"))
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
def test_public_shared_metadata(self):
|
||||
feed_url = reverse("bookmarks:feeds.public_shared")
|
||||
feed_url = reverse("linkding:feeds.public_shared")
|
||||
response = self.client.get(feed_url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
@@ -223,7 +219,7 @@ class FeedsTestCase(TestCase, BookmarkFactoryMixin):
|
||||
self.setup_bookmark(shared=True, user=user1, description="test"),
|
||||
]
|
||||
|
||||
response = self.client.get(reverse("bookmarks:feeds.public_shared"))
|
||||
response = self.client.get(reverse("linkding:feeds.public_shared"))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertFeedItems(response, public_shared_bookmarks)
|
||||
|
||||
@@ -237,7 +233,7 @@ class FeedsTestCase(TestCase, BookmarkFactoryMixin):
|
||||
self.setup_bookmark()
|
||||
self.setup_bookmark()
|
||||
|
||||
feed_url = reverse("bookmarks:feeds.all", args=[self.token.key])
|
||||
feed_url = reverse("linkding:feeds.all", args=[self.token.key])
|
||||
|
||||
url = feed_url + f"?q={bookmark1.title}"
|
||||
response = self.client.get(url)
|
||||
@@ -267,22 +263,20 @@ class FeedsTestCase(TestCase, BookmarkFactoryMixin):
|
||||
self.setup_bookmark(unread=False),
|
||||
|
||||
# without unread parameter
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:feeds.all", args=[self.token.key])
|
||||
)
|
||||
response = self.client.get(reverse("linkding:feeds.all", args=[self.token.key]))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertContains(response, "<item>", count=6)
|
||||
|
||||
# with unread=yes
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:feeds.all", args=[self.token.key]) + "?unread=yes"
|
||||
reverse("linkding:feeds.all", args=[self.token.key]) + "?unread=yes"
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertContains(response, "<item>", count=2)
|
||||
|
||||
# with unread=no
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:feeds.all", args=[self.token.key]) + "?unread=no"
|
||||
reverse("linkding:feeds.all", args=[self.token.key]) + "?unread=no"
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertContains(response, "<item>", count=4)
|
||||
@@ -296,22 +290,20 @@ class FeedsTestCase(TestCase, BookmarkFactoryMixin):
|
||||
self.setup_bookmark(shared=False)
|
||||
|
||||
# without shared parameter
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:feeds.all", args=[self.token.key])
|
||||
)
|
||||
response = self.client.get(reverse("linkding:feeds.all", args=[self.token.key]))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertContains(response, "<item>", count=6)
|
||||
|
||||
# with shared=yes
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:feeds.all", args=[self.token.key]) + "?shared=yes"
|
||||
reverse("linkding:feeds.all", args=[self.token.key]) + "?shared=yes"
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertContains(response, "<item>", count=2)
|
||||
|
||||
# with shared=no
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:feeds.all", args=[self.token.key]) + "?shared=no"
|
||||
reverse("linkding:feeds.all", args=[self.token.key]) + "?shared=no"
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertContains(response, "<item>", count=4)
|
||||
@@ -325,9 +317,7 @@ class FeedsTestCase(TestCase, BookmarkFactoryMixin):
|
||||
),
|
||||
]
|
||||
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:feeds.all", args=[self.token.key])
|
||||
)
|
||||
response = self.client.get(reverse("linkding:feeds.all", args=[self.token.key]))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertFeedItems(response, bookmarks)
|
||||
|
||||
@@ -335,22 +325,20 @@ class FeedsTestCase(TestCase, BookmarkFactoryMixin):
|
||||
self.setup_numbered_bookmarks(200)
|
||||
|
||||
# without limit - defaults to 100
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:feeds.all", args=[self.token.key])
|
||||
)
|
||||
response = self.client.get(reverse("linkding:feeds.all", args=[self.token.key]))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertContains(response, "<item>", count=100)
|
||||
|
||||
# with increased limit
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:feeds.all", args=[self.token.key]) + "?limit=200"
|
||||
reverse("linkding:feeds.all", args=[self.token.key]) + "?limit=200"
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertContains(response, "<item>", count=200)
|
||||
|
||||
# with decreased limit
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:feeds.all", args=[self.token.key]) + "?limit=5"
|
||||
reverse("linkding:feeds.all", args=[self.token.key]) + "?limit=5"
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertContains(response, "<item>", count=5)
|
||||
@@ -359,9 +347,7 @@ class FeedsTestCase(TestCase, BookmarkFactoryMixin):
|
||||
self.setup_bookmark(
|
||||
title="test\n\r\t\0\x08title", description="test\n\r\t\0\x08description"
|
||||
)
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:feeds.all", args=[self.token.key])
|
||||
)
|
||||
response = self.client.get(reverse("linkding:feeds.all", args=[self.token.key]))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertContains(response, "<item>", count=1)
|
||||
self.assertContains(response, f"<title>test\n\r\ttitle</title>", count=1)
|
||||
|
@@ -30,7 +30,7 @@ class FeedsPerformanceTestCase(TestCase, BookmarkFactoryMixin):
|
||||
# capture number of queries
|
||||
context = CaptureQueriesContext(self.get_connection())
|
||||
with context:
|
||||
feed_url = reverse("bookmarks:feeds.all", args=[self.token.key])
|
||||
feed_url = reverse("linkding:feeds.all", args=[self.token.key])
|
||||
self.client.get(feed_url)
|
||||
|
||||
number_of_queries = context.final_queries
|
||||
|
@@ -419,7 +419,7 @@ class ImporterTestCase(TestCase, BookmarkFactoryMixin, ImportTestMixin):
|
||||
def test_archived_state(self):
|
||||
test_html = self.render_html(
|
||||
tags_html="""
|
||||
<DT><A HREF="https://example.com/1" ADD_DATE="1" TAGS="tag1,tag2,linkding:archived">Example title 1</A>
|
||||
<DT><A HREF="https://example.com/1" ADD_DATE="1" TAGS="tag1,tag2,linkding:bookmarks.archived">Example title 1</A>
|
||||
<DD>Example description 1</DD>
|
||||
<DT><A HREF="https://example.com/2" ADD_DATE="1" PRIVATE="1" TAGS="tag1,tag2">Example title 2</A>
|
||||
<DD>Example description 2</DD>
|
||||
|
@@ -14,12 +14,12 @@ class LayoutTestCase(TestCase, BookmarkFactoryMixin, HtmlTestMixin):
|
||||
def test_nav_menu_should_respect_share_profile_setting(self):
|
||||
self.user.profile.enable_sharing = False
|
||||
self.user.profile.save()
|
||||
response = self.client.get(reverse("bookmarks:index"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.index"))
|
||||
html = response.content.decode()
|
||||
|
||||
self.assertInHTML(
|
||||
f"""
|
||||
<a href="{reverse('bookmarks:shared')}" class="menu-link">Shared</a>
|
||||
<a href="{reverse('linkding:bookmarks.shared')}" class="menu-link">Shared</a>
|
||||
""",
|
||||
html,
|
||||
count=0,
|
||||
@@ -27,12 +27,12 @@ class LayoutTestCase(TestCase, BookmarkFactoryMixin, HtmlTestMixin):
|
||||
|
||||
self.user.profile.enable_sharing = True
|
||||
self.user.profile.save()
|
||||
response = self.client.get(reverse("bookmarks:index"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.index"))
|
||||
html = response.content.decode()
|
||||
|
||||
self.assertInHTML(
|
||||
f"""
|
||||
<a href="{reverse('bookmarks:shared')}" class="menu-link">Shared</a>
|
||||
<a href="{reverse('linkding:bookmarks.shared')}" class="menu-link">Shared</a>
|
||||
""",
|
||||
html,
|
||||
count=2,
|
||||
@@ -43,7 +43,7 @@ class LayoutTestCase(TestCase, BookmarkFactoryMixin, HtmlTestMixin):
|
||||
settings.enable_link_prefetch = False
|
||||
settings.save()
|
||||
|
||||
response = self.client.get(reverse("bookmarks:index"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.index"))
|
||||
html = response.content.decode()
|
||||
|
||||
self.assertInHTML(
|
||||
@@ -55,7 +55,7 @@ class LayoutTestCase(TestCase, BookmarkFactoryMixin, HtmlTestMixin):
|
||||
settings.enable_link_prefetch = True
|
||||
settings.save()
|
||||
|
||||
response = self.client.get(reverse("bookmarks:index"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.index"))
|
||||
html = response.content.decode()
|
||||
|
||||
self.assertInHTML(
|
||||
@@ -65,7 +65,7 @@ class LayoutTestCase(TestCase, BookmarkFactoryMixin, HtmlTestMixin):
|
||||
)
|
||||
|
||||
def test_does_not_link_custom_css_when_empty(self):
|
||||
response = self.client.get(reverse("bookmarks:index"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.index"))
|
||||
html = response.content.decode()
|
||||
soup = self.make_soup(html)
|
||||
|
||||
@@ -77,7 +77,7 @@ class LayoutTestCase(TestCase, BookmarkFactoryMixin, HtmlTestMixin):
|
||||
profile.custom_css = "body { background-color: red; }"
|
||||
profile.save()
|
||||
|
||||
response = self.client.get(reverse("bookmarks:index"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.index"))
|
||||
html = response.content.decode()
|
||||
soup = self.make_soup(html)
|
||||
|
||||
@@ -89,12 +89,12 @@ class LayoutTestCase(TestCase, BookmarkFactoryMixin, HtmlTestMixin):
|
||||
profile.custom_css = "body { background-color: red; }"
|
||||
profile.save()
|
||||
|
||||
response = self.client.get(reverse("bookmarks:index"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.index"))
|
||||
html = response.content.decode()
|
||||
soup = self.make_soup(html)
|
||||
|
||||
link = soup.select_one("link[rel='stylesheet'][href*='custom_css']")
|
||||
expected_url = (
|
||||
reverse("bookmarks:custom_css") + f"?hash={profile.custom_css_hash}"
|
||||
reverse("linkding:custom_css") + f"?hash={profile.custom_css_hash}"
|
||||
)
|
||||
self.assertEqual(link["href"], expected_url)
|
||||
|
@@ -2,7 +2,7 @@ from django.test import TestCase, override_settings
|
||||
from django.urls import path, include
|
||||
|
||||
from bookmarks.tests.helpers import BookmarkFactoryMixin, HtmlTestMixin
|
||||
from siteroot.urls import urlpatterns as base_patterns
|
||||
from bookmarks.urls import urlpatterns as base_patterns
|
||||
|
||||
# Register OIDC urls for this test, otherwise login template can not render when OIDC is enabled
|
||||
urlpatterns = base_patterns + [path("oidc/", include("mozilla_django_oidc.urls"))]
|
||||
|
@@ -9,28 +9,28 @@ from bookmarks import utils
|
||||
|
||||
class OidcSupportTest(TestCase):
|
||||
def test_should_not_add_oidc_urls_by_default(self):
|
||||
siteroot_urls = importlib.import_module("siteroot.urls")
|
||||
importlib.reload(siteroot_urls)
|
||||
urls_module = importlib.import_module("bookmarks.urls")
|
||||
importlib.reload(urls_module)
|
||||
oidc_url_found = any(
|
||||
isinstance(urlpattern, URLResolver) and urlpattern.pattern._route == "oidc/"
|
||||
for urlpattern in siteroot_urls.urlpatterns
|
||||
for urlpattern in urls_module.urlpatterns
|
||||
)
|
||||
|
||||
self.assertFalse(oidc_url_found)
|
||||
|
||||
@override_settings(LD_ENABLE_OIDC=True)
|
||||
def test_should_add_oidc_urls_when_enabled(self):
|
||||
siteroot_urls = importlib.import_module("siteroot.urls")
|
||||
importlib.reload(siteroot_urls)
|
||||
urls_module = importlib.import_module("bookmarks.urls")
|
||||
importlib.reload(urls_module)
|
||||
oidc_url_found = any(
|
||||
isinstance(urlpattern, URLResolver) and urlpattern.pattern._route == "oidc/"
|
||||
for urlpattern in siteroot_urls.urlpatterns
|
||||
for urlpattern in urls_module.urlpatterns
|
||||
)
|
||||
|
||||
self.assertTrue(oidc_url_found)
|
||||
|
||||
def test_should_not_add_oidc_authentication_backend_by_default(self):
|
||||
base_settings = importlib.import_module("siteroot.settings.base")
|
||||
base_settings = importlib.import_module("bookmarks.settings.base")
|
||||
importlib.reload(base_settings)
|
||||
|
||||
self.assertListEqual(
|
||||
@@ -40,7 +40,7 @@ class OidcSupportTest(TestCase):
|
||||
|
||||
def test_should_add_oidc_authentication_backend_when_enabled(self):
|
||||
os.environ["LD_ENABLE_OIDC"] = "True"
|
||||
base_settings = importlib.import_module("siteroot.settings.base")
|
||||
base_settings = importlib.import_module("bookmarks.settings.base")
|
||||
importlib.reload(base_settings)
|
||||
|
||||
self.assertListEqual(
|
||||
@@ -54,7 +54,7 @@ class OidcSupportTest(TestCase):
|
||||
|
||||
def test_default_settings(self):
|
||||
os.environ["LD_ENABLE_OIDC"] = "True"
|
||||
base_settings = importlib.import_module("siteroot.settings.base")
|
||||
base_settings = importlib.import_module("bookmarks.settings.base")
|
||||
importlib.reload(base_settings)
|
||||
|
||||
self.assertEqual(True, base_settings.OIDC_VERIFY_SSL)
|
||||
|
@@ -7,7 +7,7 @@ from bookmarks.tests.helpers import BookmarkFactoryMixin
|
||||
|
||||
class RootViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
def test_unauthenticated_user_redirect_to_login_by_default(self):
|
||||
response = self.client.get(reverse("bookmarks:root"))
|
||||
response = self.client.get(reverse("linkding:root"))
|
||||
self.assertRedirects(response, reverse("login"))
|
||||
|
||||
def test_unauthenticated_redirect_to_shared_bookmarks_if_configured_in_global_settings(
|
||||
@@ -17,24 +17,24 @@ class RootViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
settings.landing_page = GlobalSettings.LANDING_PAGE_SHARED_BOOKMARKS
|
||||
settings.save()
|
||||
|
||||
response = self.client.get(reverse("bookmarks:root"))
|
||||
self.assertRedirects(response, reverse("bookmarks:shared"))
|
||||
response = self.client.get(reverse("linkding:root"))
|
||||
self.assertRedirects(response, reverse("linkding:bookmarks.shared"))
|
||||
|
||||
def test_authenticated_user_always_redirected_to_bookmarks(self):
|
||||
self.client.force_login(self.get_or_create_test_user())
|
||||
|
||||
response = self.client.get(reverse("bookmarks:root"))
|
||||
self.assertRedirects(response, reverse("bookmarks:index"))
|
||||
response = self.client.get(reverse("linkding:root"))
|
||||
self.assertRedirects(response, reverse("linkding:bookmarks.index"))
|
||||
|
||||
settings = GlobalSettings.get()
|
||||
settings.landing_page = GlobalSettings.LANDING_PAGE_SHARED_BOOKMARKS
|
||||
settings.save()
|
||||
|
||||
response = self.client.get(reverse("bookmarks:root"))
|
||||
self.assertRedirects(response, reverse("bookmarks:index"))
|
||||
response = self.client.get(reverse("linkding:root"))
|
||||
self.assertRedirects(response, reverse("linkding:bookmarks.index"))
|
||||
|
||||
settings.landing_page = GlobalSettings.LANDING_PAGE_LOGIN
|
||||
settings.save()
|
||||
|
||||
response = self.client.get(reverse("bookmarks:root"))
|
||||
self.assertRedirects(response, reverse("bookmarks:index"))
|
||||
response = self.client.get(reverse("linkding:root"))
|
||||
self.assertRedirects(response, reverse("linkding:bookmarks.index"))
|
||||
|
@@ -25,7 +25,7 @@ class SettingsExportViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
self.setup_bookmark(tags=[self.setup_tag()], is_archived=True)
|
||||
self.setup_bookmark(tags=[self.setup_tag()], is_archived=True)
|
||||
|
||||
response = self.client.get(reverse("bookmarks:settings.export"), follow=True)
|
||||
response = self.client.get(reverse("linkding:settings.export"), follow=True)
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(response["content-type"], "text/plain; charset=UTF-8")
|
||||
@@ -49,7 +49,7 @@ class SettingsExportViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
self.setup_bookmark(tags=[self.setup_tag()], user=other_user),
|
||||
]
|
||||
|
||||
response = self.client.get(reverse("bookmarks:settings.export"), follow=True)
|
||||
response = self.client.get(reverse("linkding:settings.export"), follow=True)
|
||||
|
||||
text = response.content.decode("utf-8")
|
||||
|
||||
@@ -61,10 +61,10 @@ class SettingsExportViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
|
||||
def test_should_check_authentication(self):
|
||||
self.client.logout()
|
||||
response = self.client.get(reverse("bookmarks:settings.export"), follow=True)
|
||||
response = self.client.get(reverse("linkding:settings.export"), follow=True)
|
||||
|
||||
self.assertRedirects(
|
||||
response, reverse("login") + "?next=" + reverse("bookmarks:settings.export")
|
||||
response, reverse("login") + "?next=" + reverse("linkding:settings.export")
|
||||
)
|
||||
|
||||
def test_should_show_hint_when_export_raises_error(self):
|
||||
@@ -72,9 +72,7 @@ class SettingsExportViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
"bookmarks.services.exporter.export_netscape_html"
|
||||
) as mock_export_netscape_html:
|
||||
mock_export_netscape_html.side_effect = Exception("Nope")
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:settings.export"), follow=True
|
||||
)
|
||||
response = self.client.get(reverse("linkding:settings.export"), follow=True)
|
||||
|
||||
self.assertTemplateUsed(response, "settings/general.html")
|
||||
self.assertFormErrorHint(
|
||||
|
@@ -71,24 +71,24 @@ class SettingsGeneralViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
)
|
||||
|
||||
def test_should_render_successfully(self):
|
||||
response = self.client.get(reverse("bookmarks:settings.general"))
|
||||
response = self.client.get(reverse("linkding:settings.general"))
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
def test_should_check_authentication(self):
|
||||
self.client.logout()
|
||||
response = self.client.get(reverse("bookmarks:settings.general"), follow=True)
|
||||
response = self.client.get(reverse("linkding:settings.general"), follow=True)
|
||||
|
||||
self.assertRedirects(
|
||||
response,
|
||||
reverse("login") + "?next=" + reverse("bookmarks:settings.general"),
|
||||
reverse("login") + "?next=" + reverse("linkding:settings.general"),
|
||||
)
|
||||
|
||||
response = self.client.get(reverse("bookmarks:settings.update"), follow=True)
|
||||
response = self.client.get(reverse("linkding:settings.update"), follow=True)
|
||||
|
||||
self.assertRedirects(
|
||||
response,
|
||||
reverse("login") + "?next=" + reverse("bookmarks:settings.update"),
|
||||
reverse("login") + "?next=" + reverse("linkding:settings.update"),
|
||||
)
|
||||
|
||||
def test_update_profile(self):
|
||||
@@ -121,7 +121,7 @@ class SettingsGeneralViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
"collapse_side_panel": True,
|
||||
}
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:settings.update"), form_data, follow=True
|
||||
reverse("linkding:settings.update"), form_data, follow=True
|
||||
)
|
||||
html = response.content.decode()
|
||||
|
||||
@@ -204,7 +204,7 @@ class SettingsGeneralViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
|
||||
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)
|
||||
response = self.client.post(reverse("linkding:settings.update"), form_data)
|
||||
|
||||
self.assertEqual(response.status_code, 422)
|
||||
|
||||
@@ -213,7 +213,7 @@ class SettingsGeneralViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
"theme": UserProfile.THEME_DARK,
|
||||
}
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:settings.update"), form_data, follow=True
|
||||
reverse("linkding:settings.update"), form_data, follow=True
|
||||
)
|
||||
html = response.content.decode()
|
||||
|
||||
@@ -229,21 +229,21 @@ class SettingsGeneralViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
"custom_css": "body { background-color: #000; }",
|
||||
}
|
||||
)
|
||||
self.client.post(reverse("bookmarks:settings.update"), form_data, follow=True)
|
||||
self.client.post(reverse("linkding:settings.update"), form_data, follow=True)
|
||||
self.user.profile.refresh_from_db()
|
||||
|
||||
expected_hash = hashlib.md5(form_data["custom_css"].encode("utf-8")).hexdigest()
|
||||
self.assertEqual(expected_hash, self.user.profile.custom_css_hash)
|
||||
|
||||
form_data["custom_css"] = "body { background-color: #fff; }"
|
||||
self.client.post(reverse("bookmarks:settings.update"), form_data, follow=True)
|
||||
self.client.post(reverse("linkding:settings.update"), form_data, follow=True)
|
||||
self.user.profile.refresh_from_db()
|
||||
|
||||
expected_hash = hashlib.md5(form_data["custom_css"].encode("utf-8")).hexdigest()
|
||||
self.assertEqual(expected_hash, self.user.profile.custom_css_hash)
|
||||
|
||||
form_data["custom_css"] = ""
|
||||
self.client.post(reverse("bookmarks:settings.update"), form_data, follow=True)
|
||||
self.client.post(reverse("linkding:settings.update"), form_data, follow=True)
|
||||
self.user.profile.refresh_from_db()
|
||||
|
||||
self.assertEqual("", self.user.profile.custom_css_hash)
|
||||
@@ -258,14 +258,14 @@ class SettingsGeneralViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
"enable_favicons": True,
|
||||
}
|
||||
)
|
||||
self.client.post(reverse("bookmarks:settings.update"), form_data)
|
||||
self.client.post(reverse("linkding:settings.update"), form_data)
|
||||
|
||||
mock_schedule_bookmarks_without_favicons.assert_called_once_with(self.user)
|
||||
|
||||
# No update scheduled if favicons are already enabled
|
||||
mock_schedule_bookmarks_without_favicons.reset_mock()
|
||||
|
||||
self.client.post(reverse("bookmarks:settings.update"), form_data)
|
||||
self.client.post(reverse("linkding:settings.update"), form_data)
|
||||
|
||||
mock_schedule_bookmarks_without_favicons.assert_not_called()
|
||||
|
||||
@@ -276,7 +276,7 @@ class SettingsGeneralViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
}
|
||||
)
|
||||
|
||||
self.client.post(reverse("bookmarks:settings.update"), form_data)
|
||||
self.client.post(reverse("linkding:settings.update"), form_data)
|
||||
|
||||
mock_schedule_bookmarks_without_favicons.assert_not_called()
|
||||
|
||||
@@ -288,7 +288,7 @@ class SettingsGeneralViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
"refresh_favicons": "",
|
||||
}
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:settings.update"), form_data, follow=True
|
||||
reverse("linkding:settings.update"), form_data, follow=True
|
||||
)
|
||||
html = response.content.decode()
|
||||
|
||||
@@ -302,7 +302,7 @@ class SettingsGeneralViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
tasks, "schedule_refresh_favicons"
|
||||
) as mock_schedule_refresh_favicons:
|
||||
form_data = {}
|
||||
response = self.client.post(reverse("bookmarks:settings.update"), form_data)
|
||||
response = self.client.post(reverse("linkding:settings.update"), form_data)
|
||||
html = response.content.decode()
|
||||
|
||||
mock_schedule_refresh_favicons.assert_not_called()
|
||||
@@ -315,7 +315,7 @@ class SettingsGeneralViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
profile.enable_favicons = True
|
||||
profile.save()
|
||||
|
||||
response = self.client.get(reverse("bookmarks:settings.general"))
|
||||
response = self.client.get(reverse("linkding:settings.general"))
|
||||
html = response.content.decode()
|
||||
|
||||
self.assertInHTML(
|
||||
@@ -333,7 +333,7 @@ class SettingsGeneralViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
profile.enable_favicons = False
|
||||
profile.save()
|
||||
|
||||
response = self.client.get(reverse("bookmarks:settings.general"))
|
||||
response = self.client.get(reverse("linkding:settings.general"))
|
||||
html = response.content.decode()
|
||||
|
||||
self.assertInHTML(
|
||||
@@ -350,7 +350,7 @@ class SettingsGeneralViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
profile.enable_favicons = True
|
||||
profile.save()
|
||||
|
||||
response = self.client.get(reverse("bookmarks:settings.general"))
|
||||
response = self.client.get(reverse("linkding:settings.general"))
|
||||
html = response.content.decode()
|
||||
|
||||
self.assertInHTML(
|
||||
@@ -371,14 +371,14 @@ class SettingsGeneralViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
"enable_preview_images": True,
|
||||
}
|
||||
)
|
||||
self.client.post(reverse("bookmarks:settings.update"), form_data)
|
||||
self.client.post(reverse("linkding:settings.update"), form_data)
|
||||
|
||||
mock_schedule_bookmarks_without_previews.assert_called_once_with(self.user)
|
||||
|
||||
# No update scheduled if favicons are already enabled
|
||||
mock_schedule_bookmarks_without_previews.reset_mock()
|
||||
|
||||
self.client.post(reverse("bookmarks:settings.update"), form_data)
|
||||
self.client.post(reverse("linkding:settings.update"), form_data)
|
||||
|
||||
mock_schedule_bookmarks_without_previews.assert_not_called()
|
||||
|
||||
@@ -389,14 +389,14 @@ class SettingsGeneralViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
}
|
||||
)
|
||||
|
||||
self.client.post(reverse("bookmarks:settings.update"), form_data)
|
||||
self.client.post(reverse("linkding:settings.update"), form_data)
|
||||
|
||||
mock_schedule_bookmarks_without_previews.assert_not_called()
|
||||
|
||||
def test_automatic_html_snapshots_should_be_hidden_when_snapshots_not_supported(
|
||||
self,
|
||||
):
|
||||
response = self.client.get(reverse("bookmarks:settings.general"))
|
||||
response = self.client.get(reverse("linkding:settings.general"))
|
||||
html = response.content.decode()
|
||||
|
||||
self.assertInHTML(
|
||||
@@ -411,7 +411,7 @@ class SettingsGeneralViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
def test_automatic_html_snapshots_should_be_visible_when_snapshots_supported(
|
||||
self,
|
||||
):
|
||||
response = self.client.get(reverse("bookmarks:settings.general"))
|
||||
response = self.client.get(reverse("linkding:settings.general"))
|
||||
html = response.content.decode()
|
||||
|
||||
self.assertInHTML(
|
||||
@@ -423,7 +423,7 @@ class SettingsGeneralViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
)
|
||||
|
||||
def test_about_shows_version_info(self):
|
||||
response = self.client.get(reverse("bookmarks:settings.general"))
|
||||
response = self.client.get(reverse("linkding:settings.general"))
|
||||
html = response.content.decode()
|
||||
|
||||
self.assertInHTML(
|
||||
@@ -478,7 +478,7 @@ class SettingsGeneralViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
"create_missing_html_snapshots": "",
|
||||
}
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:settings.update"), form_data, follow=True
|
||||
reverse("linkding:settings.update"), form_data, follow=True
|
||||
)
|
||||
html = response.content.decode()
|
||||
|
||||
@@ -498,7 +498,7 @@ class SettingsGeneralViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
"create_missing_html_snapshots": "",
|
||||
}
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:settings.update"), form_data, follow=True
|
||||
reverse("linkding:settings.update"), form_data, follow=True
|
||||
)
|
||||
html = response.content.decode()
|
||||
|
||||
@@ -515,7 +515,7 @@ class SettingsGeneralViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
mock_create_missing_html_snapshots.return_value = 5
|
||||
form_data = {}
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:settings.update"), form_data, follow=True
|
||||
reverse("linkding:settings.update"), form_data, follow=True
|
||||
)
|
||||
html = response.content.decode()
|
||||
|
||||
@@ -537,7 +537,7 @@ class SettingsGeneralViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
"guest_profile_user": selectable_user.id,
|
||||
}
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:settings.update"), form_data, follow=True
|
||||
reverse("linkding:settings.update"), form_data, follow=True
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertSuccessMessage(response.content.decode(), "Global settings updated")
|
||||
@@ -553,7 +553,7 @@ class SettingsGeneralViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
"guest_profile_user": "",
|
||||
}
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:settings.update"), form_data, follow=True
|
||||
reverse("linkding:settings.update"), form_data, follow=True
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertSuccessMessage(response.content.decode(), "Global settings updated")
|
||||
@@ -573,7 +573,7 @@ class SettingsGeneralViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
"landing_page": GlobalSettings.LANDING_PAGE_SHARED_BOOKMARKS,
|
||||
}
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:settings.update"), form_data, follow=True
|
||||
reverse("linkding:settings.update"), form_data, follow=True
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertSuccessMessage(
|
||||
@@ -585,11 +585,11 @@ class SettingsGeneralViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
"update_global_settings": "",
|
||||
"landing_page": GlobalSettings.LANDING_PAGE_SHARED_BOOKMARKS,
|
||||
}
|
||||
response = self.client.post(reverse("bookmarks:settings.update"), form_data)
|
||||
response = self.client.post(reverse("linkding:settings.update"), form_data)
|
||||
self.assertEqual(response.status_code, 403)
|
||||
|
||||
def test_global_settings_only_visible_for_superuser(self):
|
||||
response = self.client.get(reverse("bookmarks:settings.general"))
|
||||
response = self.client.get(reverse("linkding:settings.general"))
|
||||
html = response.content.decode()
|
||||
|
||||
self.assertInHTML(
|
||||
@@ -601,7 +601,7 @@ class SettingsGeneralViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
superuser = self.setup_superuser()
|
||||
self.client.force_login(superuser)
|
||||
|
||||
response = self.client.get(reverse("bookmarks:settings.general"))
|
||||
response = self.client.get(reverse("linkding:settings.general"))
|
||||
html = response.content.decode()
|
||||
|
||||
self.assertInHTML(
|
||||
|
@@ -38,12 +38,12 @@ class SettingsImportViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
"bookmarks/tests/resources/simple_valid_import_file.html"
|
||||
) as import_file:
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:settings.import"),
|
||||
reverse("linkding:settings.import"),
|
||||
{"import_file": import_file},
|
||||
follow=True,
|
||||
)
|
||||
|
||||
self.assertRedirects(response, reverse("bookmarks:settings.general"))
|
||||
self.assertRedirects(response, reverse("linkding:settings.general"))
|
||||
self.assertSuccessMessage(
|
||||
response, "3 bookmarks were successfully imported."
|
||||
)
|
||||
@@ -51,16 +51,16 @@ class SettingsImportViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
|
||||
def test_should_check_authentication(self):
|
||||
self.client.logout()
|
||||
response = self.client.get(reverse("bookmarks:settings.import"), follow=True)
|
||||
response = self.client.get(reverse("linkding:settings.import"), follow=True)
|
||||
|
||||
self.assertRedirects(
|
||||
response, reverse("login") + "?next=" + reverse("bookmarks:settings.import")
|
||||
response, reverse("login") + "?next=" + reverse("linkding:settings.import")
|
||||
)
|
||||
|
||||
def test_should_show_hint_if_there_is_no_file(self):
|
||||
response = self.client.post(reverse("bookmarks:settings.import"), follow=True)
|
||||
response = self.client.post(reverse("linkding:settings.import"), follow=True)
|
||||
|
||||
self.assertRedirects(response, reverse("bookmarks:settings.general"))
|
||||
self.assertRedirects(response, reverse("linkding:settings.general"))
|
||||
self.assertNoSuccessMessage(response)
|
||||
self.assertErrorMessage(response, "Please select a file to import.")
|
||||
|
||||
@@ -70,12 +70,12 @@ class SettingsImportViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
"bookmarks/tests/resources/invalid_import_file.png", "rb"
|
||||
) as import_file:
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:settings.import"),
|
||||
reverse("linkding:settings.import"),
|
||||
{"import_file": import_file},
|
||||
follow=True,
|
||||
)
|
||||
|
||||
self.assertRedirects(response, reverse("bookmarks:settings.general"))
|
||||
self.assertRedirects(response, reverse("linkding:settings.general"))
|
||||
self.assertNoSuccessMessage(response)
|
||||
self.assertErrorMessage(
|
||||
response, "An error occurred during bookmark import."
|
||||
@@ -89,12 +89,12 @@ class SettingsImportViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
"bookmarks/tests/resources/simple_valid_import_file_with_one_invalid_bookmark.html"
|
||||
) as import_file:
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:settings.import"),
|
||||
reverse("linkding:settings.import"),
|
||||
{"import_file": import_file},
|
||||
follow=True,
|
||||
)
|
||||
|
||||
self.assertRedirects(response, reverse("bookmarks:settings.general"))
|
||||
self.assertRedirects(response, reverse("linkding:settings.general"))
|
||||
self.assertSuccessMessage(
|
||||
response, "2 bookmarks were successfully imported."
|
||||
)
|
||||
@@ -108,7 +108,7 @@ class SettingsImportViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
"bookmarks/tests/resources/simple_valid_import_file.html"
|
||||
) as import_file:
|
||||
self.client.post(
|
||||
reverse("bookmarks:settings.import"),
|
||||
reverse("linkding:settings.import"),
|
||||
{"import_file": import_file},
|
||||
follow=True,
|
||||
)
|
||||
@@ -124,7 +124,7 @@ class SettingsImportViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
"bookmarks/tests/resources/simple_valid_import_file.html"
|
||||
) as import_file:
|
||||
self.client.post(
|
||||
reverse("bookmarks:settings.import"),
|
||||
reverse("linkding:settings.import"),
|
||||
{"import_file": import_file, "map_private_flag": "on"},
|
||||
follow=True,
|
||||
)
|
||||
|
@@ -13,25 +13,25 @@ class SettingsIntegrationsViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
self.client.force_login(user)
|
||||
|
||||
def test_should_render_successfully(self):
|
||||
response = self.client.get(reverse("bookmarks:settings.integrations"))
|
||||
response = self.client.get(reverse("linkding:settings.integrations"))
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
def test_should_check_authentication(self):
|
||||
self.client.logout()
|
||||
response = self.client.get(
|
||||
reverse("bookmarks:settings.integrations"), follow=True
|
||||
reverse("linkding:settings.integrations"), follow=True
|
||||
)
|
||||
|
||||
self.assertRedirects(
|
||||
response,
|
||||
reverse("login") + "?next=" + reverse("bookmarks:settings.integrations"),
|
||||
reverse("login") + "?next=" + reverse("linkding:settings.integrations"),
|
||||
)
|
||||
|
||||
def test_should_generate_api_token_if_not_exists(self):
|
||||
self.assertEqual(Token.objects.count(), 0)
|
||||
|
||||
self.client.get(reverse("bookmarks:settings.integrations"))
|
||||
self.client.get(reverse("linkding:settings.integrations"))
|
||||
|
||||
self.assertEqual(Token.objects.count(), 1)
|
||||
token = Token.objects.first()
|
||||
@@ -41,14 +41,14 @@ class SettingsIntegrationsViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
Token.objects.get_or_create(user=self.user)
|
||||
self.assertEqual(Token.objects.count(), 1)
|
||||
|
||||
self.client.get(reverse("bookmarks:settings.integrations"))
|
||||
self.client.get(reverse("linkding:settings.integrations"))
|
||||
|
||||
self.assertEqual(Token.objects.count(), 1)
|
||||
|
||||
def test_should_generate_feed_token_if_not_exists(self):
|
||||
self.assertEqual(FeedToken.objects.count(), 0)
|
||||
|
||||
self.client.get(reverse("bookmarks:settings.integrations"))
|
||||
self.client.get(reverse("linkding:settings.integrations"))
|
||||
|
||||
self.assertEqual(FeedToken.objects.count(), 1)
|
||||
token = FeedToken.objects.first()
|
||||
@@ -58,12 +58,12 @@ class SettingsIntegrationsViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
FeedToken.objects.get_or_create(user=self.user)
|
||||
self.assertEqual(FeedToken.objects.count(), 1)
|
||||
|
||||
self.client.get(reverse("bookmarks:settings.integrations"))
|
||||
self.client.get(reverse("linkding:settings.integrations"))
|
||||
|
||||
self.assertEqual(FeedToken.objects.count(), 1)
|
||||
|
||||
def test_should_display_feed_urls(self):
|
||||
response = self.client.get(reverse("bookmarks:settings.integrations"))
|
||||
response = self.client.get(reverse("linkding:settings.integrations"))
|
||||
html = response.content.decode()
|
||||
|
||||
token = FeedToken.objects.first()
|
||||
|
@@ -35,7 +35,7 @@ class ToastsViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
self.create_toast()
|
||||
self.create_toast(acknowledged=True)
|
||||
|
||||
response = self.client.get(reverse("bookmarks:index"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.index"))
|
||||
|
||||
# Should render toasts container
|
||||
self.assertContains(response, '<div class="toasts">')
|
||||
@@ -47,7 +47,7 @@ class ToastsViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
self.create_toast(acknowledged=True)
|
||||
self.create_toast(acknowledged=True)
|
||||
|
||||
response = self.client.get(reverse("bookmarks:index"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.index"))
|
||||
|
||||
# Should not render toasts container
|
||||
self.assertContains(response, '<div class="toasts container grid-lg">', count=0)
|
||||
@@ -63,7 +63,7 @@ class ToastsViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
self.create_toast(user=other_user)
|
||||
self.create_toast(user=other_user)
|
||||
|
||||
response = self.client.get(reverse("bookmarks:index"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.index"))
|
||||
|
||||
# Should not render toasts container
|
||||
self.assertContains(response, '<div class="toasts container grid-lg">', count=0)
|
||||
@@ -72,9 +72,9 @@ class ToastsViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
|
||||
def test_form_tag(self):
|
||||
self.create_toast()
|
||||
expected_form_tag = f'<form action="{reverse("bookmarks:toasts.acknowledge")}?return_url={reverse("bookmarks:index")}" method="post">'
|
||||
expected_form_tag = f'<form action="{reverse("linkding:toasts.acknowledge")}?return_url={reverse("linkding:bookmarks.index")}" method="post">'
|
||||
|
||||
response = self.client.get(reverse("bookmarks:index"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.index"))
|
||||
|
||||
self.assertContains(response, expected_form_tag)
|
||||
|
||||
@@ -87,7 +87,7 @@ class ToastsViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
</div>
|
||||
"""
|
||||
|
||||
response = self.client.get(reverse("bookmarks:index"))
|
||||
response = self.client.get(reverse("linkding:bookmarks.index"))
|
||||
html = response.content.decode()
|
||||
|
||||
self.assertInHTML(expected_toast, html)
|
||||
@@ -96,7 +96,7 @@ class ToastsViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
toast = self.create_toast()
|
||||
|
||||
self.client.post(
|
||||
reverse("bookmarks:toasts.acknowledge"),
|
||||
reverse("linkding:toasts.acknowledge"),
|
||||
{
|
||||
"toast": [toast.id],
|
||||
},
|
||||
@@ -107,8 +107,8 @@ class ToastsViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
|
||||
def test_acknowledge_toast_should_redirect_to_return_url(self):
|
||||
toast = self.create_toast()
|
||||
return_url = reverse("bookmarks:settings.general")
|
||||
acknowledge_url = reverse("bookmarks:toasts.acknowledge")
|
||||
return_url = reverse("linkding:settings.general")
|
||||
acknowledge_url = reverse("linkding:toasts.acknowledge")
|
||||
acknowledge_url = acknowledge_url + "?return_url=" + return_url
|
||||
|
||||
response = self.client.post(
|
||||
@@ -124,13 +124,13 @@ class ToastsViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
toast = self.create_toast()
|
||||
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:toasts.acknowledge"),
|
||||
reverse("linkding:toasts.acknowledge"),
|
||||
{
|
||||
"toast": [toast.id],
|
||||
},
|
||||
)
|
||||
|
||||
self.assertRedirects(response, reverse("bookmarks:index"))
|
||||
self.assertRedirects(response, reverse("linkding:bookmarks.index"))
|
||||
|
||||
@disable_logging
|
||||
def test_acknowledge_toast_should_not_acknowledge_other_users_toast(self):
|
||||
@@ -140,7 +140,7 @@ class ToastsViewTestCase(TestCase, BookmarkFactoryMixin):
|
||||
toast = self.create_toast(user=other_user)
|
||||
|
||||
response = self.client.post(
|
||||
reverse("bookmarks:toasts.acknowledge"),
|
||||
reverse("linkding:toasts.acknowledge"),
|
||||
{
|
||||
"toast": [toast.id],
|
||||
},
|
||||
|
Reference in New Issue
Block a user