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
+2 -2
View File
@@ -37,7 +37,7 @@ class TestImplementsTool(NewFile):
class TestCopyNodeGraph(NewFile):
def test_run(self):
material_to = bpy.data.materials.new("material_to")
material_to.use_nodes = True
tool.Style.set_use_nodes(material_to, True)
assert material_to.node_tree
material_to_nodes = material_to.node_tree.nodes
assert len(material_to_nodes) == 2
@@ -46,7 +46,7 @@ class TestCopyNodeGraph(NewFile):
assert len(material_to_nodes) == 0
material_from = bpy.data.materials.new("material_from")
material_from.use_nodes = True
tool.Style.set_use_nodes(material_from, True)
subject.copy_node_graph(material_to, material_from)
assert len(material_to_nodes) == 2
+3 -3
View File
@@ -488,7 +488,7 @@ class TestShouldGenerateUVs(NewFile):
obj = bpy.data.objects.new("Object", bpy.data.meshes.new("Mesh"))
material = bpy.data.materials.new("Material")
obj.data.materials.append(material)
material.use_nodes = False
tool.Style.set_use_nodes(material, False)
assert subject.should_generate_uvs(obj) is False
def test_needs_texture_coordinates_with_a_uv_output(self):
@@ -497,7 +497,7 @@ class TestShouldGenerateUVs(NewFile):
obj = bpy.data.objects.new("Object", bpy.data.meshes.new("Mesh"))
material = bpy.data.materials.new("Material")
obj.data.materials.append(material)
material.use_nodes = True
tool.Style.set_use_nodes(material, True)
bsdf = tool.Blender.get_material_node(material, "BSDF_PRINCIPLED")
node = material.node_tree.nodes.new(type="ShaderNodeTexImage")
@@ -513,7 +513,7 @@ class TestShouldGenerateUVs(NewFile):
obj = bpy.data.objects.new("Object", bpy.data.meshes.new("Mesh"))
material = bpy.data.materials.new("Material")
obj.data.materials.append(material)
material.use_nodes = True
tool.Style.set_use_nodes(material, True)
bsdf = tool.Blender.get_material_node(material, "BSDF_PRINCIPLED")
node = material.node_tree.nodes.new(type="ShaderNodeTexImage")
+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