[Bf-blender-cvs] [971aa5f838] render-layers: unittest: bpy.ops.object.duplicate

Dalai Felinto noreply at git.blender.org
Thu Jan 19 18:28:22 CET 2017


Commit: 971aa5f8380a44c2cf0e9a80f374a048146b237c
Author: Dalai Felinto
Date:   Thu Jan 19 16:48:44 2017 +0100
Branches: render-layers
https://developer.blender.org/rB971aa5f8380a44c2cf0e9a80f374a048146b237c

unittest: bpy.ops.object.duplicate

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

M	tests/python/bl_render_layer.py

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

diff --git a/tests/python/bl_render_layer.py b/tests/python/bl_render_layer.py
index be3b8befcb..fa693a037a 100644
--- a/tests/python/bl_render_layer.py
+++ b/tests/python/bl_render_layer.py
@@ -945,6 +945,72 @@ class UnitsTesting(unittest.TestCase):
         filepath_json = os.path.join(ROOT, 'layers_object_add_torus.json')
         self.do_object_add(filepath_json, 'TORUS')
 
+    def do_copy_object(self, 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_copy_duplicate.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)
+
+            if mode == 'DUPLICATE':
+                # assuming the latest layer is the active layer
+                bpy.ops.object.select_all(action='DESELECT')
+                three_c.select_set(action='SELECT')
+                bpy.ops.object.duplicate()
+
+            elif mode == 'NAMED':
+                bpy.ops.object.add_named(name=three_c.name)
+
+            # 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_copy_object(self):
+        """
+        OBJECT_OT_duplicate
+        """
+        self.do_copy_object('DUPLICATE')
+
+    def test_copy_object_named(self):
+        """
+        OBJECT_OT_add_named
+        """
+        self.do_copy_object('NAMED')
+
 
 # ############################################################
 # Main




More information about the Bf-blender-cvs mailing list