forked from bartvdbraak/blender
f591060856
All depsgraphs are sharing same object state for now, which means doing set scene evaluation after main scene evaluation will override all modifications done by the main scene.
65 lines
2.0 KiB
Python
65 lines
2.0 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_background_set(self):
|
|
"""
|
|
See if background sets are properly added and removed
|
|
"""
|
|
import bpy
|
|
|
|
background_scene = bpy.data.scenes[0]
|
|
main_scene = bpy.data.scenes.new('main')
|
|
bpy.context.window.scene = main_scene
|
|
|
|
# Update depsgraph.
|
|
main_scene.update()
|
|
|
|
# Safety check, there should be no objects in thew newly created scene.
|
|
self.assertEqual(0, len(bpy.context.depsgraph.objects))
|
|
|
|
# Now set the background set, and objects relationship.
|
|
main_scene.background_set = background_scene
|
|
background_scene.objects[0].parent = background_scene.objects[1]
|
|
|
|
# Update depsgraph.
|
|
main_scene.update()
|
|
|
|
# Test if objects were properly added to depsgraph.
|
|
self.assertEqual(3, len(bpy.context.depsgraph.objects))
|
|
|
|
# We now check if the objects are properly flagged as from set
|
|
# These objects can't be possible nor show their origins or
|
|
# relationship lines
|
|
for ob in bpy.context.depsgraph.objects:
|
|
self.assertTrue(ob.is_from_set)
|
|
|
|
# Test if removing is working fine.
|
|
main_scene.background_set = None
|
|
|
|
# Update depsgraph.
|
|
main_scene.update()
|
|
|
|
self.assertEqual(0, len(bpy.context.depsgraph.objects))
|
|
|
|
|
|
# ############################################################
|
|
# Main - Same For All Render Layer Tests
|
|
# ############################################################
|
|
|
|
if __name__ == '__main__':
|
|
UnitTesting._extra_arguments = setup_extra_arguments(__file__)
|
|
unittest.main()
|