[tests] force hook registry instanciation for test configs
authorAdrien Di Mascio <Adrien.DiMascio@logilab.fr>
Wed, 23 Sep 2009 12:45:40 +0200
changeset 3424 60c9722a590b
parent 3423 d1356e008b19
child 3425 4035fc72d73c
[tests] force hook registry instanciation for test configs
server/repository.py
--- a/server/repository.py	Wed Sep 23 12:31:55 2009 +0200
+++ b/server/repository.py	Wed Sep 23 12:45:40 2009 +0200
@@ -173,6 +173,13 @@
         if config.open_connections_pools:
             self.open_connections_pools()
 
+    def _boostrap_hook_registry(self):
+        """called during bootstrap since we need the metadata hooks"""
+        hooksdirectory = join(CW_SOFTWARE_ROOT, 'hooks')
+        self.vreg.init_registration([hooksdirectory])
+        self.vreg.load_file(join(hooksdirectory, 'metadata.py'),
+                            'cubicweb.hooks.metadata')
+
     def open_connections_pools(self):
         config = self.config
         self._available_pools = Queue.Queue()
@@ -191,15 +198,14 @@
             for modname in ('__init__', 'authobjs', 'wfobjs'):
                 self.vreg.load_file(join(etdirectory, '%s.py' % modname),
                                 'cubicweb.entities.%s' % modname)
-            hooksdirectory = join(CW_SOFTWARE_ROOT, 'hooks')
-            self.vreg.init_registration([hooksdirectory])
-            self.vreg.load_file(join(hooksdirectory, 'metadata.py'),
-                                'cubicweb.hooks.metadata')
+            self._boostrap_hook_registry()
         else:
             # test start: use the file system schema (quicker)
             self.warning("set fs instance'schema")
             config.bootstrap_cubes()
             self.set_schema(config.load_schema())
+            # make sure we have a hook registry in tests
+            self.vreg['hooks'] = hook.HooksRegistry(self.vreg)
         if not config.creating:
             if 'CWProperty' in self.schema:
                 self.vreg.init_properties(self.properties())