- Implement tests for image layer functionality including alpha curve and depth layer behavior. - Create tests for image plane evaluation and modifier input handling. - Add tests to verify the saved asset inventory and its persistence. - Introduce tests for the documentation command to ensure correct project version deployment. - Validate the extension manifest structure and required permissions. - Develop tests for the packaging process, ensuring correct platform handling and dependency management. - Enhance image depth plane group functionality with new split threshold input and surface processing.
28 lines
1.7 KiB
Python
28 lines
1.7 KiB
Python
import bpy
|
|
import pytest
|
|
from types import SimpleNamespace
|
|
from anyimage.common import material
|
|
from tests.support.materials import image_layer
|
|
|
|
|
|
@pytest.mark.parametrize("enabled", [False, True])
|
|
@pytest.mark.parametrize("shadeless", [False, True])
|
|
@pytest.mark.parametrize("view", ["AgX", "Unknown"])
|
|
def test_material_alpha_strength_follows_preference(image_layer, monkeypatch, enabled, shadeless, view):
|
|
monkeypatch.setattr(material, "material_node_group", lambda depth_plane=False: image_layer)
|
|
monkeypatch.setattr(material, "configured_material_view_adaptation", lambda: enabled)
|
|
color = bpy.data.images.new("Alpha edge", width=2, height=2, alpha=True)
|
|
scene = SimpleNamespace(view_settings=SimpleNamespace(view_transform=view))
|
|
result = material.create_image_material(color, color, shadeless=shadeless, scene=scene)
|
|
layer = next(node for node in result.node_tree.nodes if node.type == "GROUP" and node.node_tree == image_layer)
|
|
assert layer.inputs["Alpha Fix"].default_value == float(enabled)
|
|
alpha_link = layer.outputs["Alpha"].links[0]
|
|
assert alpha_link.to_node.type == ("MIX_SHADER" if shadeless else "BSDF_PRINCIPLED")
|
|
assert alpha_link.to_socket.name == ("Fac" if shadeless else "Alpha")
|
|
layer.inputs["Alpha Fix"].default_value = 0.5
|
|
monkeypatch.setattr(material, "configured_material_view_adaptation", lambda: not enabled)
|
|
second = material.create_image_material(color, color, shadeless=shadeless, scene=scene)
|
|
second_layer = next(node for node in second.node_tree.nodes if node.type == "GROUP" and node.node_tree == image_layer)
|
|
assert second_layer.inputs["Alpha Fix"].default_value == float(not enabled)
|
|
assert layer.inputs["Alpha Fix"].default_value == 0.5
|