##// END OF EJS Templates
Don't unregister failing post-exec callbacks automatically...
Don't unregister failing post-exec callbacks automatically Instead, print a message regarding the failure, pointing to new `disable_failing_post_execute` trait for skipping failing callbacks. When this flag is False (the default), failing callbacks will continue to be called. When True, behavior is unchanged from previous, where callbacks are only allowed to fail once.

File last commit:

r2738:95a4f176
r5734:f972ef86
Show More
test_plugin.py
46 lines | 1.3 KiB | text/x-python | PythonLexer
Brian Granger
Finishing work on configurables, plugins and extensions.
r2738 """Tests for plugin.py"""
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
from unittest import TestCase
from IPython.core.plugin import Plugin, PluginManager
#-----------------------------------------------------------------------------
# Tests
#-----------------------------------------------------------------------------
class FooPlugin(Plugin):
pass
class BarPlugin(Plugin):
pass
class BadPlugin(object):
pass
class PluginTest(TestCase):
def setUp(self):
self.manager = PluginManager()
def test_register_get(self):
self.assertEquals(None, self.manager.get_plugin('foo'))
foo = FooPlugin()
self.manager.register_plugin('foo', foo)
self.assertEquals(foo, self.manager.get_plugin('foo'))
bar = BarPlugin()
self.assertRaises(KeyError, self.manager.register_plugin, 'foo', bar)
bad = BadPlugin()
self.assertRaises(TypeError, self.manager.register_plugin, 'bad')
def test_unregister(self):
foo = FooPlugin()
self.manager.register_plugin('foo', foo)
self.manager.unregister_plugin('foo')
self.assertEquals(None, self.manager.get_plugin('foo'))