86 lines
3.2 KiB
Python
86 lines
3.2 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 TestMaskProcessRegistration(unittest.TestCase):
|
|
def test_plugin_registers_mask_processing_nodes(self):
|
|
plugin = load_plugin_package()
|
|
|
|
self.assertIn("LLSMaskProcess", plugin.NODE_CLASS_MAPPINGS)
|
|
self.assertIn("LLSMaskCombine", plugin.NODE_CLASS_MAPPINGS)
|
|
self.assertEqual(
|
|
plugin.NODE_DISPLAY_NAME_MAPPINGS["LLSMaskProcess"],
|
|
"LLS Mask Process",
|
|
)
|
|
self.assertEqual(
|
|
plugin.NODE_DISPLAY_NAME_MAPPINGS["LLSMaskCombine"],
|
|
"LLS Mask Combine",
|
|
)
|
|
|
|
def test_mask_process_schema_matches_contract(self):
|
|
plugin = load_plugin_package()
|
|
node_cls = plugin.NODE_CLASS_MAPPINGS["LLSMaskProcess"]
|
|
schema = node_cls.INPUT_TYPES()
|
|
required = schema["required"]
|
|
optional = schema["optional"]
|
|
|
|
self.assertEqual(node_cls.CATEGORY, "LLS/Mask")
|
|
self.assertEqual(node_cls.FUNCTION, "process")
|
|
self.assertEqual(node_cls.RETURN_TYPES, ("MASK",))
|
|
self.assertEqual(node_cls.RETURN_NAMES, ("mask",))
|
|
self.assertEqual(required["mask"], ("MASK",))
|
|
self.assertEqual(
|
|
required["operation"][0],
|
|
[
|
|
"passthrough",
|
|
"threshold",
|
|
"invert",
|
|
"grow",
|
|
"shrink",
|
|
"blur",
|
|
"feather",
|
|
"fill_holes",
|
|
"remove_small_regions",
|
|
"smooth",
|
|
"clamp",
|
|
"resize_to_image",
|
|
],
|
|
)
|
|
self.assertEqual(required["value_float"][0], "FLOAT")
|
|
self.assertEqual(required["value_float"][1]["default"], 0.5)
|
|
self.assertEqual(required["value_float"][1]["min"], 0.0)
|
|
self.assertEqual(required["value_float"][1]["max"], 1.0)
|
|
self.assertEqual(required["value_int"][0], "INT")
|
|
self.assertEqual(required["value_int"][1]["default"], 8)
|
|
self.assertEqual(required["value_int"][1]["min"], -512)
|
|
self.assertEqual(required["value_int"][1]["max"], 512)
|
|
self.assertEqual(optional["image"], ("IMAGE",))
|
|
|
|
def test_mask_combine_schema_matches_contract(self):
|
|
plugin = load_plugin_package()
|
|
node_cls = plugin.NODE_CLASS_MAPPINGS["LLSMaskCombine"]
|
|
schema = node_cls.INPUT_TYPES()
|
|
required = schema["required"]
|
|
|
|
self.assertEqual(node_cls.CATEGORY, "LLS/Mask")
|
|
self.assertEqual(node_cls.FUNCTION, "combine")
|
|
self.assertEqual(node_cls.RETURN_TYPES, ("MASK",))
|
|
self.assertEqual(node_cls.RETURN_NAMES, ("mask",))
|
|
self.assertEqual(required["mask_a"], ("MASK",))
|
|
self.assertEqual(required["mask_b"], ("MASK",))
|
|
self.assertEqual(required["mode"][0], ["add", "subtract", "intersect", "xor", "max", "min"])
|
|
|
|
def test_plugin_does_not_register_mask_preview_node(self):
|
|
plugin = load_plugin_package()
|
|
|
|
self.assertNotIn("LLSMaskPreview", plugin.NODE_CLASS_MAPPINGS)
|
|
self.assertNotIn("LLSMaskPreview", plugin.NODE_DISPLAY_NAME_MAPPINGS)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|