Files
Gin3601-LLS-node/tests/test_mask_create_registration.py
2026-05-25 13:58:50 +08:00

63 lines
2.8 KiB
Python

import unittest
try:
from .test_mask_draw_helpers import load_plugin_package
except ImportError:
from test_mask_draw_helpers import load_plugin_package
class TestMaskCreateRegistration(unittest.TestCase):
def test_plugin_registers_mask_create_node(self):
plugin = load_plugin_package()
self.assertIn("LLSSimpleMaskCreate", plugin.NODE_CLASS_MAPPINGS)
self.assertEqual(
plugin.NODE_DISPLAY_NAME_MAPPINGS["LLSSimpleMaskCreate"],
"LLS Simple Mask Create",
)
def test_mask_create_schema_matches_contract(self):
plugin = load_plugin_package()
node_cls = plugin.NODE_CLASS_MAPPINGS["LLSSimpleMaskCreate"]
schema = node_cls.INPUT_TYPES()
self.assertEqual(node_cls.CATEGORY, "LLS/Mask")
self.assertEqual(node_cls.FUNCTION, "create_mask")
self.assertEqual(node_cls.RETURN_TYPES, ("IMAGE", "MASK", "LLS_MASK_INFO"))
self.assertEqual(node_cls.RETURN_NAMES, ("mask_image", "mask", "area_info"))
required = schema["required"]
optional = schema["optional"]
self.assertEqual(required["image_width"][0], "INT")
self.assertEqual(required["image_height"][0], "INT")
self.assertEqual(required["image_width"][1]["default"], 1024)
self.assertEqual(required["image_height"][1]["default"], 1024)
self.assertEqual(optional["input_mask"], ("MASK",))
self.assertEqual(required["shape_type"][0], ["rectangle", "square", "circle", "ellipse"])
self.assertEqual(required["coordinate_mode"][0], ["pixel", "percent"])
self.assertEqual(required["shape_type"][1]["default"], "rectangle")
self.assertEqual(required["coordinate_mode"][1]["default"], "percent")
self.assertEqual(required["center_x"][0], "FLOAT")
self.assertEqual(required["center_x"][1]["default"], 0.5)
self.assertEqual(required["center_y"][1]["default"], 0.5)
self.assertEqual(required["width"][1]["default"], 0.3)
self.assertEqual(required["height"][1]["default"], 0.3)
self.assertEqual(required["radius"][1]["default"], 0.15)
self.assertEqual(required["feather"][0], "FLOAT")
self.assertEqual(required["blur"][0], "FLOAT")
self.assertEqual(required["invert_mask"][0], "BOOLEAN")
self.assertEqual(required["combine_mode"][0], ["replace", "union", "subtract", "intersect"])
self.assertEqual(required["combine_mode"][1]["default"], "replace")
self.assertTrue(callable(getattr(node_cls, "create_mask", None)))
def test_plugin_does_not_register_mask_preview_node(self):
plugin = load_plugin_package()
self.assertNotIn("LLSSimpleMaskPreview", plugin.NODE_CLASS_MAPPINGS)
self.assertNotIn("LLSSimpleMaskPreview", plugin.NODE_DISPLAY_NAME_MAPPINGS)
if __name__ == "__main__":
unittest.main()