53 lines
2.0 KiB
Python
53 lines
2.0 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 TestMaskDrawRegistration(unittest.TestCase):
|
|
def test_plugin_registers_mask_draw_node(self):
|
|
plugin = load_plugin_package()
|
|
|
|
self.assertIn("LLSSimpleMaskDraw", plugin.NODE_CLASS_MAPPINGS)
|
|
self.assertEqual(
|
|
plugin.NODE_DISPLAY_NAME_MAPPINGS["LLSSimpleMaskDraw"],
|
|
"LLS Simple Mask Draw",
|
|
)
|
|
|
|
def test_mask_draw_schema_matches_contract(self):
|
|
plugin = load_plugin_package()
|
|
node_cls = plugin.NODE_CLASS_MAPPINGS["LLSSimpleMaskDraw"]
|
|
schema = node_cls.INPUT_TYPES()
|
|
|
|
self.assertEqual(node_cls.CATEGORY, "LLS/Image Repair")
|
|
self.assertEqual(node_cls.FUNCTION, "draw_mask")
|
|
self.assertEqual(node_cls.RETURN_TYPES, ("IMAGE", "MASK", "IMAGE"))
|
|
self.assertEqual(node_cls.RETURN_NAMES, ("image", "mask", "preview_image"))
|
|
|
|
required = schema["required"]
|
|
optional = schema["optional"]
|
|
hidden = schema["hidden"]
|
|
|
|
self.assertEqual(required["image"], ("IMAGE",))
|
|
self.assertEqual(optional["input_mask"], ("MASK",))
|
|
self.assertEqual(required["draw_mode"][0], ["brush", "erase"])
|
|
self.assertEqual(required["brush_size"][0], "INT")
|
|
self.assertEqual(required["brush_size"][1]["max"], 512)
|
|
self.assertEqual(required["brush_softness"][0], "FLOAT")
|
|
self.assertEqual(required["overlay_alpha"][0], "FLOAT")
|
|
self.assertEqual(required["overlay_alpha"][1]["default"], 0.4)
|
|
self.assertEqual(required["invert_mask"][0], "BOOLEAN")
|
|
self.assertEqual(required["mask_state_json"][0], "STRING")
|
|
self.assertEqual(
|
|
required["mask_state_json"][1],
|
|
{"default": "{}", "multiline": False, "advanced": True},
|
|
)
|
|
self.assertEqual(hidden["node_id"], "UNIQUE_ID")
|
|
self.assertTrue(callable(getattr(node_cls, "draw_mask", None)))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|