def create_session_factory(self): """Overwrite the creation of Session factory to Use the multi binding """ if self.Session is None or self.must_recreate_session_factory(): query_bases = [] + self.loaded_cores['Query'] query_bases += [self.registry_base] Query = type('Query', tuple(query_bases), {}) session_bases = [self.registry_base, MixinSession] session_bases.extend(self.loaded_cores['Session']) Session = type('Session', tuple(session_bases), { 'registry_query': Query}) self.session_connection = None if self.Session: self.session_connection = self.connection() extension = self.additional_setting.get('sa.session.extension') if extension: extension = extension() self.Session = scoped_session( sessionmaker(class_=Session, extension=extension), EnvironmentManager.scoped_function_for_session()) self.nb_query_bases = len(self.loaded_cores['Query']) self.nb_session_bases = len(self.loaded_cores['Session']) else: self.flush()
def create_session_factory(self): """Overwrite the creation of Session factory to Use the multi binding """ if self.Session is None or self.must_recreate_session_factory(): if self.Session: if not self.withoutautomigration: # this is the only case to use commit in the construction # of the registry self.commit() # remove all existing instance to create a new instance # because the instance are cached self.Session.remove() query_bases = [] + self.loaded_cores['Query'] query_bases += [self.registry_base] Query = type('Query', tuple(query_bases), {}) session_bases = [self.registry_base, MixinSession] session_bases += self.loaded_cores['Session'] Session = type('Session', tuple(session_bases), { 'registry_query': Query}) extension = self.additional_setting.get('sa.session.extension') if extension: extension = extension() self.Session = scoped_session( sessionmaker(class_=Session, extension=extension), EnvironmentManager.scoped_function_for_session()) self.nb_query_bases = len(self.loaded_cores['Query']) self.nb_session_bases = len(self.loaded_cores['Session']) self.apply_session_events() else: self.flush()
def test_scoped_function_session(self): self.assertEqual(EnvironmentManager.scoped_function_for_session(), MockEnvironment.scoped_function_for_session)
def test_scoped_function_session(self): getted = EnvironmentManager.scoped_function_for_session() wanted = MockEnvironment.scoped_function_for_session assert getted == wanted
def test_scoped_function_session(self): assert EnvironmentManager.scoped_function_for_session() is None