[web session] fix web session id bug on automatic reconnection. The web session id should keep the first connection id, then differ of the repo connection id once some reconnection has been done (since the session cookie isn't updated in such cases). Also, use a lock to avoid potential race condition on reconnection.
fromcubicwebimporttoolsutilsfromcubicweb.devtoolsimportDEFAULT_SOURCES,BaseApptestConfigurationclassRealDatabaseConfiguration(BaseApptestConfiguration):init_repository=Falsesourcesdef=DEFAULT_SOURCES.copy()defsources(self):""" By default, we run tests with the sqlite DB backend. One may use its own configuration by just creating a 'sources' file in the test directory from wich tests are launched. """self._sources=self.sourcesdefreturnself._sourcesdefbuildconfig(dbuser,dbpassword,dbname,adminuser,adminpassword,dbhost=None):"""convenience function that builds a real-db configuration class"""sourcesdef={'system':{'adapter':'native','db-encoding':'UTF-8',#'ISO-8859-1','db-user':dbuser,'db-password':dbpassword,'db-name':dbname,'db-driver':'postgres','db-host':dbhost,},'admin':{'login':adminuser,'password':adminpassword,},}returntype('MyRealDBConfig',(RealDatabaseConfiguration,),{'sourcesdef':sourcesdef})defloadconfig(filename):"""convenience function that builds a real-db configuration class from a file """returntype('MyRealDBConfig',(RealDatabaseConfiguration,),{'sourcesdef':toolsutils.read_config(filename)})