diff options
-rw-r--r-- | source/blender/blenkernel/intern/collection.c | 1 | ||||
-rw-r--r-- | tests/python/view_layer/CMakeLists.txt | 1 | ||||
-rw-r--r-- | tests/python/view_layer/test_scene_objects.py | 58 |
3 files changed, 60 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/collection.c b/source/blender/blenkernel/intern/collection.c index e2b10de575c..4830e9456cd 100644 --- a/source/blender/blenkernel/intern/collection.c +++ b/source/blender/blenkernel/intern/collection.c @@ -725,6 +725,7 @@ void BKE_scene_collections_iterator_begin(BLI_Iterator *iter, void *data_in) data->owner_id = owner_id; iter->data = data; + iter->valid = true; scene_collections_array(owner_id, (SceneCollection ***)&data->array, &data->tot); BLI_assert(data->tot != 0); diff --git a/tests/python/view_layer/CMakeLists.txt b/tests/python/view_layer/CMakeLists.txt index eaaf25b3889..3f7149a67ad 100644 --- a/tests/python/view_layer/CMakeLists.txt +++ b/tests/python/view_layer/CMakeLists.txt @@ -178,5 +178,6 @@ VIEW_LAYER_TEST(scene_copy_d) VIEW_LAYER_TEST(scene_copy_e) VIEW_LAYER_TEST(scene_copy_f) VIEW_LAYER_TEST(scene_delete) +VIEW_LAYER_TEST(scene_objects) VIEW_LAYER_TEST(scene_write_read) VIEW_LAYER_TEST(view_layer_rename) diff --git a/tests/python/view_layer/test_scene_objects.py b/tests/python/view_layer/test_scene_objects.py new file mode 100644 index 00000000000..3fae126f206 --- /dev/null +++ b/tests/python/view_layer/test_scene_objects.py @@ -0,0 +1,58 @@ +# ############################################################ +# Importing - Same For All Render Layer Tests +# ############################################################ + +import unittest +import os +import sys + +from view_layer_common import * + + +# ############################################################ +# Testing +# ############################################################ + +class UnitTesting(ViewLayerTesting): + def test_scene_objects_a(self): + """ + Test vanilla scene + """ + import bpy + + scene = bpy.context.scene + self.assertEqual(len(scene.objects), 3) + + def test_scene_objects_b(self): + """ + Test scene with nested collections + """ + import bpy + scene = bpy.context.scene + + # move default objects to a nested collection + master_collection = scene.master_collection + collection = master_collection.collections[0] + collection_nested = collection.collections.new() + + for ob in collection.objects: + collection_nested.objects.link(ob) + + while collection.objects: + collection.objects.unlink(collection.objects[0]) + + self.assertEqual(len(scene.objects), 3) + + +# ############################################################ +# 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() |