File: test_plugin.py

package info (click to toggle)
ipython 0.13.1-2%2Bdeb7u1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 15,752 kB
  • sloc: python: 69,537; makefile: 355; lisp: 272; sh: 80; objc: 37
file content (46 lines) | stat: -rw-r--r-- 1,303 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
"""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'))