def test_validate_no_duplicate_folders_on_move(self):
"""Create the following folder hierarchy:
root
|
|--foo
| |-bar
|
|--bar
and try to move the owter bar in foo. This has to fail since it would result
in two folders with the same name and parent.
"""
root = Folder.objects.create(name='root', owner=self.superuser)
foo = Folder.objects.create(name='foo', parent=root, owner=self.superuser)
bar = Folder.objects.create(name='bar', parent=root, owner=self.superuser)
foos_bar = Folder.objects.create(name='bar', parent=foo, owner=self.superuser)
url = reverse('admin:filer-directory_listing', kwargs={
'folder_id': root.pk,
})
response = self.client.post(url, {
'action': 'move_files_and_folders',
'post': 'yes',
'destination': foo.pk,
helpers.ACTION_CHECKBOX_NAME: 'folder-%d' % (bar.pk,),
})
# refresh from db and validate that it hasn't been moved
bar = Folder.objects.get(pk=bar.pk)
self.assertEqual(bar.parent.pk, root.pk)
# TODO: Delete/refactor, deprecated since clipboard is deprecated
# def test_move_to_clipboard_action(self):
# # TODO: Test recursive (files and folders tree) move
#
# self.assertEqual(self.src_folder.files.count(), 1)
# self.assertEqual(self.dst_folder.files.count(), 0)
# url = reverse('admin:filer-directory_listing', kwargs={
# 'folder_id': self.src_folder.id,
# })
# response = self.client.post(url, {
# 'action': 'move_to_clipboard',
# helpers.ACTION_CHECKBOX_NAME: 'file-%d' % (self.image_obj.id,),
# })
# self.assertEqual(self.src_folder.files.count(), 0)
# self.assertEqual(self.dst_folder.files.count(), 0)
# clipboard = Clipboard.objects.get(user=self.superuser)
# self.assertEqual(clipboard.files.count(), 1)
# tools.move_files_from_clipboard_to_folder(clipboard, self.src_folder)
# tools.discard_clipboard(clipboard)
# self.assertEqual(clipboard.files.count(), 0)
# self.assertEqual(self.src_folder.files.count(), 1)
评论列表
文章目录