diff options
author | Dalai Felinto <dfelinto@gmail.com> | 2017-03-20 20:06:50 +0300 |
---|---|---|
committer | Dalai Felinto <dfelinto@gmail.com> | 2017-04-01 02:22:39 +0300 |
commit | 97b9afda3719627b9e52d1862ffd3b0b3ef12518 (patch) | |
tree | cdca261375518eefdd1185e14d69883c36800976 /tests | |
parent | 5bfa6d84556a39f190599325bad1bc52cd681ddd (diff) |
Layers / Depsgraph: Unittesting for selection and visibility evaluation
Diffstat (limited to 'tests')
12 files changed, 552 insertions, 14 deletions
diff --git a/tests/python/render_layer/CMakeLists.txt b/tests/python/render_layer/CMakeLists.txt index d97672bd2c8..a546bdbf741 100644 --- a/tests/python/render_layer/CMakeLists.txt +++ b/tests/python/render_layer/CMakeLists.txt @@ -60,6 +60,15 @@ RENDER_LAYER_TEST(active_collection) RENDER_LAYER_TEST(collection_rename) RENDER_LAYER_TEST(evaluation_visibility_a) RENDER_LAYER_TEST(evaluation_visibility_b) +RENDER_LAYER_TEST(evaluation_visibility_c) +RENDER_LAYER_TEST(evaluation_visibility_d) +RENDER_LAYER_TEST(evaluation_visibility_e) +RENDER_LAYER_TEST(evaluation_visibility_f) +RENDER_LAYER_TEST(evaluation_selectability_a) +RENDER_LAYER_TEST(evaluation_selectability_b) +RENDER_LAYER_TEST(evaluation_selectability_c) +RENDER_LAYER_TEST(evaluation_selectability_d) +RENDER_LAYER_TEST(evaluation_selectability_e) RENDER_LAYER_TEST(object_add_cylinder) RENDER_LAYER_TEST(object_add_empty) RENDER_LAYER_TEST(object_add_torus) diff --git a/tests/python/render_layer/test_evaluation_selectability_a.py b/tests/python/render_layer/test_evaluation_selectability_a.py new file mode 100644 index 00000000000..10356cc2a5a --- /dev/null +++ b/tests/python/render_layer/test_evaluation_selectability_a.py @@ -0,0 +1,58 @@ +# ############################################################ +# Importing - Same For All Render Layer Tests +# ############################################################ + +import unittest +import os +import sys + +sys.path.append(os.path.dirname(__file__)) +from render_layer_common import * + + +# ############################################################ +# Testing +# ############################################################ + +class UnitTesting(RenderLayerTesting): + def test_selectability(self): + """ + See if the depsgraph evaluation is correct + """ + import bpy + + scene = bpy.context.scene + cube = bpy.data.objects.new('guinea pig', bpy.data.meshes.new('mesh')) + + layer = scene.render_layers.new('Selectability Test') + layer.collections.unlink(layer.collections[0]) + scene.render_layers.active = layer + + scene_collection_mom = scene.master_collection.collections.new("Mom") + scene_collection_kid = scene_collection_mom.collections.new("Kid") + + scene_collection_kid.objects.link(cube) + + layer_collection_mom = layer.collections.link(scene_collection_mom) + layer_collection_kid = layer.collections.link(scene_collection_kid) + + layer_collection_mom.hide = True + bpy.context.scene.update() # update depsgraph + cube.select_set('SELECT') + + self.assertTrue(cube.visible_get(), "Cube should be visible") + self.assertTrue(cube.select_get(), "Cube should be selected") + + +# ############################################################ +# 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_evaluation_selectability_b.py b/tests/python/render_layer/test_evaluation_selectability_b.py new file mode 100644 index 00000000000..2c33b5d17df --- /dev/null +++ b/tests/python/render_layer/test_evaluation_selectability_b.py @@ -0,0 +1,60 @@ +# ############################################################ +# Importing - Same For All Render Layer Tests +# ############################################################ + +import unittest +import os +import sys + +sys.path.append(os.path.dirname(__file__)) +from render_layer_common import * + + +# ############################################################ +# Testing +# ############################################################ + +class UnitTesting(RenderLayerTesting): + def test_selectability(self): + """ + See if the depsgraph evaluation is correct + """ + import bpy + + scene = bpy.context.scene + cube = bpy.data.objects.new('guinea pig', bpy.data.meshes.new('mesh')) + + layer = scene.render_layers.new('Selectability Test') + layer.collections.unlink(layer.collections[0]) + scene.render_layers.active = layer + + scene_collection_mom = scene.master_collection.collections.new("Mom") + scene_collection_kid = scene_collection_mom.collections.new("Kid") + + scene_collection_kid.objects.link(cube) + + layer_collection_mom = layer.collections.link(scene_collection_mom) + layer_collection_kid = layer.collections.link(scene_collection_kid) + bpy.context.scene.update() # update depsgraph + cube.select_set('SELECT') + + layer_collection_mom.collections[layer_collection_kid.name].hide = True + layer_collection_kid.hide = True + + bpy.context.scene.update() # update depsgraph + self.assertFalse(cube.visible_get(), "Cube should be invisible") + self.assertFalse(cube.select_get(), "Cube should be unselected") + + +# ############################################################ +# 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_evaluation_selectability_c.py b/tests/python/render_layer/test_evaluation_selectability_c.py new file mode 100644 index 00000000000..848c525694f --- /dev/null +++ b/tests/python/render_layer/test_evaluation_selectability_c.py @@ -0,0 +1,58 @@ +# ############################################################ +# Importing - Same For All Render Layer Tests +# ############################################################ + +import unittest +import os +import sys + +sys.path.append(os.path.dirname(__file__)) +from render_layer_common import * + + +# ############################################################ +# Testing +# ############################################################ + +class UnitTesting(RenderLayerTesting): + def test_selectability(self): + """ + See if the depsgraph evaluation is correct + """ + import bpy + + scene = bpy.context.scene + cube = bpy.data.objects.new('guinea pig', bpy.data.meshes.new('mesh')) + + layer = scene.render_layers.new('Selectability Test') + layer.collections.unlink(layer.collections[0]) + scene.render_layers.active = layer + + scene_collection_mom = scene.master_collection.collections.new("Mom") + scene_collection_kid = scene_collection_mom.collections.new("Kid") + + scene_collection_kid.objects.link(cube) + + layer_collection_mom = layer.collections.link(scene_collection_mom) + layer_collection_kid = layer.collections.link(scene_collection_kid) + + layer_collection_mom.hide = False + bpy.context.scene.update() # update depsgraph + cube.select_set('SELECT') + + self.assertTrue(cube.visible_get(), "Cube should be visible") + self.assertTrue(cube.select_get(), "Cube should be selected") + + +# ############################################################ +# 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_evaluation_selectability_d.py b/tests/python/render_layer/test_evaluation_selectability_d.py new file mode 100644 index 00000000000..208be462703 --- /dev/null +++ b/tests/python/render_layer/test_evaluation_selectability_d.py @@ -0,0 +1,61 @@ +# ############################################################ +# Importing - Same For All Render Layer Tests +# ############################################################ + +import unittest +import os +import sys + +sys.path.append(os.path.dirname(__file__)) +from render_layer_common import * + + +# ############################################################ +# Testing +# ############################################################ + +class UnitTesting(RenderLayerTesting): + def test_selectability(self): + """ + See if the depsgraph evaluation is correct + """ + import bpy + + scene = bpy.context.scene + cube = bpy.data.objects.new('guinea pig', bpy.data.meshes.new('mesh')) + + layer = scene.render_layers.new('Selectability Test') + layer.collections.unlink(layer.collections[0]) + scene.render_layers.active = layer + + scene_collection_mom = scene.master_collection.collections.new("Mom") + scene_collection_kid = scene_collection_mom.collections.new("Kid") + + scene_collection_kid.objects.link(cube) + + layer_collection_mom = layer.collections.link(scene_collection_mom) + layer_collection_kid = layer.collections.link(scene_collection_kid) + + layer_collection_mom.hide = False + bpy.context.scene.update() # update depsgraph + + cube.select_set('SELECT') + layer_collection_mom.collections[layer_collection_kid.name].hide_select = True + + bpy.context.scene.update() # update depsgraph + self.assertTrue(cube.visible_get(), "Cube should be visible") + self.assertTrue(cube.select_get(), "Cube should be selected") + + +# ############################################################ +# 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_evaluation_selectability_e.py b/tests/python/render_layer/test_evaluation_selectability_e.py new file mode 100644 index 00000000000..9920b917cd3 --- /dev/null +++ b/tests/python/render_layer/test_evaluation_selectability_e.py @@ -0,0 +1,60 @@ +# ############################################################ +# Importing - Same For All Render Layer Tests +# ############################################################ + +import unittest +import os +import sys + +sys.path.append(os.path.dirname(__file__)) +from render_layer_common import * + + +# ############################################################ +# Testing +# ############################################################ + +class UnitTesting(RenderLayerTesting): + def test_selectability(self): + """ + See if the depsgraph evaluation is correct + """ + import bpy + + scene = bpy.context.scene + cube = bpy.data.objects.new('guinea pig', bpy.data.meshes.new('mesh')) + + layer = scene.render_layers.new('Selectability Test') + layer.collections.unlink(layer.collections[0]) + scene.render_layers.active = layer + + scene_collection_mom = scene.master_collection.collections.new("Mom") + scene_collection_kid = scene_collection_mom.collections.new("Kid") + + scene_collection_kid.objects.link(cube) + + layer_collection_mom = layer.collections.link(scene_collection_mom) + layer_collection_kid = layer.collections.link(scene_collection_kid) + + layer_collection_mom.hide = False + cube.select_set('SELECT') + layer_collection_mom.collections[layer_collection_kid.name].hide_select = True + layer_collection_kid.hide = True + + bpy.context.scene.update() # update depsgraph + self.assertTrue(cube.visible_get(), "Cube should be visible") + self.assertFalse(cube.select_get(), "Cube should be unselected") + + +# ############################################################ +# 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_evaluation_visibility_a.py b/tests/python/render_layer/test_evaluation_visibility_a.py index a5b1ebabdeb..db3d4693410 100644 --- a/tests/python/render_layer/test_evaluation_visibility_a.py +++ b/tests/python/render_layer/test_evaluation_visibility_a.py @@ -17,7 +17,7 @@ from render_layer_common import * class UnitTesting(RenderLayerTesting): def test_visibility(self): """ - See if we can link objects + See if the depsgraph evaluation is correct """ import bpy @@ -28,19 +28,20 @@ class UnitTesting(RenderLayerTesting): layer.collections.unlink(layer.collections[0]) scene.render_layers.active = layer - scene_collection_a = scene.master_collection.collections.new("Visible") - scene_collection_b = scene.master_collection.collections.new("Invisible") + scene_collection_mom = scene.master_collection.collections.new("Mom") + scene_collection_kid = scene.master_collection.collections.new("Kid") - scene_collection_a.objects.link(cube) - scene_collection_b.objects.link(cube) + scene_collection_mom.objects.link(cube) + scene_collection_kid.objects.link(cube) - layer_collection_a = layer.collections.link(scene_collection_a) - layer_collection_b = layer.collections.link(scene_collection_b) + layer_collection_mom = layer.collections.link(scene_collection_mom) + layer_collection_kid = layer.collections.link(scene_collection_kid) - layer_collection_a.hide = False - layer_collection_b.hide = True + layer_collection_mom.hide = True + layer_collection_kid.hide = False - self.assertTrue(cube.visible_get(), "Object is not visible") + bpy.context.scene.update() # update depsgraph + self.assertTrue(cube.visible_get(), "Object should be visible") # ############################################################ diff --git a/tests/python/render_layer/test_evaluation_visibility_b.py b/tests/python/render_layer/test_evaluation_visibility_b.py index c8ba6cbf67d..1d6c8582ccd 100644 --- a/tests/python/render_layer/test_evaluation_visibility_b.py +++ b/tests/python/render_layer/test_evaluation_visibility_b.py @@ -17,7 +17,7 @@ from render_layer_common import * class UnitTesting(RenderLayerTesting): def test_visibility(self): """ - See if we can link objects + See if the depsgraph evaluation is correct """ import bpy @@ -28,8 +28,8 @@ class UnitTesting(RenderLayerTesting): layer.collections.unlink(layer.collections[0]) scene.render_layers.active = layer - scene_collection_mom = scene.master_collection.collections.new("Visible") - scene_collection_kid = scene_collection_mom.collections.new("Invisible") + scene_collection_mom = scene.master_collection.collections.new("Mom") + scene_collection_kid = scene_collection_mom.collections.new("Kid") scene_collection_kid.objects.link(cube) @@ -40,7 +40,8 @@ class UnitTesting(RenderLayerTesting): layer_collection_mom.collections[layer_collection_kid.name].hide = True layer_collection_kid.hide = True - self.assertFalse(cube.visible_get(), "Object is not invisible") + bpy.context.scene.update() # update depsgraph + self.assertFalse(cube.visible_get(), "Object should be invisible") # ############################################################ diff --git a/tests/python/render_layer/test_evaluation_visibility_c.py b/tests/python/render_layer/test_evaluation_visibility_c.py new file mode 100644 index 00000000000..440b7444ff2 --- /dev/null +++ b/tests/python/render_layer/test_evaluation_visibility_c.py @@ -0,0 +1,58 @@ +# ############################################################ +# Importing - Same For All Render Layer Tests +# ############################################################ + +import unittest +import os +import sys + +sys.path.append(os.path.dirname(__file__)) +from render_layer_common import * + + +# ############################################################ +# Testing +# ############################################################ + +class UnitTesting(RenderLayerTesting): + def test_visibility(self): + """ + See if the depsgraph evaluation is correct + """ + import bpy + + scene = bpy.context.scene + cube = bpy.data.objects.new('guinea pig', bpy.data.meshes.new('mesh')) + + layer = scene.render_layers.new('Visibility Test') + layer.collections.unlink(layer.collections[0]) + scene.render_layers.active = layer + + scene_collection_mom = scene.master_collection.collections.new("Mom") + scene_collection_kid = scene_collection_mom.collections.new("Kid") + + scene_collection_kid.objects.link(cube) + + layer_collection_mom = layer.collections.link(scene_collection_mom) + layer_collection_kid = layer.collections.link(scene_collection_kid) + + layer_collection_mom.hide = False + layer_collection_mom.collections[layer_collection_kid.name].hide = True + layer_collection_kid.hide = False + + bpy.context.scene.update() # update depsgraph + self.assertTrue(cube.visible_get(), "Object should be visible") + + +# ############################################################ +# 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_evaluation_visibility_d.py b/tests/python/render_layer/test_evaluation_visibility_d.py new file mode 100644 index 00000000000..37c9f9d001d --- /dev/null +++ b/tests/python/render_layer/test_evaluation_visibility_d.py @@ -0,0 +1,55 @@ +# ############################################################ +# Importing - Same For All Render Layer Tests +# ############################################################ + +import unittest +import os +import sys + +sys.path.append(os.path.dirname(__file__)) +from render_layer_common import * + + +# ############################################################ +# Testing +# ############################################################ + +class UnitTesting(RenderLayerTesting): + def test_visibility(self): + """ + See if the depsgraph evaluation is correct + """ + import bpy + + scene = bpy.context.scene + cube = bpy.data.objects.new('guinea pig', bpy.data.meshes.new('mesh')) + + layer = scene.render_layers.new('Visibility Test') + layer.collections.unlink(layer.collections[0]) + scene.render_layers.active = layer + + scene_collection_mom = scene.master_collection.collections.new("Mom") + scene_collection_kid = scene_collection_mom.collections.new("Kid") + + scene_collection_kid.objects.link(cube) + + layer_collection_mom = layer.collections.link(scene_collection_mom) + layer_collection_kid = layer.collections.link(scene_collection_kid) + + layer_collection_mom.hide = False + bpy.context.scene.update() # update depsgraph + self.assertTrue(cube.visible_get(), "Object should be visible") + + +# ############################################################ +# 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_evaluation_visibility_e.py b/tests/python/render_layer/test_evaluation_visibility_e.py new file mode 100644 index 00000000000..a6ec431e9a6 --- /dev/null +++ b/tests/python/render_layer/test_evaluation_visibility_e.py @@ -0,0 +1,58 @@ +# ############################################################ +# Importing - Same For All Render Layer Tests +# ############################################################ + +import unittest +import os +import sys + +sys.path.append(os.path.dirname(__file__)) +from render_layer_common import * + + +# ############################################################ +# Testing +# ############################################################ + +class UnitTesting(RenderLayerTesting): + def test_visibility(self): + """ + See if the depsgraph evaluation is correct + """ + import bpy + + scene = bpy.context.scene + cube = bpy.data.objects.new('guinea pig', bpy.data.meshes.new('mesh')) + + layer = scene.render_layers.new('Visibility Test') + layer.collections.unlink(layer.collections[0]) + scene.render_layers.active = layer + + scene_collection_mom = scene.master_collection.collections.new("Mom") + scene_collection_kid = scene_collection_mom.collections.new("Kid") + + scene_collection_mom.objects.link(cube) + scene_collection_kid.objects.link(cube) + + layer_collection_mom = layer.collections.link(scene_collection_mom) + layer_collection_kid = layer.collections.link(scene_collection_kid) + + layer_collection_mom.hide = False + layer_collection_kid.hide = True + + bpy.context.scene.update() # update depsgraph + self.assertTrue(cube.visible_get(), "Object should be visible") + + +# ############################################################ +# Main - Same For All Render Layer Tests +# ############################################################ + +if __name__ == '__main__': + import sys + + extra_arguments = sys.argv[sys.argv.index("--") + 2:] 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_evaluation_visibility_f.py b/tests/python/render_layer/test_evaluation_visibility_f.py new file mode 100644 index 00000000000..b04bceef5f5 --- /dev/null +++ b/tests/python/render_layer/test_evaluation_visibility_f.py @@ -0,0 +1,59 @@ +# ############################################################ +# Importing - Same For All Render Layer Tests +# ############################################################ + +import unittest +import os +import sys + +sys.path.append(os.path.dirname(__file__)) +from render_layer_common import * + + +# ############################################################ +# Testing +# ############################################################ + +class UnitTesting(RenderLayerTesting): + def test_visibility(self): + """ + See if the depsgraph evaluation is correct + """ + import bpy + + scene = bpy.context.scene + cube = bpy.data.objects.new('guinea pig', bpy.data.meshes.new('mesh')) + + layer = scene.render_layers.new('Visibility Test') + layer.collections.unlink(layer.collections[0]) + scene.render_layers.active = layer + + scene_collection_mom = scene.master_collection.collections.new("Mom") + scene_collection_kid = scene_collection_mom.collections.new("Kid") + + scene_collection_mom.objects.link(cube) + scene_collection_kid.objects.link(cube) + + layer_collection_mom = layer.collections.link(scene_collection_mom) + layer_collection_kid = layer.collections.link(scene_collection_kid) + + layer_collection_mom.hide = False + layer_collection_mom.collections[layer_collection_kid.name].hide = True + layer_collection_kid.hide = True + + bpy.context.scene.update() # update depsgraph + self.assertTrue(cube.visible_get(), "Object should be visible") + + +# ############################################################ +# 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() |