mirror of
https://github.com/blender/blender.git
synced 2025-08-04 21:25:22 +00:00

The issue was an oversight in f7f18cd0c7
.
This patch also adds some unit tests that would have caught this error.
Pull Request: https://projects.blender.org/blender/blender/pulls/143026
85 lines
2.4 KiB
Python
85 lines
2.4 KiB
Python
# SPDX-FileCopyrightText: 2025 Blender Authors
|
|
#
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
import pathlib
|
|
import sys
|
|
import tempfile
|
|
import bpy
|
|
import unittest
|
|
|
|
args = None
|
|
|
|
|
|
class StructureTypeInferenceTest(unittest.TestCase):
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
cls.testdir = args.testdir
|
|
|
|
def setUp(self):
|
|
self.assertTrue(self.testdir.exists(),
|
|
"Test dir {0} should exist".format(self.testdir))
|
|
|
|
def load_testfile(self):
|
|
bpy.ops.wm.open_mainfile(filepath=str(self.testdir / "socket_usage_inference.blend"))
|
|
|
|
def assertUsed(self, socket):
|
|
self.assertTrue(socket.is_icon_visible)
|
|
self.assertFalse(socket.is_inactive)
|
|
|
|
def assertGrayedOut(self, socket):
|
|
self.assertTrue(socket.is_icon_visible)
|
|
self.assertTrue(socket.is_inactive)
|
|
|
|
def assertHidden(self, socket):
|
|
self.assertFalse(socket.is_icon_visible)
|
|
|
|
def test_geometry_nodes(self):
|
|
self.load_testfile()
|
|
tree = bpy.data.node_groups["Geometry Nodes"]
|
|
|
|
node = tree.nodes["Math Group"]
|
|
self.assertUsed(node.inputs["A"])
|
|
self.assertUsed(node.inputs["B"])
|
|
|
|
node = tree.nodes["Menu Switch Group"]
|
|
self.assertUsed(node.inputs["Menu"])
|
|
self.assertUsed(node.inputs["A"])
|
|
self.assertHidden(node.inputs["B"])
|
|
|
|
node = tree.nodes["Transform Matrix"]
|
|
self.assertUsed(node.inputs["Mode"])
|
|
self.assertUsed(node.inputs["Geometry"])
|
|
self.assertUsed(node.inputs["Transform"])
|
|
self.assertHidden(node.inputs["Translation"])
|
|
self.assertHidden(node.inputs["Rotation"])
|
|
self.assertHidden(node.inputs["Scale"])
|
|
|
|
node = tree.nodes["Transform Components"]
|
|
self.assertUsed(node.inputs["Mode"])
|
|
self.assertUsed(node.inputs["Geometry"])
|
|
self.assertUsed(node.inputs["Translation"])
|
|
self.assertUsed(node.inputs["Rotation"])
|
|
self.assertUsed(node.inputs["Scale"])
|
|
self.assertHidden(node.inputs["Transform"])
|
|
|
|
|
|
def main():
|
|
global args
|
|
import argparse
|
|
|
|
if '--' in sys.argv:
|
|
argv = [sys.argv[0]] + sys.argv[sys.argv.index('--') + 1:]
|
|
else:
|
|
argv = sys.argv
|
|
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument('--testdir', required=True, type=pathlib.Path)
|
|
args, remaining = parser.parse_known_args(argv)
|
|
|
|
unittest.main(argv=remaining)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|