Merge branch 'master' into blender2.8
[blender.git] / tests / python / render_layer / test_evaluation_selectability_b.py
1 # ############################################################
2 # Importing - Same For All Render Layer Tests
3 # ############################################################
4
5 import unittest
6 import os
7 import sys
8
9 from render_layer_common import *
10
11
12 # ############################################################
13 # Testing
14 # ############################################################
15
16 class UnitTesting(RenderLayerTesting):
17     def test_selectability(self):
18         """
19         See if the depsgraph evaluation is correct
20         """
21         import bpy
22
23         scene = bpy.context.scene
24         workspace = bpy.context.workspace
25         cube = bpy.data.objects.new('guinea pig', bpy.data.meshes.new('mesh'))
26
27         layer = scene.render_layers.new('Selectability Test')
28         layer.collections.unlink(layer.collections[0])
29         scene.render_layers.active = layer
30         workspace.render_layer = layer
31
32         scene_collection_mom = scene.master_collection.collections.new("Mom")
33         scene_collection_kid = scene_collection_mom.collections.new("Kid")
34
35         scene_collection_kid.objects.link(cube)
36
37         layer_collection_mom = layer.collections.link(scene_collection_mom)
38         layer_collection_kid = layer.collections.link(scene_collection_kid)
39         bpy.context.scene.update()  # update depsgraph
40         cube.select_set('SELECT')
41
42         layer_collection_mom.collections[layer_collection_kid.name].hide = True
43         layer_collection_kid.hide = True
44
45         bpy.context.scene.update()  # update depsgraph
46         self.assertFalse(cube.visible_get(), "Cube should be invisible")
47         self.assertFalse(cube.select_get(), "Cube should be unselected")
48
49
50 # ############################################################
51 # Main - Same For All Render Layer Tests
52 # ############################################################
53
54 if __name__ == '__main__':
55     UnitTesting._extra_arguments = setup_extra_arguments(__file__)
56     unittest.main()