devtools/repotest.py
branchstable
changeset 2074 9e268cb6202e
parent 2069 7c0a1b90b1c6
child 2172 cf8f9180e63e
equal deleted inserted replaced
2073:173c646981a7 2074:9e268cb6202e
     8 :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses
     8 :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses
     9 """
     9 """
    10 __docformat__ = "restructuredtext en"
    10 __docformat__ = "restructuredtext en"
    11 
    11 
    12 from pprint import pprint
    12 from pprint import pprint
       
    13 
       
    14 from logilab.common.decorators import clear_cache
    13 
    15 
    14 def tuplify(list):
    16 def tuplify(list):
    15     for i in range(len(list)):
    17     for i in range(len(list)):
    16         if type(list[i]) is not type(()):
    18         if type(list[i]) is not type(()):
    17             list[i] = tuple(list[i])
    19             list[i] = tuple(list[i])
   204         self.session.commit()
   206         self.session.commit()
   205         self.session.set_pool()
   207         self.session.set_pool()
   206 
   208 
   207 
   209 
   208 class BasePlannerTC(BaseQuerierTC):
   210 class BasePlannerTC(BaseQuerierTC):
       
   211     def setup(self):
       
   212         clear_cache(self.repo, 'rel_type_sources')
       
   213         clear_cache(self.repo, 'rel_type_sources')
       
   214         clear_cache(self.repo, 'can_cross_relation')
       
   215         clear_cache(self.repo, 'is_multi_sources_relation')
       
   216         # XXX source_defs
       
   217         self.o = self.repo.querier
       
   218         self.session = self.repo._sessions.values()[0]
       
   219         self.pool = self.session.set_pool()
       
   220         self.schema = self.o.schema
       
   221         self.sources = self.o._repo.sources
       
   222         self.system = self.sources[-1]
       
   223         self.newsources = 0
       
   224         do_monkey_patch()
       
   225 
       
   226     def add_source(self, sourcecls, uri):
       
   227         self.sources.append(sourcecls(self.repo, self.o.schema,
       
   228                                       {'uri': uri}))
       
   229         self.repo.sources_by_uri[uri] = self.sources[-1]
       
   230         setattr(self, uri, self.sources[-1])
       
   231         self.newsources += 1
       
   232 
       
   233     def tearDown(self):
       
   234         while self.newsources:
       
   235             source = self.sources.pop(-1)
       
   236             del self.repo.sources_by_uri[source.uri]
       
   237             self.newsources -= 1
       
   238         undo_monkey_patch()
   209 
   239 
   210     def _prepare_plan(self, rql, kwargs=None):
   240     def _prepare_plan(self, rql, kwargs=None):
   211         rqlst = self.o.parse(rql, annotate=True)
   241         rqlst = self.o.parse(rql, annotate=True)
   212         self.o.solutions(self.session, rqlst, kwargs)
   242         self.o.solutions(self.session, rqlst, kwargs)
   213         if rqlst.TYPE == 'select':
   243         if rqlst.TYPE == 'select':