From 3e85c620c5efa9646af79eef22810ebb35c9fe97 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sat, 17 Dec 2022 17:18:08 -0500 Subject: [PATCH] sort tags to make test consistent --- journal/models.py | 8 +++---- journal/tests.py | 22 +++++++++---------- legacy/management/commands/migrate_journal.py | 7 +++++- 3 files changed, 21 insertions(+), 16 deletions(-) diff --git a/journal/models.py b/journal/models.py index 267a5010..cb51e78b 100644 --- a/journal/models.py +++ b/journal/models.py @@ -102,7 +102,7 @@ class Rating(Content): @staticmethod def rate_item_by_user(item, user, rating_grade, visibility=0): - if not rating_grade and (rating_grade < 1 or rating_grade > 10): + if rating_grade and (rating_grade < 1 or rating_grade > 10): raise ValueError(f'Invalid rating grade: {rating_grade}') rating = Rating.objects.filter(owner=user, item=item).first() if not rating_grade: @@ -446,12 +446,12 @@ class TagManager: @staticmethod def public_tags_for_item(item): tags = item.tag_set.all().filter(visibility=0).values('title').annotate(frequency=Count('owner')).order_by('-frequency') - return list(map(lambda t: t['title'], tags)) + return sorted(list(map(lambda t: t['title'], tags))) @staticmethod def all_tags_for_user(user): tags = user.tag_set.all().values('title').annotate(frequency=Count('members')).order_by('-frequency') - return list(map(lambda t: t['title'], tags)) + return sorted(list(map(lambda t: t['title'], tags))) @staticmethod def tag_item_by_user(item, user, tag_titles, default_visibility=0): @@ -489,7 +489,7 @@ class TagManager: TagManager.add_tag_by_user(item, tag, self.owner, visibility) def get_item_tags(self, item): - return [m['_tag__title'] for m in TagMember.objects.filter(_tag__owner=self.owner, item=item).values('_tag__title')] + return sorted([m['_tag__title'] for m in TagMember.objects.filter(_tag__owner=self.owner, item=item).values('_tag__title')]) Item.tags = property(TagManager.public_tags_for_item) diff --git a/journal/tests.py b/journal/tests.py index b15f08ee..013239da 100644 --- a/journal/tests.py +++ b/journal/tests.py @@ -82,18 +82,18 @@ class TagTest(TestCase): pass def test_user_tag(self): - t1 = 'sci-fi' - t2 = 'private' - t3 = 'public' + t1 = 'tag-1' + t2 = 'tag-2' + t3 = 'tag-3' TagManager.tag_item_by_user(self.book1, self.user2, [t1, t3]) - self.assertEqual(self.book1.tags.sort(), [t1, t3].sort()) + self.assertEqual(self.book1.tags, [t1, t3]) TagManager.tag_item_by_user(self.book1, self.user2, [t2, t3]) - self.assertEqual(self.book1.tags.sort(), [t3, t2].sort()) + self.assertEqual(self.book1.tags, [t2, t3]) def test_tag(self): - t1 = 'sci-fi' - t2 = 'private' - t3 = 'public' + t1 = 'tag-1' + t2 = 'tag-2' + t3 = 'tag-3' TagManager.add_tag_by_user(self.book1, t3, self.user2) TagManager.add_tag_by_user(self.book1, t1, self.user1) TagManager.add_tag_by_user(self.book1, t1, self.user2) @@ -102,7 +102,7 @@ class TagTest(TestCase): self.assertEqual(self.book1.tags, [t1, t3]) TagManager.add_tag_by_user(self.book1, t3, self.user1) TagManager.add_tag_by_user(self.book1, t3, self.user3) - self.assertEqual(self.book1.tags, [t3, t1]) + self.assertEqual(self.book1.tags, [t1, t3]) TagManager.add_tag_by_user(self.book1, t3, self.user3) TagManager.add_tag_by_user(self.book1, t3, self.user3) self.assertEqual(Tag.objects.count(), 6) @@ -110,7 +110,7 @@ class TagTest(TestCase): self.assertEqual(self.user2.tags, [t1, t3]) TagManager.add_tag_by_user(self.book2, t3, self.user2) TagManager.add_tag_by_user(self.movie1, t3, self.user2) - self.assertEqual(self.user2.tags, [t3, t1]) + self.assertEqual(self.user2.tags, [t1, t3]) class MarkTest(TestCase): @@ -146,4 +146,4 @@ class MarkTest(TestCase): TagManager.tag_item_by_user(self.book1, self.user1, [' Sci-Fi ', ' fic ']) mark = Mark(self.user1, self.book1) - self.assertEqual(mark.tags, ['sci-fi', 'fic']) + self.assertEqual(mark.tags, ['fic', 'sci-fi']) diff --git a/legacy/management/commands/migrate_journal.py b/legacy/management/commands/migrate_journal.py index 379863ec..a12b2d94 100644 --- a/legacy/management/commands/migrate_journal.py +++ b/legacy/management/commands/migrate_journal.py @@ -68,10 +68,15 @@ class Command(BaseCommand): for user in tqdm(User.objects.filter(is_active=True)): user.shelf_manager.initialize() return + if options['clear']: print("Deleting all migrated user pieces") - Piece.objects.all().delete() + # Piece.objects.all().delete() + for cls in [Review, Comment, Rating, Tag, ShelfLogEntry, ShelfMember, Shelf]: # Collection + print(cls) + cls.objects.all().delete() return + types = options['types'] or [GameMark, AlbumMark, MovieMark, BookMark] for typ in types: print(typ)