63 lines
2.8 KiB
Python
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()
|