Files
blender/tests/python/view_layer/test_scene_objects.py
Dalai Felinto e1cbac715a Fix FOREACH_SCENE_COLLECTION/FOREACH_SCENE_OBJECT for nested collections
This fixes any function that relied on these iterators such as:
* Outliner Same Type
* Metaballs
* scene.objects

We were not considering the collections when there was collections nested
to the collections nested to the master collection.

It includes a unittest.
2018-01-03 19:33:00 -02:00

59 lines
1.6 KiB
Python

# ############################################################
# 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()