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(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_b)
|
||||
RENDER_LAYER_TEST(evaluation_visibility_c)
|
||||
|
@ -693,3 +693,88 @@ class MoveLayerCollectionTesting(MoveSceneCollectionSyncTesting):
|
||||
layer_collection_src = self.parse_move(src)
|
||||
layer_collection_dst = self.parse_move(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