Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'tests/python/render_layer')
-rw-r--r--tests/python/render_layer/CMakeLists.txt2
-rw-r--r--tests/python/render_layer/render_layer_common.py9
-rw-r--r--tests/python/render_layer/test_evaluation_selectability_a.py1
-rw-r--r--tests/python/render_layer/test_evaluation_selectability_b.py1
-rw-r--r--tests/python/render_layer/test_evaluation_selectability_c.py1
-rw-r--r--tests/python/render_layer/test_evaluation_selectability_d.py1
-rw-r--r--tests/python/render_layer/test_evaluation_selectability_e.py1
-rw-r--r--tests/python/render_layer/test_evaluation_visibility_a.py1
-rw-r--r--tests/python/render_layer/test_evaluation_visibility_b.py1
-rw-r--r--tests/python/render_layer/test_evaluation_visibility_c.py1
-rw-r--r--tests/python/render_layer/test_evaluation_visibility_d.py1
-rw-r--r--tests/python/render_layer/test_evaluation_visibility_e.py1
-rw-r--r--tests/python/render_layer/test_evaluation_visibility_f.py1
-rw-r--r--tests/python/render_layer/test_object_copy.py1
-rw-r--r--tests/python/render_layer/test_object_link_b.py1
-rw-r--r--tests/python/render_layer/test_operator_context.py4
-rw-r--r--tests/python/render_layer/test_scene_copy_d.py2
-rw-r--r--tests/python/render_layer/test_scene_copy_f.py94
-rw-r--r--tests/python/render_layer/test_scene_delete.py39
19 files changed, 161 insertions, 2 deletions
diff --git a/tests/python/render_layer/CMakeLists.txt b/tests/python/render_layer/CMakeLists.txt
index 526b169bc3d..5ff985073e3 100644
--- a/tests/python/render_layer/CMakeLists.txt
+++ b/tests/python/render_layer/CMakeLists.txt
@@ -170,4 +170,6 @@ RENDER_LAYER_TEST(scene_copy_b)
RENDER_LAYER_TEST(scene_copy_c)
RENDER_LAYER_TEST(scene_copy_d)
RENDER_LAYER_TEST(scene_copy_e)
+RENDER_LAYER_TEST(scene_copy_f)
+RENDER_LAYER_TEST(scene_delete)
RENDER_LAYER_TEST(scene_write_read)
diff --git a/tests/python/render_layer/render_layer_common.py b/tests/python/render_layer/render_layer_common.py
index f6e16459ed3..adc32f062ea 100644
--- a/tests/python/render_layer/render_layer_common.py
+++ b/tests/python/render_layer/render_layer_common.py
@@ -55,9 +55,15 @@ def get_layer(layer):
name = layer.get(b'name')
data['name'] = name
- data['active_object'] = layer.get((b'basact', b'object', b'id', b'name'))[2:]
data['engine'] = layer.get(b'engine')
+ active_base = layer.get_pointer(b'basact')
+ if active_base:
+ ob = active_base.get_pointer(b'object')
+ data['active_object'] = ob.get((b'id', b'name'))[2:]
+ else:
+ data['active_object'] = ""
+
objects = []
for link in linkdata_iter(layer, b'object_bases'):
ob = link.get_pointer(b'object')
@@ -747,6 +753,7 @@ class Clay:
layer = self._scene.render_layers.new('Evaluation Test')
layer.collections.unlink(layer.collections[0])
+ self._scene.render_layers.active = layer
bpy.context.workspace.render_layer = layer
# remove all other layers
diff --git a/tests/python/render_layer/test_evaluation_selectability_a.py b/tests/python/render_layer/test_evaluation_selectability_a.py
index 6faebac79aa..393f406eefc 100644
--- a/tests/python/render_layer/test_evaluation_selectability_a.py
+++ b/tests/python/render_layer/test_evaluation_selectability_a.py
@@ -26,6 +26,7 @@ class UnitTesting(RenderLayerTesting):
layer = scene.render_layers.new('Selectability Test')
layer.collections.unlink(layer.collections[0])
+ scene.render_layers.active = layer
workspace.render_layer = layer
scene_collection_mom = scene.master_collection.collections.new("Mom")
diff --git a/tests/python/render_layer/test_evaluation_selectability_b.py b/tests/python/render_layer/test_evaluation_selectability_b.py
index f2a11865d09..ea05710ebcf 100644
--- a/tests/python/render_layer/test_evaluation_selectability_b.py
+++ b/tests/python/render_layer/test_evaluation_selectability_b.py
@@ -26,6 +26,7 @@ class UnitTesting(RenderLayerTesting):
layer = scene.render_layers.new('Selectability Test')
layer.collections.unlink(layer.collections[0])
+ scene.render_layers.active = layer
workspace.render_layer = layer
scene_collection_mom = scene.master_collection.collections.new("Mom")
diff --git a/tests/python/render_layer/test_evaluation_selectability_c.py b/tests/python/render_layer/test_evaluation_selectability_c.py
index 5ec6d6e7d9c..8487ee1a8af 100644
--- a/tests/python/render_layer/test_evaluation_selectability_c.py
+++ b/tests/python/render_layer/test_evaluation_selectability_c.py
@@ -26,6 +26,7 @@ class UnitTesting(RenderLayerTesting):
layer = scene.render_layers.new('Selectability Test')
layer.collections.unlink(layer.collections[0])
+ scene.render_layers.active = layer
workspace.render_layer = layer
scene_collection_mom = scene.master_collection.collections.new("Mom")
diff --git a/tests/python/render_layer/test_evaluation_selectability_d.py b/tests/python/render_layer/test_evaluation_selectability_d.py
index 3ce9c07c907..b2a924dd6bc 100644
--- a/tests/python/render_layer/test_evaluation_selectability_d.py
+++ b/tests/python/render_layer/test_evaluation_selectability_d.py
@@ -26,6 +26,7 @@ class UnitTesting(RenderLayerTesting):
layer = scene.render_layers.new('Selectability Test')
layer.collections.unlink(layer.collections[0])
+ scene.render_layers.active = layer
workspace.render_layer = layer
scene_collection_mom = scene.master_collection.collections.new("Mom")
diff --git a/tests/python/render_layer/test_evaluation_selectability_e.py b/tests/python/render_layer/test_evaluation_selectability_e.py
index df308845292..70ede58cb9e 100644
--- a/tests/python/render_layer/test_evaluation_selectability_e.py
+++ b/tests/python/render_layer/test_evaluation_selectability_e.py
@@ -26,6 +26,7 @@ class UnitTesting(RenderLayerTesting):
layer = scene.render_layers.new('Selectability Test')
layer.collections.unlink(layer.collections[0])
+ scene.render_layers.active = layer
workspace.render_layer = layer
scene_collection_mom = scene.master_collection.collections.new("Mom")
diff --git a/tests/python/render_layer/test_evaluation_visibility_a.py b/tests/python/render_layer/test_evaluation_visibility_a.py
index a3a6bb261f5..b9f57539330 100644
--- a/tests/python/render_layer/test_evaluation_visibility_a.py
+++ b/tests/python/render_layer/test_evaluation_visibility_a.py
@@ -26,6 +26,7 @@ class UnitTesting(RenderLayerTesting):
layer = scene.render_layers.new('Visibility Test')
layer.collections.unlink(layer.collections[0])
+ scene.render_layers.active = layer
workspace.render_layer = layer
scene_collection_mom = scene.master_collection.collections.new("Mom")
diff --git a/tests/python/render_layer/test_evaluation_visibility_b.py b/tests/python/render_layer/test_evaluation_visibility_b.py
index 4f81cd540e2..712cc9bd277 100644
--- a/tests/python/render_layer/test_evaluation_visibility_b.py
+++ b/tests/python/render_layer/test_evaluation_visibility_b.py
@@ -26,6 +26,7 @@ class UnitTesting(RenderLayerTesting):
layer = scene.render_layers.new('Visibility Test')
layer.collections.unlink(layer.collections[0])
+ scene.render_layers.active = layer
workspace.render_layer = layer
scene_collection_mom = scene.master_collection.collections.new("Mom")
diff --git a/tests/python/render_layer/test_evaluation_visibility_c.py b/tests/python/render_layer/test_evaluation_visibility_c.py
index 6b88f6e3c3a..5e378fb07e3 100644
--- a/tests/python/render_layer/test_evaluation_visibility_c.py
+++ b/tests/python/render_layer/test_evaluation_visibility_c.py
@@ -26,6 +26,7 @@ class UnitTesting(RenderLayerTesting):
layer = scene.render_layers.new('Visibility Test')
layer.collections.unlink(layer.collections[0])
+ scene.render_layers.active = layer
workspace.render_layer = layer
scene_collection_mom = scene.master_collection.collections.new("Mom")
diff --git a/tests/python/render_layer/test_evaluation_visibility_d.py b/tests/python/render_layer/test_evaluation_visibility_d.py
index b19166bd750..e4f0957bd26 100644
--- a/tests/python/render_layer/test_evaluation_visibility_d.py
+++ b/tests/python/render_layer/test_evaluation_visibility_d.py
@@ -26,6 +26,7 @@ class UnitTesting(RenderLayerTesting):
layer = scene.render_layers.new('Visibility Test')
layer.collections.unlink(layer.collections[0])
+ scene.render_layers.active = layer
workspace.render_layer = layer
scene_collection_mom = scene.master_collection.collections.new("Mom")
diff --git a/tests/python/render_layer/test_evaluation_visibility_e.py b/tests/python/render_layer/test_evaluation_visibility_e.py
index f9f11cb8f23..33c6d7be111 100644
--- a/tests/python/render_layer/test_evaluation_visibility_e.py
+++ b/tests/python/render_layer/test_evaluation_visibility_e.py
@@ -26,6 +26,7 @@ class UnitTesting(RenderLayerTesting):
layer = scene.render_layers.new('Visibility Test')
layer.collections.unlink(layer.collections[0])
+ scene.render_layers.active = layer
workspace.render_layer = layer
scene_collection_mom = scene.master_collection.collections.new("Mom")
diff --git a/tests/python/render_layer/test_evaluation_visibility_f.py b/tests/python/render_layer/test_evaluation_visibility_f.py
index 497087cb9ca..66948b343cb 100644
--- a/tests/python/render_layer/test_evaluation_visibility_f.py
+++ b/tests/python/render_layer/test_evaluation_visibility_f.py
@@ -26,6 +26,7 @@ class UnitTesting(RenderLayerTesting):
layer = scene.render_layers.new('Visibility Test')
layer.collections.unlink(layer.collections[0])
+ scene.render_layers.active = layer
workspace.render_layer = layer
scene_collection_mom = scene.master_collection.collections.new("Mom")
diff --git a/tests/python/render_layer/test_object_copy.py b/tests/python/render_layer/test_object_copy.py
index 69e05d46140..1e6e9e5b889 100644
--- a/tests/python/render_layer/test_object_copy.py
+++ b/tests/python/render_layer/test_object_copy.py
@@ -42,6 +42,7 @@ class UnitTesting(RenderLayerTesting):
layer.collections.link(subzero)
scene.render_layers.active_index = len(scene.render_layers) - 1
+ bpy.context.workspace.render_layer = bpy.context.scene.render_layers['Fresh new Layer']
if mode == 'DUPLICATE':
# assuming the latest layer is the active layer
diff --git a/tests/python/render_layer/test_object_link_b.py b/tests/python/render_layer/test_object_link_b.py
index e0228594be7..b18eb844fc4 100644
--- a/tests/python/render_layer/test_object_link_b.py
+++ b/tests/python/render_layer/test_object_link_b.py
@@ -19,6 +19,7 @@ class UnitTesting(RenderLayerTesting):
See if we can link objects via bpy.context.scene_collection
"""
import bpy
+ bpy.context.scene.render_layers.active_index = len(bpy.context.scene.render_layers) - 1
bpy.context.workspace.render_layer = bpy.context.scene.render_layers['Viewport']
master_collection = bpy.context.scene_collection
self.do_object_link(master_collection)
diff --git a/tests/python/render_layer/test_operator_context.py b/tests/python/render_layer/test_operator_context.py
index 05a8957fa20..5055d957551 100644
--- a/tests/python/render_layer/test_operator_context.py
+++ b/tests/python/render_layer/test_operator_context.py
@@ -88,6 +88,10 @@ class UnitTesting(RenderLayerTesting):
layer.collections.active_index = 3
self.assertEqual(layer.collections.active.name, 'scorpion')
+ # Change active scene layer (do it for workspace too just to don't get mangled in workspace bugs)
+ scene = bpy.context.scene
+ scene.render_layers.active_index = len(scene.render_layers) - 2
+ self.assertEqual(scene.render_layers.active.name, "Viewport")
bpy.context.workspace.render_layer = bpy.context.scene.render_layers['Viewport']
# old layer
diff --git a/tests/python/render_layer/test_scene_copy_d.py b/tests/python/render_layer/test_scene_copy_d.py
index 54988f49036..f398650eade 100644
--- a/tests/python/render_layer/test_scene_copy_d.py
+++ b/tests/python/render_layer/test_scene_copy_d.py
@@ -16,7 +16,7 @@ from render_layer_common import *
class UnitTesting(RenderLayerTesting):
def test_scene_layers_link(self):
"""
- See if scene copying 'FULL_COPY' is working for scene layers
+ See if scene copying 'LINK_OBJECTS' is working for scene layers
"""
import os
ROOT = self.get_root()
diff --git a/tests/python/render_layer/test_scene_copy_f.py b/tests/python/render_layer/test_scene_copy_f.py
new file mode 100644
index 00000000000..fd4298675f2
--- /dev/null
+++ b/tests/python/render_layer/test_scene_copy_f.py
@@ -0,0 +1,94 @@
+# ############################################################
+# Importing - Same For All Render Layer Tests
+# ############################################################
+
+import unittest
+import os
+import sys
+
+from render_layer_common import *
+
+
+# ############################################################
+# Testing
+# ############################################################
+
+class UnitTesting(RenderLayerTesting):
+ def test_shared_layer_collections_copy_full(self):
+ """
+ See if scene copying 'FULL_COPY' is keeping collections visibility
+ and selectability.
+ """
+ import os
+ import bpy
+
+ scene = bpy.context.scene
+
+ hide_lookup = [0, 1, 1, 0]
+ hide_lookup_sub = [1, 0, 1]
+
+ hide_select_lookup = [0, 0, 1, 1]
+ hide_select_lookup_sub = [1, 0, 1, 0]
+ new_collections = []
+
+ # clean everything
+ for layer in scene.render_layers:
+ while layer.collections:
+ layer.collections.unlink(layer.collections[0])
+
+ # create new collections
+ for i in range(4):
+ collection = scene.master_collection.collections.new(str(i))
+ new_collections.append(collection)
+
+ for j in range(3):
+ sub_collection = collection.collections.new("{0}:{1}".format(i, j))
+
+ # link to the original scene
+ for layer in scene.render_layers:
+ for i, collection in enumerate(new_collections):
+ layer.collections.link(collection)
+ self.assertEqual(layer.collections[-1], layer.collections[i])
+
+ layer.collections[i].hide = hide_lookup[i]
+ layer.collections[i].hide_select = hide_select_lookup[i]
+
+ for j, sub_collection in enumerate(layer.collections[i].collections):
+ sub_collection.hide = hide_lookup_sub[j]
+ sub_collection.hide_select = hide_select_lookup_sub[j]
+
+ # copy scene
+ bpy.ops.scene.new(type='FULL_COPY')
+ new_scene = bpy.context.scene
+ self.assertNotEqual(scene, new_scene)
+
+ # update depsgrah
+ scene.update() # update depsgraph
+
+ # compare scenes
+ for h, layer in enumerate(scene.render_layers):
+ new_layer = new_scene.render_layers[h]
+
+ for i, collection in enumerate(layer.collections):
+ new_collection = new_layer.collections[i]
+ self.assertEqual(collection.hide, new_collection.hide)
+ self.assertEqual(collection.hide_select, new_collection.hide_select)
+
+ for j, sub_collection in enumerate(layer.collections[i].collections):
+ new_sub_collection = new_collection.collections[j]
+ self.assertEqual(sub_collection.hide, new_sub_collection.hide)
+ self.assertEqual(sub_collection.hide_select, new_sub_collection.hide_select)
+
+
+# ############################################################
+# Main - Same For All Render Layer Tests
+# ############################################################
+
+if __name__ == '__main__':
+ import sys
+
+ extra_arguments = sys.argv[sys.argv.index("--") + 1:] if "--" in sys.argv else []
+ sys.argv = [__file__] + (sys.argv[sys.argv.index("--") + 2:] if "--" in sys.argv else [])
+
+ UnitTesting._extra_arguments = extra_arguments
+ unittest.main()
diff --git a/tests/python/render_layer/test_scene_delete.py b/tests/python/render_layer/test_scene_delete.py
new file mode 100644
index 00000000000..cd59a446c9a
--- /dev/null
+++ b/tests/python/render_layer/test_scene_delete.py
@@ -0,0 +1,39 @@
+# ############################################################
+# Importing - Same For All Render Layer Tests
+# ############################################################
+
+import unittest
+import os
+import sys
+
+from render_layer_common import *
+
+
+# ############################################################
+# Testing
+# ############################################################
+
+class UnitTesting(RenderLayerTesting):
+ def test_scene_delete(self):
+ """
+ See if a scene can be properly deleted
+ """
+ import bpy
+
+ scene = bpy.context.scene
+ bpy.data.scenes.new('New')
+ bpy.data.scenes.remove(scene)
+
+
+# ############################################################
+# Main - Same For All Render Layer Tests
+# ############################################################
+
+if __name__ == '__main__':
+ import sys
+
+ extra_arguments = sys.argv[sys.argv.index("--") + 1:] if "--" in sys.argv else []
+ sys.argv = [__file__] + (sys.argv[sys.argv.index("--") + 2:] if "--" in sys.argv else [])
+
+ UnitTesting._extra_arguments = extra_arguments
+ unittest.main()