devtools/repotest.py
changeset 6957 ffda12be2e9f
parent 6818 5fa425574548
child 7357 5ad3154a8810
child 7358 5a56890b33df
equal deleted inserted replaced
6956:b172c383dbce 6957:ffda12be2e9f
     1 # copyright 2003-2010 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
     1 # copyright 2003-2011 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
     2 # contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
     2 # contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
     3 #
     3 #
     4 # This file is part of CubicWeb.
     4 # This file is part of CubicWeb.
     5 #
     5 #
     6 # CubicWeb is free software: you can redistribute it and/or modify it under the
     6 # CubicWeb is free software: you can redistribute it and/or modify it under the
   275         self.session.commit()
   275         self.session.commit()
   276         self.session.set_pool()
   276         self.session.set_pool()
   277 
   277 
   278 
   278 
   279 class BasePlannerTC(BaseQuerierTC):
   279 class BasePlannerTC(BaseQuerierTC):
   280     newsources = 0
   280     newsources = ()
       
   281 
   281     def setup(self):
   282     def setup(self):
   282         clear_cache(self.repo, 'rel_type_sources')
   283         clear_cache(self.repo, 'rel_type_sources')
   283         clear_cache(self.repo, 'rel_type_sources')
   284         clear_cache(self.repo, 'rel_type_sources')
   284         clear_cache(self.repo, 'can_cross_relation')
   285         clear_cache(self.repo, 'can_cross_relation')
   285         clear_cache(self.repo, 'is_multi_sources_relation')
   286         clear_cache(self.repo, 'is_multi_sources_relation')
   291         self.sources = self.o._repo.sources
   292         self.sources = self.o._repo.sources
   292         self.system = self.sources[-1]
   293         self.system = self.sources[-1]
   293         do_monkey_patch()
   294         do_monkey_patch()
   294         self._dumb_sessions = [] # by hi-jacked parent setup
   295         self._dumb_sessions = [] # by hi-jacked parent setup
   295         self.repo.vreg.rqlhelper.backend = 'postgres' # so FTIRANK is considered
   296         self.repo.vreg.rqlhelper.backend = 'postgres' # so FTIRANK is considered
       
   297         self.newsources = []
   296 
   298 
   297     def add_source(self, sourcecls, uri):
   299     def add_source(self, sourcecls, uri):
   298         self.sources.append(sourcecls(self.repo, {'uri': uri}))
   300         source = sourcecls(self.repo, {'uri': uri, 'type': 'whatever'})
   299         self.repo.sources_by_uri[uri] = self.sources[-1]
   301         if not source.copy_based_source:
   300         setattr(self, uri, self.sources[-1])
   302             self.sources.append(source)
   301         self.newsources += 1
   303         self.newsources.append(source)
       
   304         self.repo.sources_by_uri[uri] = source
       
   305         setattr(self, uri, source)
   302 
   306 
   303     def tearDown(self):
   307     def tearDown(self):
   304         while self.newsources:
   308         for source in self.newsources:
   305             source = self.sources.pop(-1)
   309             if not source.copy_based_source:
       
   310                 self.sources.remove(source)
   306             del self.repo.sources_by_uri[source.uri]
   311             del self.repo.sources_by_uri[source.uri]
   307             self.newsources -= 1
       
   308         undo_monkey_patch()
   312         undo_monkey_patch()
   309         for session in self._dumb_sessions:
   313         for session in self._dumb_sessions:
   310             session._threaddata.pool = None
   314             session._threaddata.pool = None
   311             session.close()
   315             session.close()
   312 
   316