Blender 5.0 - avoid using deprecated use_nodes

This commit is contained in:
Andrej730
2025-11-04 14:23:55 +05:00
parent 3bdfbebc02
commit d2126e5929
12 changed files with 58 additions and 30 deletions
+13 -8
View File
@@ -22,6 +22,7 @@ import ifcopenshell
import ifcopenshell.api
import ifcopenshell.api.root
import ifcopenshell.util.representation
import pytest
import bonsai.core.tool
import bonsai.tool as tool
from test.bim.bootstrap import NewFile
@@ -37,12 +38,16 @@ class TestImplementsTool(NewFile):
class TestCanSupportRenderingStyle(NewFile):
def test_anything_with_nodes_can_support_a_rendering_style(self):
obj = bpy.data.materials.new("Material")
obj.use_nodes = True
tool.Style.set_use_nodes(obj, True)
assert subject.can_support_rendering_style(obj) is True
@pytest.mark.skipif(
tool.Blender.BLENDER_5,
reason="Since Blender 5.0 `use_nodes` are always `True` and deprecated.",
)
def test_without_nodes_we_do_not_support_rendering(self):
obj = bpy.data.materials.new("Material")
obj.use_nodes = False
tool.Style.set_use_nodes(obj, False)
assert subject.can_support_rendering_style(obj) is False
@@ -125,7 +130,7 @@ class TestGetSurfaceRenderingAttributes(NewFile):
def test_get_different_surface_and_diffuse_colours_from_a_principled_bsdf(self):
obj = bpy.data.materials.new("Material")
obj.diffuse_color = [1, 1, 1, 1]
obj.use_nodes = True
tool.Style.set_use_nodes(obj, True)
node = tool.Blender.get_material_node(obj, "BSDF_PRINCIPLED")
assert node
node.inputs["Alpha"].default_value = 0.8
@@ -153,7 +158,7 @@ class TestGetSurfaceRenderingAttributes(NewFile):
def test_get_rendering_styles_from_a_glossy_bsdf(self):
obj = bpy.data.materials.new("Material")
obj.diffuse_color = [1, 1, 1, 1]
obj.use_nodes = True
tool.Style.set_use_nodes(obj, True)
output = tool.Blender.get_material_node(obj, "OUTPUT_MATERIAL")
node = tool.Blender.get_material_node(obj, "BSDF_PRINCIPLED")
assert obj.node_tree and node
@@ -185,7 +190,7 @@ class TestGetSurfaceRenderingAttributes(NewFile):
def test_get_rendering_styles_from_a_diffuse_bsdf(self):
obj = bpy.data.materials.new("Material")
obj.diffuse_color = [1, 1, 1, 1]
obj.use_nodes = True
tool.Style.set_use_nodes(obj, True)
output = tool.Blender.get_material_node(obj, "OUTPUT_MATERIAL")
node = tool.Blender.get_material_node(obj, "BSDF_PRINCIPLED")
assert obj.node_tree and node and output
@@ -217,7 +222,7 @@ class TestGetSurfaceRenderingAttributes(NewFile):
def test_get_rendering_styles_from_a_glass_bsdf(self):
obj = bpy.data.materials.new("Material")
obj.diffuse_color = [1, 1, 1, 1]
obj.use_nodes = True
tool.Style.set_use_nodes(obj, True)
output = tool.Blender.get_material_node(obj, "OUTPUT_MATERIAL")
node = tool.Blender.get_material_node(obj, "BSDF_PRINCIPLED")
assert obj.node_tree and node and output
@@ -249,7 +254,7 @@ class TestGetSurfaceRenderingAttributes(NewFile):
def test_get_rendering_styles_from_a_emission_bsdf(self):
obj = bpy.data.materials.new("Material")
obj.diffuse_color = [1, 1, 1, 1]
obj.use_nodes = True
tool.Style.set_use_nodes(obj, True)
output = tool.Blender.get_material_node(obj, "OUTPUT_MATERIAL")
node = tool.Blender.get_material_node(obj, "BSDF_PRINCIPLED")
assert obj.node_tree and node and output
@@ -280,7 +285,7 @@ class TestGetSurfaceRenderingAttributes(NewFile):
def test_other_unsupported_bsdfs_copy_the_rendering_style_from_the_shading_colours_as_a_fallback(self):
obj = bpy.data.materials.new("Material")
obj.diffuse_color = [1, 1, 1, 1]
obj.use_nodes = True
tool.Style.set_use_nodes(obj, True)
output = tool.Blender.get_material_node(obj, "OUTPUT_MATERIAL")
node = tool.Blender.get_material_node(obj, "BSDF_PRINCIPLED")
assert obj.node_tree and node and output