[Bf-blender-cvs] [4d998fb] render-layers: unittest: new layer, layer_collection_link/unlink

Dalai Felinto noreply at git.blender.org
Wed Dec 21 19:15:12 CET 2016


Commit: 4d998fb373d04fd4b74bcdfcebc33eb8bd611289
Author: Dalai Felinto
Date:   Wed Dec 21 19:14:44 2016 +0100
Branches: render-layers
https://developer.blender.org/rB4d998fb373d04fd4b74bcdfcebc33eb8bd611289

unittest: new layer, layer_collection_link/unlink

===================================================================

M	tests/python/bl_render_layer.py

===================================================================

diff --git a/tests/python/bl_render_layer.py b/tests/python/bl_render_layer.py
index 0d7919d..b325386 100644
--- a/tests/python/bl_render_layer.py
+++ b/tests/python/bl_render_layer.py
@@ -517,6 +517,90 @@ class UnitsTesting(unittest.TestCase):
         filepath_json = os.path.join(ROOT, 'layers.json')
         self.do_syncing(filepath_json, 'COLLECTION')
 
+    def do_layer_linking(self, filepath_json, link_mode):
+        import bpy
+        import os
+        import tempfile
+        import filecmp
+
+        ROOT = self.get_root()
+        with tempfile.TemporaryDirectory() as dirpath:
+            filepath_layers = os.path.join(ROOT, 'layers.blend')
+
+            # open file
+            bpy.ops.wm.open_mainfile('EXEC_DEFAULT', filepath=filepath_layers)
+
+            # create sub-collections
+            three_b = bpy.data.objects.get('T.3b')
+            three_c = bpy.data.objects.get('T.3c')
+
+            scene = bpy.context.scene
+
+            subzero = scene.master_collection.collections['1'].collections.new('sub-zero')
+            scorpion = subzero.collections.new('scorpion')
+
+            # test linking sync
+            subzero.objects.link(three_b)
+            scorpion.objects.link(three_c)
+
+            # test unlinking sync
+            layer = scene.render_layers.new('Fresh new Layer')
+
+            if link_mode in {'COLLECTION_LINK', 'COLLECTION_UNLINK'}:
+                collection = layer.collections.link(subzero)
+
+            if link_mode == 'COLLECTION_UNLINK':
+                initial_collection = layer.collections['Master Collection']
+                collection = layer.collections.unlink(initial_collection)
+
+            # save file
+            filepath_nested = os.path.join(dirpath, 'nested.blend')
+            bpy.ops.wm.save_mainfile('EXEC_DEFAULT', filepath=filepath_nested)
+
+            # get the generated json
+            datas = query_scene(filepath_nested, 'Main', (get_scene_collections, get_layers))
+            self.assertTrue(datas, "Data is not valid")
+
+            filepath_nested_json = os.path.join(dirpath, "nested.json")
+            with open(filepath_nested_json, "w") as f:
+                for data in datas:
+                    f.write(dump(data))
+
+            self.assertTrue(compare_files(
+                filepath_nested_json,
+                filepath_json,
+                ),
+                "Scene dump files differ")
+
+    def test_syncing_layer_new(self):
+        """
+        See if the creation of new layers is going well
+        """
+        import os
+        ROOT = self.get_root()
+        filepath_json = os.path.join(ROOT, 'layers_new_layer.json')
+        self.do_layer_linking(filepath_json, 'LAYER_NEW')
+
+    def test_syncing_layer_collection_link(self):
+        """
+        See if the creation of new layers is going well
+        And linking a new scene collection in the layer works
+        """
+        import os
+        ROOT = self.get_root()
+        filepath_json = os.path.join(ROOT, 'layers_layer_collection_link.json')
+        self.do_layer_linking(filepath_json, 'COLLECTION_LINK')
+
+    def test_syncing_layer_collection_unlink(self):
+        """
+        See if the creation of new layers is going well
+        And unlinking the origin scene collection works
+        """
+        import os
+        ROOT = self.get_root()
+        filepath_json = os.path.join(ROOT, 'layers_layer_collection_unlink.json')
+        self.do_layer_linking(filepath_json, 'COLLECTION_UNLINK')
+
 
 # ############################################################
 # Main




More information about the Bf-blender-cvs mailing list