devtools/repotest.py
changeset 9850 5ef9dd383ae2
parent 9835 5ad968dd9d51
child 10365 21461f80f348
equal deleted inserted replaced
9849:b18ef631e72c 9850:5ef9dd383ae2
   155                 raise SkipTest(str(ex))
   155                 raise SkipTest(str(ex))
   156 
   156 
   157     def setUp(self):
   157     def setUp(self):
   158         self.repo = FakeRepo(self.schema, config=FakeConfig(apphome=self.datadir))
   158         self.repo = FakeRepo(self.schema, config=FakeConfig(apphome=self.datadir))
   159         self.repo.system_source = mock_object(dbdriver=self.backend)
   159         self.repo.system_source = mock_object(dbdriver=self.backend)
   160         self.rqlhelper = RQLHelper(self.schema, special_relations={'eid': 'uid',
   160         self.rqlhelper = RQLHelper(self.schema,
   161                                                                    'has_text': 'fti'},
   161                                    special_relations={'eid': 'uid',
       
   162                                                       'has_text': 'fti'},
   162                                    backend=self.backend)
   163                                    backend=self.backend)
   163         self.qhelper = QuerierHelper(self.repo, self.schema)
   164         self.qhelper = QuerierHelper(self.repo, self.schema)
   164         ExecutionPlan._check_permissions = _dummy_check_permissions
   165         ExecutionPlan._check_permissions = _dummy_check_permissions
   165         rqlannotation._select_principal = _select_principal
   166         rqlannotation._select_principal = _select_principal
   166         if self.backend is not None:
   167         if self.backend is not None:
   228         # reset uid_func so it don't try to get type from eids
   229         # reset uid_func so it don't try to get type from eids
   229         rqlhelper._analyser.uid_func = None
   230         rqlhelper._analyser.uid_func = None
   230         rqlhelper._analyser.uid_func_mapping = {}
   231         rqlhelper._analyser.uid_func_mapping = {}
   231         return rqlhelper
   232         return rqlhelper
   232 
   233 
   233     def _prepare_plan(self, rql, kwargs=None, simplify=True):
   234     def _prepare_plan(self, cnx, rql, kwargs=None, simplify=True):
   234         rqlhelper = self._rqlhelper()
   235         rqlhelper = self._rqlhelper()
   235         rqlst = rqlhelper.parse(rql)
   236         rqlst = rqlhelper.parse(rql)
   236         rqlhelper.compute_solutions(rqlst, kwargs=kwargs)
   237         rqlhelper.compute_solutions(rqlst, kwargs=kwargs)
   237         if simplify:
   238         if simplify:
   238             rqlhelper.simplify(rqlst)
   239             rqlhelper.simplify(rqlst)
   239         for select in rqlst.children:
   240         for select in rqlst.children:
   240             select.solutions.sort()
   241             select.solutions.sort()
   241         return self.o.plan_factory(rqlst, kwargs, self.session)
   242         return self.o.plan_factory(rqlst, kwargs, cnx)
   242 
   243 
   243     def _prepare(self, rql, kwargs=None):
   244     def _prepare(self, cnx, rql, kwargs=None):
   244         plan = self._prepare_plan(rql, kwargs, simplify=False)
   245         plan = self._prepare_plan(cnx, rql, kwargs, simplify=False)
   245         plan.preprocess(plan.rqlst)
   246         plan.preprocess(plan.rqlst)
   246         rqlst = plan.rqlst.children[0]
   247         rqlst = plan.rqlst.children[0]
   247         rqlst.solutions = remove_unused_solutions(rqlst, rqlst.solutions, {}, self.repo.schema)[0]
   248         rqlst.solutions = remove_unused_solutions(rqlst, rqlst.solutions, {}, self.repo.schema)[0]
   248         return rqlst
   249         return rqlst
   249 
   250