Unittest: Update background set test to test for proper flag
[blender.git] / tests / python / view_layer / test_background_set.py
1 # ############################################################
2 # Importing - Same For All Render Layer Tests
3 # ############################################################
4
5 import unittest
6 import os
7 import sys
8
9 from view_layer_common import *
10
11
12 # ############################################################
13 # Testing
14 # ############################################################
15
16 class UnitTesting(ViewLayerTesting):
17     def test_background_set(self):
18         """
19         See if background sets are properly added and removed
20         """
21         import bpy
22
23         background_scene = bpy.data.scenes[0]
24         main_scene = bpy.data.scenes.new('main')
25         bpy.context.window.scene = main_scene
26
27         # Update depsgraph.
28         main_scene.update()
29         background_scene.update()
30
31         # Safety check, there should be no objects in thew newly created scene.
32         self.assertEqual(0, len(bpy.context.depsgraph.objects))
33
34         # Now set the background set, and objects relationship.
35         main_scene.background_set = background_scene
36         background_scene.objects[0].parent = background_scene.objects[1]
37
38         # Update depsgraph.
39         main_scene.update()
40         background_scene.update()
41
42         # Test if objects were properly added to depsgraph.
43         self.assertEqual(3, len(bpy.context.depsgraph.objects))
44
45         # We now check if the objects are properly flagged as from set
46         # These objects can't be possible nor show their origins or
47         # relationship lines
48         for ob in bpy.context.depsgraph.objects:
49             self.assertTrue(ob.is_from_set)
50
51         # Test if removing is working fine.
52         main_scene.background_set = None
53
54         # Update depsgraph.
55         main_scene.update()
56         background_scene.update()
57
58         self.assertEqual(0, len(bpy.context.depsgraph.objects))
59
60
61 # ############################################################
62 # Main - Same For All Render Layer Tests
63 # ############################################################
64
65 if __name__ == '__main__':
66     UnitTesting._extra_arguments = setup_extra_arguments(__file__)
67     unittest.main()