"""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'))