~thekorn/zeitgeist/exclusive_clients

« back to all changes in this revision

Viewing changes to test/resonance-engine-extension-test.py

  • Committer: Markus Korn
  • Date: 2009-12-10 12:31:35 UTC
  • Revision ID: thekorn@gmx.de-20091210123135-6swv0qe8tywvvtn4
added failing testcase to test insert_hook for extensions

Show diffs side-by-side

added added

removed removed

Lines of Context:
6
6
import os
7
7
sys.path.insert(0, os.path.join(os.path.dirname(__file__), ".."))
8
8
 
 
9
import _zeitgeist
9
10
from _zeitgeist.engine.resonance_engine import ZeitgeistEngine
10
11
from _zeitgeist.engine.extension import Extension
 
12
from _zeitgeist.engine import create_engine
11
13
 
12
14
import unittest
 
15
from testutils import import_events
13
16
 
14
17
class _Extension1(Extension):
15
18
        PUBLIC_METHODS = ["return_hallo", "return_engine"]
22
25
                
23
26
        def return_engine(self):
24
27
                return self.engine
 
28
 
 
29
 
 
30
class _engineTestClass(unittest.TestCase):
 
31
        
 
32
        def setUp (self):
 
33
                _zeitgeist.engine.DB_PATH = ":memory:"
 
34
                self.engine = create_engine()
 
35
                
 
36
        def tearDown (self):
 
37
                self.engine.close()
 
38
                _zeitgeist.engine._engine = None
25
39
        
26
40
 
27
41
class TestExtensions(unittest.TestCase):
34
48
                self.assertEqual(engine.extensions.return_hallo(), "Hallo")
35
49
                self.assertRaises(AttributeError, engine.extensions.__getattr__, "return_boo")
36
50
                self.assertEqual(engine.extensions.return_engine(), engine)
 
51
                
 
52
                
 
53
class TestExtensionHooks(_engineTestClass):
 
54
        
 
55
        def testInsertHook(self):
 
56
                
 
57
                class BlockAllInsertExtension(Extension):
 
58
                        PUBLIC_METHODS = ["return_hallo",]
 
59
                        
 
60
                        def return_hallo(self):
 
61
                                return "HALLO"
 
62
                                
 
63
                        def insert_event_hook(self, event):
 
64
                                return None
 
65
                                
 
66
                self.engine.extensions.load(BlockAllInsertExtension)
 
67
                ids = import_events("test/data/five_events.js", self.engine)
37
68
 
38
69
if __name__ == "__main__":
39
70
        unittest.main()