def dbmodel(self, database): from palladium.util import session_scope model = Dummy( name='mymodel', __metadata__={ 'some': 'metadata', 'version': 1 }, ) model_blob = gzip.compress(pickle.dumps(model), compresslevel=0) chunk_size = 4 chunks = [ model_blob[i:i + chunk_size] for i in range(0, len(model_blob), chunk_size) ] dbmodel = database.DBModel( version=1, chunks=[ database.DBModelChunk( model_version=1, blob=chunk, ) for chunk in chunks ], metadata_=json.dumps(model.__metadata__), ) with session_scope(database.session) as session: session.add(dbmodel) return model
def dbmodel(self, database): from palladium.util import session_scope model = Dummy( name='mymodel', __metadata__={'some': 'metadata', 'version': 1}, ) model_blob = gzip.compress(pickle.dumps(model), compresslevel=0) chunk_size = 4 chunks = [model_blob[i:i + chunk_size] for i in range(0, len(model_blob), chunk_size)] dbmodel = database.DBModel( version=1, chunks=[ database.DBModelChunk( model_version=1, blob=chunk, ) for chunk in chunks ], metadata_=json.dumps(model.__metadata__), ) with session_scope(database.session) as session: session.add(dbmodel) return model
def test_success(self): from palladium.util import session_scope session = Mock() with session_scope(session): session.query() assert session.commit.call_count == 1 assert session.rollback.call_count == 0 assert session.close.call_count == 1
def test_exception(self): from palladium.util import session_scope session = Mock() with pytest.raises(KeyError): with session_scope(session): raise KeyError('Error') assert session.commit.call_count == 0 assert session.rollback.call_count == 1 assert session.close.call_count == 1