Skip to content

Commit d2d613e

Browse files
committed
add test for updating labels
1 parent ea506e5 commit d2d613e

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

unittests/test_folder_admin.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from finder.models.file import FileModel
1515
from finder.models.folder import FolderModel, PinnedFolder, ROOT_FOLDER_NAME
1616
from finder.models.inode import DiscardedInode
17+
from finder.models.filetag import FileTag
1718
from finder.models.permission import AccessControlEntry, Privilege
1819

1920

@@ -624,3 +625,38 @@ def test_copy_inodes(admin_client, admin_user, uploaded_file, sub_folder, princi
624625
expected_names = sorted(f"File #{s}" for s in expected_copied)
625626
assert target_names == expected_names
626627
assert resp_names == expected_names
628+
629+
630+
def test_update_file_tags(admin_client, ambit, principal_kwargs):
631+
admin_url = reverse('admin:finder_inodemodel_change', kwargs={'inode_id': ambit.root_folder.id})
632+
existing_tag = FileTag.objects.create(ambit=ambit, label="Alpha", color='#111111')
633+
stale_tag = FileTag.objects.create(ambit=ambit, label="Stale", color='#222222')
634+
AccessControlEntry.objects.all().delete()
635+
if principal_kwargs:
636+
if 'user' in principal_kwargs:
637+
principal_kwargs['privilege'] = Privilege.FULL
638+
AccessControlEntry.objects.create(inode=ambit.root_folder_id, **principal_kwargs)
639+
640+
payload = {
641+
'tags': [
642+
{'value': existing_tag.id, 'label': "Alpha Renamed", 'color': '#333333'},
643+
{'label': "New Tag", 'color': '#444444'},
644+
],
645+
}
646+
response = admin_client.post(f'{admin_url}/update_tags', json.dumps(payload), content_type='application/json')
647+
if principal_kwargs and not principal_kwargs['privilege'] & Privilege.ADMIN:
648+
assert response.status_code == 403
649+
return
650+
assert response.status_code == 200
651+
response_tags = response.json()['tags']
652+
existing_tag.refresh_from_db()
653+
assert existing_tag.label == "Alpha Renamed"
654+
assert existing_tag.color == '#333333'
655+
assert FileTag.objects.filter(id=stale_tag.id).exists() is False
656+
expected = {
657+
(existing_tag.id, "Alpha Renamed", '#333333'),
658+
(FileTag.objects.get(label="New Tag", ambit=ambit).id, "New Tag", '#444444'),
659+
}
660+
actual = {(entry['value'], entry['label'], entry['color']) for entry in response_tags}
661+
assert actual == expected
662+

0 commit comments

Comments
 (0)