
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.
59 lines
1.6 KiB
Python
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()
|