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
|
@staticmethod
|
||||||
def rate_item_by_user(item, user, rating_grade, visibility=0):
|
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}')
|
raise ValueError(f'Invalid rating grade: {rating_grade}')
|
||||||
rating = Rating.objects.filter(owner=user, item=item).first()
|
rating = Rating.objects.filter(owner=user, item=item).first()
|
||||||
if not rating_grade:
|
if not rating_grade:
|
||||||
|
@ -446,12 +446,12 @@ class TagManager:
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def public_tags_for_item(item):
|
def public_tags_for_item(item):
|
||||||
tags = item.tag_set.all().filter(visibility=0).values('title').annotate(frequency=Count('owner')).order_by('-frequency')
|
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
|
@staticmethod
|
||||||
def all_tags_for_user(user):
|
def all_tags_for_user(user):
|
||||||
tags = user.tag_set.all().values('title').annotate(frequency=Count('members')).order_by('-frequency')
|
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
|
@staticmethod
|
||||||
def tag_item_by_user(item, user, tag_titles, default_visibility=0):
|
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)
|
TagManager.add_tag_by_user(item, tag, self.owner, visibility)
|
||||||
|
|
||||||
def get_item_tags(self, item):
|
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)
|
Item.tags = property(TagManager.public_tags_for_item)
|
||||||
|
|
|
@ -82,18 +82,18 @@ class TagTest(TestCase):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def test_user_tag(self):
|
def test_user_tag(self):
|
||||||
t1 = 'sci-fi'
|
t1 = 'tag-1'
|
||||||
t2 = 'private'
|
t2 = 'tag-2'
|
||||||
t3 = 'public'
|
t3 = 'tag-3'
|
||||||
TagManager.tag_item_by_user(self.book1, self.user2, [t1, t3])
|
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])
|
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):
|
def test_tag(self):
|
||||||
t1 = 'sci-fi'
|
t1 = 'tag-1'
|
||||||
t2 = 'private'
|
t2 = 'tag-2'
|
||||||
t3 = 'public'
|
t3 = 'tag-3'
|
||||||
TagManager.add_tag_by_user(self.book1, t3, self.user2)
|
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.user1)
|
||||||
TagManager.add_tag_by_user(self.book1, t1, self.user2)
|
TagManager.add_tag_by_user(self.book1, t1, self.user2)
|
||||||
|
@ -102,7 +102,7 @@ class TagTest(TestCase):
|
||||||
self.assertEqual(self.book1.tags, [t1, t3])
|
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.user1)
|
||||||
TagManager.add_tag_by_user(self.book1, t3, self.user3)
|
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)
|
||||||
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)
|
self.assertEqual(Tag.objects.count(), 6)
|
||||||
|
@ -110,7 +110,7 @@ class TagTest(TestCase):
|
||||||
self.assertEqual(self.user2.tags, [t1, t3])
|
self.assertEqual(self.user2.tags, [t1, t3])
|
||||||
TagManager.add_tag_by_user(self.book2, t3, self.user2)
|
TagManager.add_tag_by_user(self.book2, t3, self.user2)
|
||||||
TagManager.add_tag_by_user(self.movie1, 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):
|
class MarkTest(TestCase):
|
||||||
|
@ -146,4 +146,4 @@ class MarkTest(TestCase):
|
||||||
|
|
||||||
TagManager.tag_item_by_user(self.book1, self.user1, [' Sci-Fi ', ' fic '])
|
TagManager.tag_item_by_user(self.book1, self.user1, [' Sci-Fi ', ' fic '])
|
||||||
mark = Mark(self.user1, self.book1)
|
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)):
|
for user in tqdm(User.objects.filter(is_active=True)):
|
||||||
user.shelf_manager.initialize()
|
user.shelf_manager.initialize()
|
||||||
return
|
return
|
||||||
|
|
||||||
if options['clear']:
|
if options['clear']:
|
||||||
print("Deleting all migrated user pieces")
|
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
|
return
|
||||||
|
|
||||||
types = options['types'] or [GameMark, AlbumMark, MovieMark, BookMark]
|
types = options['types'] or [GameMark, AlbumMark, MovieMark, BookMark]
|
||||||
for typ in types:
|
for typ in types:
|
||||||
print(typ)
|
print(typ)
|
||||||
|
|
Loading…
Add table
Reference in a new issue