forked from bartvdbraak/blender
Unittests for depsgraph layer collection render settings evaluation
Some of the tests are failing at the moment. Those problems were introduced in eba09b1520
This commit is contained in:
parent
9b53bab0b7
commit
5a5f1dc8e4
@ -62,6 +62,13 @@ endmacro()
|
|||||||
|
|
||||||
RENDER_LAYER_TEST(active_collection)
|
RENDER_LAYER_TEST(active_collection)
|
||||||
RENDER_LAYER_TEST(collection_rename)
|
RENDER_LAYER_TEST(collection_rename)
|
||||||
|
RENDER_LAYER_TEST(evaluation_render_settings_a)
|
||||||
|
RENDER_LAYER_TEST(evaluation_render_settings_b)
|
||||||
|
RENDER_LAYER_TEST(evaluation_render_settings_c)
|
||||||
|
RENDER_LAYER_TEST(evaluation_render_settings_d)
|
||||||
|
RENDER_LAYER_TEST(evaluation_render_settings_e)
|
||||||
|
RENDER_LAYER_TEST(evaluation_render_settings_f)
|
||||||
|
RENDER_LAYER_TEST(evaluation_render_settings_g)
|
||||||
RENDER_LAYER_TEST(evaluation_visibility_a)
|
RENDER_LAYER_TEST(evaluation_visibility_a)
|
||||||
RENDER_LAYER_TEST(evaluation_visibility_b)
|
RENDER_LAYER_TEST(evaluation_visibility_b)
|
||||||
RENDER_LAYER_TEST(evaluation_visibility_c)
|
RENDER_LAYER_TEST(evaluation_visibility_c)
|
||||||
|
@ -693,3 +693,88 @@ class MoveLayerCollectionTesting(MoveSceneCollectionSyncTesting):
|
|||||||
layer_collection_src = self.parse_move(src)
|
layer_collection_src = self.parse_move(src)
|
||||||
layer_collection_dst = self.parse_move(dst)
|
layer_collection_dst = self.parse_move(dst)
|
||||||
return layer_collection_src.move_below(layer_collection_dst)
|
return layer_collection_src.move_below(layer_collection_dst)
|
||||||
|
|
||||||
|
|
||||||
|
class Clay:
|
||||||
|
def __init__(self, extra_kid_layer=False):
|
||||||
|
import bpy
|
||||||
|
|
||||||
|
self._scene = bpy.context.scene
|
||||||
|
self._layer = self._fresh_layer()
|
||||||
|
self._object = bpy.data.objects.new('guinea pig', bpy.data.meshes.new('mesh'))
|
||||||
|
|
||||||
|
# update depsgraph
|
||||||
|
self._scene.update()
|
||||||
|
|
||||||
|
scene_collection_grandma = self._scene.master_collection.collections.new("Grandma")
|
||||||
|
scene_collection_mom = scene_collection_grandma.collections.new("Mom")
|
||||||
|
scene_collection_kid = scene_collection_mom.collections.new("Kid")
|
||||||
|
scene_collection_kid.objects.link(self._object)
|
||||||
|
|
||||||
|
layer_collection_grandma = self._layer.collections.link(scene_collection_grandma)
|
||||||
|
layer_collection_mom = layer_collection_grandma.collections[0]
|
||||||
|
layer_collection_kid = layer_collection_mom.collections[0]
|
||||||
|
|
||||||
|
# store the variables
|
||||||
|
self._scene_collections = {
|
||||||
|
'grandma': scene_collection_grandma,
|
||||||
|
'mom': scene_collection_mom,
|
||||||
|
'kid': scene_collection_kid,
|
||||||
|
}
|
||||||
|
self._layer_collections = {
|
||||||
|
'grandma': layer_collection_grandma,
|
||||||
|
'mom': layer_collection_mom,
|
||||||
|
'kid': layer_collection_kid,
|
||||||
|
}
|
||||||
|
|
||||||
|
if extra_kid_layer:
|
||||||
|
layer_collection_extra = self._layer.collections.link(scene_collection_kid)
|
||||||
|
self._layer_collections['extra'] = layer_collection_extra
|
||||||
|
|
||||||
|
self._update()
|
||||||
|
|
||||||
|
def _fresh_layer(self):
|
||||||
|
import bpy
|
||||||
|
|
||||||
|
# remove all other objects
|
||||||
|
while bpy.data.objects:
|
||||||
|
bpy.data.objects.remove(bpy.data.objects[0])
|
||||||
|
|
||||||
|
layer = self._scene.render_layers.new('Evaluation Test')
|
||||||
|
layer.collections.unlink(layer.collections[0])
|
||||||
|
self._scene.render_layers.active = layer
|
||||||
|
|
||||||
|
# remove all other layers
|
||||||
|
for layer_iter in self._scene.render_layers:
|
||||||
|
if layer_iter != layer:
|
||||||
|
self._scene.render_layers.remove(layer_iter)
|
||||||
|
|
||||||
|
return layer
|
||||||
|
|
||||||
|
def _update(self):
|
||||||
|
"""
|
||||||
|
Force depsgrpah evaluation
|
||||||
|
and update pointers to IDProperty collections
|
||||||
|
"""
|
||||||
|
ENGINE = 'BLENDER_CLAY'
|
||||||
|
|
||||||
|
self._scene.update() # update depsgraph
|
||||||
|
self._layer.update() # flush depsgraph evaluation
|
||||||
|
|
||||||
|
# change scene settings
|
||||||
|
self._properties = {
|
||||||
|
'scene': self._scene.collection_properties[ENGINE],
|
||||||
|
'object': self._object.collection_properties[ENGINE],
|
||||||
|
}
|
||||||
|
|
||||||
|
for key, value in self._layer_collections.items():
|
||||||
|
self._properties[key] = self._layer_collections[key].engine_overrides[ENGINE]
|
||||||
|
|
||||||
|
def get(self, name, data_path):
|
||||||
|
self._update()
|
||||||
|
return getattr(self._properties[name], data_path)
|
||||||
|
|
||||||
|
def set(self, name, data_path, value):
|
||||||
|
self._update()
|
||||||
|
self._properties[name].use(data_path)
|
||||||
|
setattr(self._properties[name], data_path, value)
|
||||||
|
@ -0,0 +1,38 @@
|
|||||||
|
# ############################################################
|
||||||
|
# Importing - Same For All Render Layer Tests
|
||||||
|
# ############################################################
|
||||||
|
|
||||||
|
import unittest
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from render_layer_common import *
|
||||||
|
|
||||||
|
|
||||||
|
# ############################################################
|
||||||
|
# Testing
|
||||||
|
# ############################################################
|
||||||
|
|
||||||
|
class UnitTesting(RenderLayerTesting):
|
||||||
|
def test_render_settings(self):
|
||||||
|
"""
|
||||||
|
See if the depsgraph evaluation is correct
|
||||||
|
"""
|
||||||
|
clay = Clay()
|
||||||
|
self.assertEqual(clay.get('object', 'matcap_icon'), '01')
|
||||||
|
clay.set('scene', 'matcap_icon', '05')
|
||||||
|
self.assertEqual(clay.get('object', 'matcap_icon'), '05')
|
||||||
|
|
||||||
|
|
||||||
|
# ############################################################
|
||||||
|
# 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()
|
@ -0,0 +1,39 @@
|
|||||||
|
# ############################################################
|
||||||
|
# Importing - Same For All Render Layer Tests
|
||||||
|
# ############################################################
|
||||||
|
|
||||||
|
import unittest
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from render_layer_common import *
|
||||||
|
|
||||||
|
|
||||||
|
# ############################################################
|
||||||
|
# Testing
|
||||||
|
# ############################################################
|
||||||
|
|
||||||
|
class UnitTesting(RenderLayerTesting):
|
||||||
|
def test_render_settings(self):
|
||||||
|
"""
|
||||||
|
See if the depsgraph evaluation is correct
|
||||||
|
"""
|
||||||
|
clay = Clay()
|
||||||
|
self.assertEqual(clay.get('object', 'matcap_icon'), '01')
|
||||||
|
clay.set('scene', 'matcap_icon', '05')
|
||||||
|
clay.set('grandma', 'matcap_icon', '03')
|
||||||
|
self.assertEqual(clay.get('object', 'matcap_icon'), '03')
|
||||||
|
|
||||||
|
|
||||||
|
# ############################################################
|
||||||
|
# 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()
|
@ -0,0 +1,38 @@
|
|||||||
|
# ############################################################
|
||||||
|
# Importing - Same For All Render Layer Tests
|
||||||
|
# ############################################################
|
||||||
|
|
||||||
|
import unittest
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from render_layer_common import *
|
||||||
|
|
||||||
|
|
||||||
|
# ############################################################
|
||||||
|
# Testing
|
||||||
|
# ############################################################
|
||||||
|
|
||||||
|
class UnitTesting(RenderLayerTesting):
|
||||||
|
def test_render_settings(self):
|
||||||
|
"""
|
||||||
|
See if the depsgraph evaluation is correct
|
||||||
|
"""
|
||||||
|
clay = Clay()
|
||||||
|
self.assertEqual(clay.get('object', 'matcap_icon'), '01')
|
||||||
|
clay.set('mom', 'matcap_icon', '02')
|
||||||
|
self.assertEqual(clay.get('object', 'matcap_icon'), '02')
|
||||||
|
|
||||||
|
|
||||||
|
# ############################################################
|
||||||
|
# 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()
|
@ -0,0 +1,38 @@
|
|||||||
|
# ############################################################
|
||||||
|
# Importing - Same For All Render Layer Tests
|
||||||
|
# ############################################################
|
||||||
|
|
||||||
|
import unittest
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from render_layer_common import *
|
||||||
|
|
||||||
|
|
||||||
|
# ############################################################
|
||||||
|
# Testing
|
||||||
|
# ############################################################
|
||||||
|
|
||||||
|
class UnitTesting(RenderLayerTesting):
|
||||||
|
def test_render_settings(self):
|
||||||
|
"""
|
||||||
|
See if the depsgraph evaluation is correct
|
||||||
|
"""
|
||||||
|
clay = Clay()
|
||||||
|
self.assertEqual(clay.get('object', 'matcap_icon'), '01')
|
||||||
|
clay.set('kid', 'matcap_icon', '05')
|
||||||
|
self.assertEqual(clay.get('object', 'matcap_icon'), '05')
|
||||||
|
|
||||||
|
|
||||||
|
# ############################################################
|
||||||
|
# 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()
|
@ -0,0 +1,39 @@
|
|||||||
|
# ############################################################
|
||||||
|
# Importing - Same For All Render Layer Tests
|
||||||
|
# ############################################################
|
||||||
|
|
||||||
|
import unittest
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from render_layer_common import *
|
||||||
|
|
||||||
|
|
||||||
|
# ############################################################
|
||||||
|
# Testing
|
||||||
|
# ############################################################
|
||||||
|
|
||||||
|
class UnitTesting(RenderLayerTesting):
|
||||||
|
def test_render_settings(self):
|
||||||
|
"""
|
||||||
|
See if the depsgraph evaluation is correct
|
||||||
|
"""
|
||||||
|
clay = Clay()
|
||||||
|
self.assertEqual(clay.get('object', 'matcap_icon'), '01')
|
||||||
|
clay.set('grandma', 'matcap_icon', '04')
|
||||||
|
clay.set('kid', 'matcap_icon', '05')
|
||||||
|
self.assertEqual(clay.get('object', 'matcap_icon'), '05')
|
||||||
|
|
||||||
|
|
||||||
|
# ############################################################
|
||||||
|
# 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()
|
@ -0,0 +1,40 @@
|
|||||||
|
# ############################################################
|
||||||
|
# Importing - Same For All Render Layer Tests
|
||||||
|
# ############################################################
|
||||||
|
|
||||||
|
import unittest
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from render_layer_common import *
|
||||||
|
|
||||||
|
|
||||||
|
# ############################################################
|
||||||
|
# Testing
|
||||||
|
# ############################################################
|
||||||
|
|
||||||
|
class UnitTesting(RenderLayerTesting):
|
||||||
|
def test_render_settings(self):
|
||||||
|
"""
|
||||||
|
See if the depsgraph evaluation is correct
|
||||||
|
"""
|
||||||
|
clay = Clay(extra_kid_layer=True)
|
||||||
|
self.assertEqual(clay.get('object', 'matcap_icon'), '01')
|
||||||
|
|
||||||
|
clay.set('scene', 'matcap_icon', '05')
|
||||||
|
clay.set('extra', 'matcap_icon', '07')
|
||||||
|
self.assertEqual(clay.get('object', 'matcap_icon'), '07')
|
||||||
|
|
||||||
|
|
||||||
|
# ############################################################
|
||||||
|
# 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()
|
@ -0,0 +1,40 @@
|
|||||||
|
# ############################################################
|
||||||
|
# Importing - Same For All Render Layer Tests
|
||||||
|
# ############################################################
|
||||||
|
|
||||||
|
import unittest
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from render_layer_common import *
|
||||||
|
|
||||||
|
|
||||||
|
# ############################################################
|
||||||
|
# Testing
|
||||||
|
# ############################################################
|
||||||
|
|
||||||
|
class UnitTesting(RenderLayerTesting):
|
||||||
|
def test_render_settings(self):
|
||||||
|
"""
|
||||||
|
See if the depsgraph evaluation is correct
|
||||||
|
"""
|
||||||
|
clay = Clay(extra_kid_layer=True)
|
||||||
|
self.assertEqual(clay.get('object', 'matcap_icon'), '01')
|
||||||
|
|
||||||
|
clay.set('mom', 'matcap_icon', '02')
|
||||||
|
clay.set('extra', 'matcap_icon', '06')
|
||||||
|
self.assertEqual(clay.get('object', 'matcap_icon'), '06')
|
||||||
|
|
||||||
|
|
||||||
|
# ############################################################
|
||||||
|
# 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()
|
Loading…
Reference in New Issue
Block a user