forked from bartvdbraak/blender
76 lines
2.6 KiB
Python
76 lines
2.6 KiB
Python
# ############################################################
|
|
# Importing - Same For All Render Layer Tests
|
|
# ############################################################
|
|
|
|
import unittest
|
|
import os
|
|
import sys
|
|
|
|
from view_layer_common import *
|
|
|
|
|
|
# ############################################################
|
|
# Testing
|
|
# ############################################################
|
|
|
|
class UnitTesting(ViewLayerTesting):
|
|
def test_group_write_load(self):
|
|
"""
|
|
See if saving/loading is working for groups
|
|
"""
|
|
import bpy
|
|
scene = bpy.context.scene
|
|
layer_collection = bpy.context.layer_collection
|
|
|
|
while len(scene.view_layers) > 1:
|
|
scene.view_layers.remove(scene.view_layers[1])
|
|
|
|
# create group
|
|
group = layer_collection.create_group()
|
|
|
|
self.assertEqual(1, len(bpy.data.groups))
|
|
self.assertEqual(1, bpy.data.groups[0].users)
|
|
self.assertEqual(3, len(bpy.data.groups[0].objects))
|
|
|
|
import os
|
|
import tempfile
|
|
with tempfile.TemporaryDirectory() as dirpath:
|
|
filepath = os.path.join(dirpath, 'layers.blend')
|
|
|
|
for i in range(3):
|
|
# save and re-open file
|
|
bpy.ops.wm.save_mainfile('EXEC_DEFAULT', filepath=filepath)
|
|
bpy.ops.wm.open_mainfile('EXEC_DEFAULT', filepath=filepath)
|
|
|
|
self.assertEqual(1, len(bpy.data.groups))
|
|
self.assertEqual(1, bpy.data.groups[0].users)
|
|
self.assertEqual(3, len(bpy.data.groups[0].objects))
|
|
|
|
# empty the group of objects
|
|
group = bpy.data.groups[0]
|
|
while group.objects:
|
|
group.view_layer.collections[0].collection.objects.unlink(group.objects[0])
|
|
|
|
# save and re-open file
|
|
bpy.ops.wm.save_mainfile('EXEC_DEFAULT', filepath=filepath)
|
|
bpy.ops.wm.open_mainfile('EXEC_DEFAULT', filepath=filepath)
|
|
|
|
self.assertEqual(1, len(bpy.data.groups))
|
|
self.assertEqual(0, bpy.data.groups[0].users)
|
|
self.assertEqual(0, len(bpy.data.groups[0].objects))
|
|
|
|
# save and re-open file
|
|
bpy.ops.wm.save_mainfile('EXEC_DEFAULT', filepath=filepath)
|
|
bpy.ops.wm.open_mainfile('EXEC_DEFAULT', filepath=filepath)
|
|
|
|
self.assertEqual(0, len(bpy.data.groups))
|
|
|
|
|
|
# ############################################################
|
|
# Main - Same For All Render Layer Tests
|
|
# ############################################################
|
|
|
|
if __name__ == '__main__':
|
|
UnitTesting._extra_arguments = setup_extra_arguments(__file__)
|
|
unittest.main()
|