def test_wildcard_plugins(): """Wildcard plugins process instances without family""" context = pyblish.backend.plugin.Context() for type in ('selectors', 'validators'): for plugin in pyblish.backend.plugin.discover(type=type): plugin().process_all(context)
def test_plugin_interface(): """All plugins share interface""" ctx = pyblish.backend.plugin.Context() for plugin in pyblish.backend.plugin.discover(): for instance, error in plugin().process(ctx): assert (error is None) or isinstance(error, Exception)
def process(type, context): """Perform process step `process` upon context `context` Arguments: process (str): Type of process to apply context (Context): Context upon which to appy process """ assert isinstance(type, basestring) assert isinstance(context, pyblish.backend.plugin.Context) host = pyblish.backend.plugin.current_host() plugins = pyblish.backend.plugin.discover(type=type) compatible_plugins = pyblish.backend.plugin.plugins_by_host(plugins, host) for plugin in compatible_plugins: for instance, error in plugin().process(context): yield instance, error
def process(process, context): """Perform process step `process` upon context `context` Arguments: process (str): Type of process to apply context (Context): Context upon which to appy process """ print "Processing ctx: %s with %s" % (context, process) assert isinstance(process, basestring) assert isinstance(context, pyblish.backend.plugin.Context) for plugin in pyblish.backend.plugin.discover(type=process): if not pyblish.backend.plugin.current_host() in plugin.hosts: continue log.info("Applying {process} using {plugin}".format( process=process, plugin=plugin.__name__)) for instance, error in plugin().process(context): yield instance, error
def test_print_plugin(): """Printing plugin returns name of class""" plugins = pyblish.backend.plugin.discover('validators') plugin = plugins[0] assert plugin.__name__ in repr(plugin()) assert plugin.__name__ == str(plugin())