From cb0301fd9e55bc5bb4eb50ae3800a9a5d0168145 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sascha=20I=C3=9Fbr=C3=BCcker?= Date: Tue, 10 Sep 2024 21:06:57 +0200 Subject: [PATCH] Fix inconsistent tag order in bookmarks (#819) --- bookmarks/models.py | 3 ++- bookmarks/tests/test_bookmarks_list_template.py | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/bookmarks/models.py b/bookmarks/models.py index 42acfaa..a8d5a81 100644 --- a/bookmarks/models.py +++ b/bookmarks/models.py @@ -84,7 +84,8 @@ class Bookmark(models.Model): @property def tag_names(self): - return [tag.name for tag in self.tags.all()] + names = [tag.name for tag in self.tags.all()] + return sorted(names) def __str__(self): return self.resolved_title + " (" + self.url[:30] + "...)" diff --git a/bookmarks/tests/test_bookmarks_list_template.py b/bookmarks/tests/test_bookmarks_list_template.py index a8658f4..c6c4d75 100644 --- a/bookmarks/tests/test_bookmarks_list_template.py +++ b/bookmarks/tests/test_bookmarks_list_template.py @@ -457,6 +457,22 @@ class BookmarkListTemplateTest(TestCase, BookmarkFactoryMixin, HtmlTestMixin): style = bookmark_list["style"] self.assertIn("--ld-bookmark-description-max-lines:3;", style) + def test_bookmark_tag_ordering(self): + bookmark = self.setup_bookmark() + tag3 = self.setup_tag(name="tag3") + tag1 = self.setup_tag(name="tag1") + tag2 = self.setup_tag(name="tag2") + bookmark.tags.add(tag3, tag1, tag2) + + html = self.render_template() + soup = self.make_soup(html) + tags = soup.select_one(".tags") + tag_links = tags.find_all("a") + self.assertEqual(len(tag_links), 3) + self.assertEqual(tag_links[0].text, "#tag1") + self.assertEqual(tag_links[1].text, "#tag2") + self.assertEqual(tag_links[2].text, "#tag3") + def test_should_render_web_archive_link_with_absolute_date_setting(self): bookmark = self.setup_date_format_test( UserProfile.BOOKMARK_DATE_DISPLAY_ABSOLUTE,