def configure_db(environment=None, state=None, pool_size=None, max_overflow=None, **kwargs): if not self.db.config_folder: self.db.config_folder = os.path.join(self.get_root_dir(), 'config') db_uri = self.db.get_uri(environment=environment, state=state) engine_var = self.db.globalvars['engine'] engine_config = {} if pool_size: engine_config["pool_size"] = pool_size if max_overflow: engine_config["max_overlow"] = max_overflow self.update_global_var(engine_var, create_engine(db_uri, convert_unicode=True, **engine_config)) engine = self.fetch_global_val(engine_var) metadata_var = self.db.globalvars['metadata'] session_var = self.db.globalvars['session'] if kwargs.get('configure_base') is not False: base_obj = self.db.globalvars['Base'] base = self.fetch_global_val(base_obj) lib.rsetattr(base, 'metadata.bind', engine) self.update_global_var(base_obj, base) self.update_global_var(metadata_var, base.metadata) else: self.update_global_var(metadata_var, MetaData()) self.update_global_var(session_var, scoped_session(sessionmaker(bind=engine)))
def test_set_get(self): lib.rsetattr(self.p,'pet.name','Sparky') self.assertEqual(self.p.pet.name, 'Sparky') lib.rsetattr(self.p,'residence.type','Apartment') self.assertEqual(self.p.residence.type, 'Apartment')