blender/tests/python/view_layer/test_background_set.py
Sergey Sharybin f591060856 Backgroudn set tests: Correct evaluation order
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.
2017-11-24 16:55:41 +01:00

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