|
|
"""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.assertEqual(None, self.manager.get_plugin('foo'))
|
|
|
foo = FooPlugin()
|
|
|
self.manager.register_plugin('foo', foo)
|
|
|
self.assertEqual(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.assertEqual(None, self.manager.get_plugin('foo'))
|
|
|
|