[Bf-blender-cvs] [66bc061] render-layers: unittest: object_add

Dalai Felinto noreply at git.blender.org
Fri Dec 23 19:26:05 CET 2016


Commit: 66bc0616fcf38327033415f1e282a1c9a38fba07
Author: Dalai Felinto
Date:   Fri Dec 23 18:17:06 2016 +0100
Branches: render-layers
https://developer.blender.org/rB66bc0616fcf38327033415f1e282a1c9a38fba07

unittest: object_add

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

M	tests/python/bl_render_layer.py

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

diff --git a/tests/python/bl_render_layer.py b/tests/python/bl_render_layer.py
index 3d15b09..6330ed6 100644
--- a/tests/python/bl_render_layer.py
+++ b/tests/python/bl_render_layer.py
@@ -645,6 +645,95 @@ class UnitsTesting(unittest.TestCase):
                     "Collection index mismatch: [{0}] : {1} != {2}".format(
                         i, name, layer.collections.active.name))
 
+    def do_object_add(self, filepath_json, add_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')
+            filepath_json = os.path.join(ROOT, 'layers_object_add.json')
+
+            # 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')
+            subzero.objects.link(three_b)
+            scorpion.objects.link(three_c)
+            layer = scene.render_layers.new('Fresh new Layer')
+            layer.collections.link(subzero)
+
+            # change active collection
+            layer.collections.active_index = 3
+            self.assertTrue(layer.collections.active.name == 'scorpion', "Run: test_syncing_object_add")
+
+            # add new objects
+            if add_mode == 'EMPTY':
+                bpy.ops.object.add() # 'Empty'
+
+            elif add_mode == 'CYLINDER':
+                bpy.ops.mesh.primitive_cylinder_add() # 'Cylinder'
+
+            elif add_mode == 'TORUS':
+                bpy.ops.mesh.primitive_torus_add() # 'Torus'
+
+            # save file
+            filepath_objects = os.path.join(dirpath, 'objects.blend')
+            bpy.ops.wm.save_mainfile('EXEC_DEFAULT', filepath=filepath_objects)
+
+            # get the generated json
+            datas = query_scene(filepath_objects, 'Main', (get_scene_collections, get_layers))
+            self.assertTrue(datas, "Data is not valid")
+
+            filepath_objects_json = os.path.join(dirpath, "objects.json")
+            with open(filepath_objects_json, "w") as f:
+                for data in datas:
+                    f.write(dump(data))
+
+            self.assertTrue(compare_files(
+                filepath_objects_json,
+                filepath_json,
+                ),
+                "Scene dump files differ")
+
+    def test_syncing_object_add_empty(self):
+        """
+        See if new objects are added to the correct collection
+        bpy.ops.object.add()
+        """
+        import os
+        ROOT = self.get_root()
+        filepath_json = os.path.join(ROOT, 'layers_object_add_empty.json')
+        self.do_object_add(filepath_json, 'EMPTY')
+
+    def test_syncing_object_add_cylinder(self):
+        """
+        See if new objects are added to the correct collection
+        bpy.ops.mesh.primitive_cylinder_add()
+        """
+        import os
+        ROOT = self.get_root()
+        filepath_json = os.path.join(ROOT, 'layers_object_add_cylinder.json')
+        self.do_object_add(filepath_json, 'CYLINDER')
+
+    def test_syncing_object_add_torus(self):
+        """
+        See if new objects are added to the correct collection
+        bpy.ops.mesh.primitive_torus_add()
+        """
+        import os
+        ROOT = self.get_root()
+        filepath_json = os.path.join(ROOT, 'layers_object_add_torus.json')
+        self.do_object_add(filepath_json, 'TORUS')
+
 
 # ############################################################
 # Main




More information about the Bf-blender-cvs mailing list