sort tags to make test consistent
This commit is contained in:
parent
1e703871b9
commit
3e85c620c5
3 changed files with 21 additions and 16 deletions
|
@ -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)
|
||||
|
|
|
@ -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'])
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Add table
Reference in a new issue