44 lines
2.3 KiB
Python
44 lines
2.3 KiB
Python
import math
|
|
import unittest
|
|
|
|
from plugin_loader import plugin
|
|
|
|
|
|
class RegistrationTests(unittest.TestCase):
|
|
def test_independent_nodes(self):
|
|
self.assertEqual(set(plugin.NODE_CLASS_MAPPINGS), {"ChickHideNode", "ChickSaveImage", "ChickRestoreImage", "NotifyMeNode"})
|
|
self.assertEqual(set(plugin.NODE_DISPLAY_NAME_MAPPINGS), set(plugin.NODE_CLASS_MAPPINGS))
|
|
|
|
def test_chick_node_is_independently_registered(self):
|
|
node = plugin.NODE_CLASS_MAPPINGS["ChickHideNode"]()
|
|
self.assertEqual(node.RETURN_NAMES, ("chick_image",))
|
|
schema = node.INPUT_TYPES()
|
|
self.assertEqual(set(schema["optional"]), {"images", "audio"})
|
|
self.assertEqual(list(schema["required"]), ["password", "title", "fps", "compress", "combine_video"])
|
|
self.assertEqual(schema["required"]["fps"][1]["default"], 16)
|
|
self.assertTrue(schema["required"]["combine_video"][1]["default"])
|
|
|
|
def test_private_saver_is_independently_registered(self):
|
|
node = plugin.NODE_CLASS_MAPPINGS["ChickSaveImage"]()
|
|
schema = node.INPUT_TYPES()
|
|
self.assertNotIn("prompt", schema.get("hidden", {}))
|
|
self.assertEqual(schema["hidden"]["extra_pnginfo"], "EXTRA_PNGINFO")
|
|
|
|
def test_notice_runs_on_every_queue(self):
|
|
node = plugin.NODE_CLASS_MAPPINGS["NotifyMeNode"]
|
|
self.assertTrue(math.isnan(node.IS_CHANGED()))
|
|
self.assertTrue(node.OUTPUT_NODE)
|
|
self.assertEqual(node.RETURN_TYPES, ("*",))
|
|
self.assertEqual(node.RETURN_NAMES, ("passthrough",))
|
|
schema = node.INPUT_TYPES()
|
|
self.assertEqual(set(schema["required"]), {"callback_url"})
|
|
self.assertEqual(schema["optional"]["msg"], ("STRING", {"forceInput": True}))
|
|
self.assertEqual(schema["optional"]["passthrough"], ("*", {"forceInput": True}))
|
|
self.assertNotIn("allow_localhost", schema["optional"])
|
|
self.assertEqual(schema["optional"]["id"][0], "STRING")
|
|
self.assertEqual(schema["optional"]["id"][1]["default"], "")
|
|
self.assertFalse(schema["optional"]["id"][1].get("forceInput", False))
|
|
widgets = [key for group in ("required", "optional") for key, field in schema[group].items()
|
|
if not field[1].get("forceInput", False)]
|
|
self.assertEqual(widgets, ["callback_url", "id"])
|