Plugin class reference
The plugin system in nose2 is based on the plugin system in
unittest2’s plugins
branch.
Plugin base class
- class nose2.events.Plugin(*args, **kwargs)[source]
Base class for nose2 plugins
All nose2 plugins must subclass this class.
- session
The
nose2.session.Session
under which the plugin has been loaded.
- config
The
nose2.config.Config
representing the plugin’s config section as loaded from the session’s config files.
- commandLineSwitch
A tuple of (short opt, long opt, help text) that defines a command line flag that activates this plugin. The short opt may be
None
. If defined, it must be a single upper-case character. Both short and long opt must not start with dashes.Example:
commandLineSwitch = ('B', 'buffer-output', 'Buffer output during tests')
- configSection
The name config file section to load into this plugin’s config.
- alwaysOn
If this plugin should automatically register itself, set alwaysOn to
True
. Default isFalse
.
Note
Plugins that use config values from config files and want to use the nose2 sphinx extension to automatically generate documentation must extract all config values from
self.config
in__init__
. Otherwise the extension will not be able to detect the config keys that the plugin uses.- addArgument(callback, short_opt, long_opt, help_text=None)[source]
Add command-line option that takes one argument.
- Parameters
callback – Callback function to run when flag is seen. The callback will receive one argument.
short_opt – Short option. Must be uppercase, no dashes.
long_opt – Long option. Must not start with dashes
help_text – Help text for users so they know what this flag does.
- addFlag(callback, short_opt, long_opt, help_text=None)[source]
Add command-line flag that takes no arguments
- Parameters
callback – Callback function to run when flag is seen. The callback will receive one empty argument.
short_opt – Short option. Must be uppercase, no dashes.
long_opt – Long option. Must not start with dashes
help_text – Help text for users so they know what this flag does.
- addMethods(*methods)[source]
Add new plugin methods to hooks registry
Any plugins that are already registered and implement a method added here will be registered for that method as well.
- addOption(callback, short_opt, long_opt, help_text=None, nargs=0)[source]
Add command-line option.
- Parameters
callback – Callback function to run when flag is seen. The callback will receive one argument. The “callback” may also be a list, in which case values submitted on the command line will be appended to the list.
short_opt – Short option. Must be uppercase, no dashes.
long_opt – Long option. Must not start with dashes
help_text – Help text for users so they know what this flag does.
nargs – Number of arguments to consume from command line.
Plugin interface classes
- class nose2.events.PluginInterface[source]
Definition of plugin interface.
Instances of this class contain the methods that may be called, and a dictionary of
nose2.events.Hook
instances bound to each method.In a plugin, PluginInterface instance is typically available as self.session.hooks, and plugin hooks may be called on it directly:
event = events.LoadFromModuleEvent(module=the_module) self.session.hooks.loadTestsFromModule(event)
- preRegistrationMethods
Tuple of methods that are called before registration.
- methods
Tuple of available plugin hook methods.
- hookClass
Class to instantiate for each hook. Default:
nose2.events.Hook
.
- addMethod(method)[source]
Add a method to the available method.
This allows plugins to register for this method.
- Parameters
method – A method name
- hookClass
alias of
nose2.events.Hook
- class nose2.events.Hook(method)[source]
A plugin hook
Each plugin method in the
nose2.events.PluginInterface
is represented at runtime by a Hook instance that lists the plugins that should be called by that hook.- method
The name of the method that this Hook represents.
- plugins
The list of plugin instances bound to this hook.