diff -r 5d4a943695d1 -r 18aec79ec3a3 devtools/testlib.py --- a/devtools/testlib.py Mon Aug 03 09:37:13 2009 +0200 +++ b/devtools/testlib.py Mon Aug 03 10:50:57 2009 +0200 @@ -185,7 +185,8 @@ req = req or rset and rset.req or self.request() req.form['vid'] = vid kwargs['rset'] = rset - view = self.vreg.select('views', vid, req, **kwargs) + viewsreg = self.vreg['views'] + view = viewsreg.select(vid, req, **kwargs) # set explicit test description if rset is not None: self.set_description("testing %s, mod=%s (%s)" % ( @@ -197,9 +198,9 @@ viewfunc = view.render else: kwargs['view'] = view - templateview = self.vreg.select('views', template, req, **kwargs) - viewfunc = lambda **k: self.vreg.main_template(req, template, - **kwargs) + templateview = viewsreg.select(template, req, **kwargs) + viewfunc = lambda **k: viewsreg.main_template(req, template, + **kwargs) kwargs.pop('rset') return self._test_view(viewfunc, view, template, kwargs) @@ -272,7 +273,8 @@ req = rset.req only_once_vids = ('primary', 'secondary', 'text') req.data['ex'] = ValueError("whatever") - for vid, views in self.vreg.registry('views').items(): + viewsvreg = self.vreg['views'] + for vid, views in viewsvreg.items(): if vid[0] == '_': continue if rset.rowcount > 1 and vid in only_once_vids: @@ -282,7 +284,7 @@ and not issubclass(view, NotificationView)] if views: try: - view = self.vreg.select_best(views, req, rset=rset) + view = viewsvreg.select_best(views, req, rset=rset) if view.linkable(): yield view else: @@ -295,19 +297,19 @@ def list_actions_for(self, rset): """returns the list of actions that can be applied on `rset`""" req = rset.req - for action in self.vreg.possible_objects('actions', req, rset=rset): + for action in self.vreg['actions'].possible_objects(req, rset=rset): yield action def list_boxes_for(self, rset): """returns the list of boxes that can be applied on `rset`""" req = rset.req - for box in self.vreg.possible_objects('boxes', req, rset=rset): + for box in self.vreg['boxes'].possible_objects(req, rset=rset): yield box def list_startup_views(self): """returns the list of startup views""" req = self.request() - for view in self.vreg.possible_views(req, None): + for view in self.vreg['views'].possible_views(req, None): if view.category == 'startupview': yield view.id else: @@ -385,26 +387,25 @@ from cubicweb.devtools.apptest import TestEnvironment env = testclass._env = TestEnvironment('data', configcls=testclass.configcls, requestcls=testclass.requestcls) - vreg = env.vreg - vreg._selected = {} - orig_select_best = vreg.__class__.select_best - def instr_select_best(self, *args, **kwargs): - selected = orig_select_best(self, *args, **kwargs) - try: - self._selected[selected.__class__] += 1 - except KeyError: - self._selected[selected.__class__] = 1 - except AttributeError: - pass # occurs on vreg used to restore database - return selected - vreg.__class__.select_best = instr_select_best + for reg in env.vreg.values(): + reg._selected = {} + orig_select_best = reg.__class__.select_best + def instr_select_best(self, *args, **kwargs): + selected = orig_select_best(self, *args, **kwargs) + try: + self._selected[selected.__class__] += 1 + except KeyError: + self._selected[selected.__class__] = 1 + except AttributeError: + pass # occurs on reg used to restore database + return selected + reg.__class__.select_best = instr_select_best def print_untested_objects(testclass, skipregs=('hooks', 'etypes')): - vreg = testclass._env.vreg - for registry, vobjectsdict in vreg.items(): - if registry in skipregs: + for regname, reg in testclass._env.vreg.iteritems(): + if regname in skipregs: continue - for vobjects in vobjectsdict.values(): + for vobjects in reg.itervalues(): for vobject in vobjects: - if not vreg._selected.get(vobject): - print 'not tested', registry, vobject + if not reg._selected.get(vobject): + print 'not tested', regname, vobject