sort tags to make test consistent

This commit is contained in:
Your Name 2022-12-17 17:18:08 -05:00
parent 1e703871b9
commit 3e85c620c5
3 changed files with 21 additions and 16 deletions

View file

@ -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)

View file

@ -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'])

View file

@ -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)