class BulkOperationsMixin(object): def setUp(self): self.superuser = create_superuser() self.client.login(username='******', password='******') self.img = create_image() self.image_name = 'test_file.jpg' self.filename = os.path.join(settings.FILE_UPLOAD_TEMP_DIR, self.image_name) self.img.save(self.filename, 'JPEG') self.create_src_and_dst_folders() self.folder = Folder.objects.create(name="root folder", parent=None) self.sub_folder1 = Folder.objects.create(name="sub folder 1", parent=self.folder) self.sub_folder2 = Folder.objects.create(name="sub folder 2", parent=self.folder) self.image_obj = self.create_image(self.src_folder) self.create_file(self.folder) self.create_file(self.folder) self.create_image(self.folder) self.create_image(self.sub_folder1) self.create_file(self.sub_folder1) self.create_file(self.sub_folder1) self.create_image(self.sub_folder2) self.create_image(self.sub_folder2) def tearDown(self): self.client.logout() os.remove(self.filename) for f in File.objects.all(): f.delete() for folder in Folder.objects.all(): folder.delete() def create_src_and_dst_folders(self): self.src_folder = Folder(name="Src", parent=None) self.src_folder.save() self.dst_folder = Folder(name="Dst", parent=None) self.dst_folder.save() def create_image(self, folder, filename=None): filename = filename or 'test_image.jpg' file_obj = django.core.files.File(open(self.filename, 'rb'), name=filename) image_obj = Image.objects.create(owner=self.superuser, original_filename=self.image_name, file=file_obj, folder=folder) image_obj.save() return image_obj def create_file(self, folder, filename=None): filename = filename or 'test_file.dat' file_data = django.core.files.base.ContentFile('some data') file_data.name = filename file_obj = File.objects.create(owner=self.superuser, original_filename=filename, file=file_data, folder=folder) file_obj.save() return file_obj
class BulkOperationsMixin(object): def setUp(self): self.superuser = create_superuser() self.client.login(username='******', password='******') self.img = create_image() self.image_name = 'test_file.jpg' self.filename = os.path.join(os.path.dirname(__file__), self.image_name) self.img.save(self.filename, 'JPEG') self.create_src_and_dst_folders() self.create_image(self.src_folder) def tearDown(self): self.client.logout() os.remove(self.filename) for img in Image.objects.all(): img.delete() for folder in Folder.objects.all(): folder.delete() def create_src_and_dst_folders(self): self.src_folder = Folder(name="Src", parent=None) self.src_folder.save() self.dst_folder = Folder(name="Dst", parent=None) self.dst_folder.save() def create_image(self, folder): file = DjangoFile(open(self.filename), name=self.image_name) self.image_obj = Image.objects.create(owner=self.superuser, original_filename=self.image_name, file=file, folder=folder) self.image_obj.save()
def get_folder(folder): """ get or create folder """ if Folder.objects.filter(name=folder).count() > 0: folder = Folder.objects.get(name=folder) else: folder = Folder(name=folder, parent=None) folder.save() return folder
class BulkOperationsMixin(object): def setUp(self): self.superuser = create_superuser() self.client.login(username='******', password='******') self.img = create_image() self.image_name = 'test_file.jpg' self.filename = os.path.join(os.path.dirname(__file__), self.image_name) self.img.save(self.filename, 'JPEG') self.create_src_and_dst_folders() self.folder = Folder.objects.create(name="root folder", parent=None) self.sub_folder1 = Folder.objects.create(name="sub folder 1", parent=self.folder) self.sub_folder2 = Folder.objects.create(name="sub folder 2", parent=self.folder) self.image_obj = self.create_image(self.src_folder) self.create_file(self.folder) self.create_file(self.folder) self.create_image(self.folder) self.create_image(self.sub_folder1) self.create_file(self.sub_folder1) self.create_file(self.sub_folder1) self.create_image(self.sub_folder2) self.create_image(self.sub_folder2) def tearDown(self): self.client.logout() os.remove(self.filename) for f in File.objects.all(): f.delete() for folder in Folder.objects.all(): folder.delete() def create_src_and_dst_folders(self): self.src_folder = Folder(name="Src", parent=None) self.src_folder.save() self.dst_folder = Folder(name="Dst", parent=None) self.dst_folder.save() def create_image(self, folder, filename=None): filename = filename or 'test_image.jpg' file_obj = django.core.files.File(open(self.filename), name=filename) image_obj = Image.objects.create(owner=self.superuser, original_filename=self.image_name, file=file_obj, folder=folder) image_obj.save() return image_obj def create_file(self, folder, filename=None): filename = filename or 'test_file.dat' file_data = django.core.files.base.ContentFile('some data') file_data.name = filename file_obj = File.objects.create(owner=self.superuser, original_filename=filename, file=file_data, folder=folder) file_obj.save() return file_obj
def create_folder_structure(depth=2, sibling=2, parent=None): """ This method creates a folder structure of the specified depth. * depth: is an integer (default=2) * sibling: is an integer (default=2) * parent: is the folder instance of the parent. """ if depth > 0 and sibling > 0: depth_range = list(range(1, depth+1)) depth_range.reverse() for d in depth_range: for s in range(1,sibling+1): name = "folder: %s -- %s" %(str(d), str(s)) folder = Folder(name=name, parent=parent) folder.save() create_folder_structure(depth=d-1, sibling=sibling, parent=folder)