Layers Unittest: Background set
authorDalai Felinto <dfelinto@gmail.com>
Fri, 24 Nov 2017 12:54:13 +0000 (10:54 -0200)
committerDalai Felinto <dfelinto@gmail.com>
Fri, 24 Nov 2017 12:54:13 +0000 (10:54 -0200)
This is an incomplete test since we cannot check for the
depsgraph selection value with the current API, nor can we
see if the relationship lines are being drawn.

tests/python/view_layer/CMakeLists.txt
tests/python/view_layer/test_background_set.py [new file with mode: 0644]

index 48206f61db4e80e67cd33a3f68e287d32eb5d8b3..e5b271dcb1e4a12b0250a9be93e2a439ab9b9ef7 100644 (file)
@@ -61,6 +61,7 @@ macro(VIEW_LAYER_TEST test_name)
 endmacro()
 
 VIEW_LAYER_TEST(active_collection)
+VIEW_LAYER_TEST(background_set)
 VIEW_LAYER_TEST(collection_rename)
 VIEW_LAYER_TEST(evaluation_render_settings_a)
 VIEW_LAYER_TEST(evaluation_render_settings_b)
diff --git a/tests/python/view_layer/test_background_set.py b/tests/python/view_layer/test_background_set.py
new file mode 100644 (file)
index 0000000..a227d4d
--- /dev/null
@@ -0,0 +1,69 @@
+# ############################################################
+# Importing - Same For All Render Layer Tests
+# ############################################################
+
+import unittest
+import os
+import sys
+
+from view_layer_common import *
+
+
+# ############################################################
+# Testing
+# ############################################################
+
+class UnitTesting(ViewLayerTesting):
+    def test_background_set(self):
+        """
+        See if background sets are properly added and removed
+        """
+        import bpy
+
+        background_scene = bpy.data.scenes[0]
+        main_scene = bpy.data.scenes.new('main')
+        bpy.context.window.scene = main_scene
+
+        # Update depsgraph.
+        main_scene.update()
+        background_scene.update()
+
+        # Safety check, there should be no objects in thew newly created scene.
+        self.assertEqual(0, len(bpy.context.depsgraph.objects))
+
+        # Now set the background set, and objects relationship.
+        main_scene.background_set = background_scene
+        background_scene.objects[0].parent = background_scene.objects[1]
+
+        # Update depsgraph.
+        main_scene.update()
+        background_scene.update()
+
+        # Test if objects were properly added to depsgraph.
+        self.assertEqual(3, len(bpy.context.depsgraph.objects))
+
+        # At this point the ideal would be to be able to check if
+        # the objects are not selected and their relationship line
+        # and origin is not visible.
+        #
+        # However we can't check this from the current API
+        # so we either do image comparison, expand the API
+        # (won't work relationship lines) or leave as it is.
+
+        # Test if removing is working fine.
+        main_scene.background_set = None
+
+        # Update depsgraph.
+        main_scene.update()
+        background_scene.update()
+
+        self.assertEqual(0, len(bpy.context.depsgraph.objects))
+
+
+# ############################################################
+# Main - Same For All Render Layer Tests
+# ############################################################
+
+if __name__ == '__main__':
+    UnitTesting._extra_arguments = setup_extra_arguments(__file__)
+    unittest.main()