def test_wildcard_plugins(): """Wildcard plugins process instances without family""" context = pyblish.plugin.Context() for type in ('selectors', 'validators'): for plugin in pyblish.plugin.discover(type=type): plugin().process_all(context)
def test_plugin_interface(): """All plugins share interface""" ctx = pyblish.plugin.Context() for plugin in pyblish.plugin.discover(): for instance, error in plugin().process(ctx): assert (error is None) or isinstance(error, Exception)
def my_process(plugin, context, instance=None): result = { "success": False, "plugin": plugin, "instance": None, "error": None, "records": list(), "duration": None } plugin = plugin() provider = pyblish.plugin.Provider() provider.inject("context", context) provider.invoke(plugin.process) return result
def test_limited_to_instances(): """Only process instances specified in argument `instances`""" ctx = pyblish.plugin.Context() for name in ("Instance01", "Instance02", "Instance03"): inst = ctx.create_instance(name=name) inst.set_data("family", "full") plugin = pyblish.plugin.discover(regex="ValidateInstance")[0] assert plugin for inst, err in plugin().process(ctx, instances=["Instance01", "Instance03"]): assert err is None for inst in ctx: name = inst.data("name") if name in ["Instance01", "Instance03"]: assert inst.data('validated', False) is True if name == "Instance02": assert inst.data('validated', False) is False
def test_print_plugin(): """Printing plugin returns name of class""" plugins = pyblish.plugin.discover('validators') plugin = plugins[0] assert plugin.__name__ in repr(plugin()) assert plugin.__name__ == str(plugin())