85 lines
3.7 KiB
Python
85 lines
3.7 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, ("MASK", "IMAGE", "LLS_MASK_INFO"))
|
|
self.assertEqual(node_cls.RETURN_NAMES, ("mask", "mask_image", "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_registers_mask_preview_node(self):
|
|
plugin = load_plugin_package()
|
|
|
|
self.assertIn("LLSSimpleMaskPreview", plugin.NODE_CLASS_MAPPINGS)
|
|
self.assertEqual(
|
|
plugin.NODE_DISPLAY_NAME_MAPPINGS["LLSSimpleMaskPreview"],
|
|
"LLS Simple Mask Preview",
|
|
)
|
|
|
|
def test_mask_preview_schema_matches_contract(self):
|
|
plugin = load_plugin_package()
|
|
node_cls = plugin.NODE_CLASS_MAPPINGS["LLSSimpleMaskPreview"]
|
|
schema = node_cls.INPUT_TYPES()
|
|
|
|
self.assertEqual(node_cls.CATEGORY, "LLS/Mask")
|
|
self.assertEqual(node_cls.FUNCTION, "preview_mask")
|
|
self.assertEqual(node_cls.RETURN_TYPES, ("IMAGE",))
|
|
self.assertEqual(node_cls.RETURN_NAMES, ("preview_image",))
|
|
|
|
required = schema["required"]
|
|
|
|
self.assertEqual(required["image"], ("IMAGE",))
|
|
self.assertEqual(required["mask"], ("MASK",))
|
|
self.assertEqual(required["overlay_alpha"][0], "FLOAT")
|
|
self.assertEqual(required["overlay_alpha"][1]["default"], 0.4)
|
|
self.assertEqual(required["overlay_color"][0], ["red", "green", "blue"])
|
|
self.assertTrue(callable(getattr(node_cls, "preview_mask", None)))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|