def check(is_auto_set=True, is_reference=True, is_value_default=False, **kargs): namespace = model(is_auto_set=is_auto_set, is_reference=is_reference, is_value_default=is_value_default, **kargs) SAdb.config.getopt() sa = SAdb() sa.open(recreate=True) b = sa.bind(namespace, builder=orm.Builder, fieldtypemap=fieldtypemap, base_klas=Base) C = namespace['C'] c = C() if not is_value_default: c.code = 'alabala' if is_reference: Name = namespace['Name'] if not is_auto_set: c.ime = Name() c.ime.nime = 'aa' else: c.ime = 'aa' s = sa.session() s.save(c) s.flush() cexp = str(c) s.expire(c) c = None s.close() s = sa.session() r = C.code == 'alabala' # print C.code res = s.query(C).filter(C.code == 'alabala').all() if _debug: print res assert len(res) == 1, str(res) + ', case: ' + namespace['case'] r = str(res[0]) assert r == cexp, '\n'.join([namespace['case'], r, '!=', cexp]) if is_reference: res = s.query(Name).one() assert res.nime == 'aa' sa.destroy(True)
def check( is_auto_set =True, is_reference =True, is_value_default =False, **kargs): namespace = model( is_auto_set =is_auto_set, is_reference =is_reference, is_value_default =is_value_default, **kargs) SAdb.config.getopt() sa = SAdb() sa.open( recreate=True) b = sa.bind( namespace, builder= orm.Builder, fieldtypemap= fieldtypemap, base_klas= Base ) C = namespace[ 'C'] c = C() if not is_value_default: c.code = 'alabala' if is_reference: Name = namespace['Name'] if not is_auto_set: c.ime = Name() c.ime.nime = 'aa' else: c.ime = 'aa' s = sa.session() s.save( c) s.flush() cexp = str( c) s.expire( c) c = None s.close() s = sa.session() r = C.code == 'alabala' # print C.code res = s.query( C).filter( C.code == 'alabala' ).all() if _debug: print res assert len(res) == 1, str(res) +', case: '+ namespace['case'] r = str(res[0]) assert r==cexp, '\n'.join( [ namespace['case'], r, '!=', cexp] ) if is_reference: res = s.query( Name).one() assert res.nime == 'aa' sa.destroy( True)
b = sa.bind( types, builder= o2r.Builder, fieldtypemap= fieldtypemap, base_klas= Base ) all = [ A( oid=1, time=12, z='a12-last'), A( oid=1, time=2, z='a2' ), A( oid=1, time=6, z='a6' ), A( oid=2, time=2, z='b1' ), A( oid=2, time=4, z='b-last' ), A( oid=3, time=5, z='c5 time-dup' ), A( oid=3, time=5, z='c-last' ), A( oid=4, time=7, z='d-last' ), ] session = sa.session() sa.saveall( session, *all ) session.flush() session.clear() lasts_by_time_obj = set( a for a in all if 'last' in a.z or 'dup' in a.z ) lasts_by_dbid_obj = set( a for a in all if 'last' in a.z ) lasts_by_time_id = set( a.db_id for a in lasts_by_time_obj ) lasts_by_dbid_id = set( a.db_id for a in lasts_by_dbid_obj ) def test( q, expect, obj =True, db_id =True): r = list( q ) #if not obj: r = set( tuple(a) for a in r ) #XXX set(r) won't work! for z in r: print z assert set( (db_id and (obj and x.db_id or x['db_id']) or x) for x in r ) == set( expect), '''
a.children.append( b1) a.children.append( B( name='oja', ) ) a2 = A( name='uuk') f1 = Feature( name='hair', value='red') f2 = Feature( name='nose', value='long') f3 = Feature( name='size', value='tall') a.features.extend( [f1,f2, f3] ) a2.features.append( f1) a2.features+= [f1, f2] bf1 = B_Fea( owner=b1, fea=f1) bf2 = B_Fea( owner=b1, fea=f2) b1.ffeas.append( f3) print 11111111111111, b1 return locals() pops = populate() sext = SesExt( fixer=fixer) ses = sadb.session( extension=sext) sadb.saveall( ses, pops) ses.flush() ses.clear() print '============' for a in sadb.query_ALL_instances( ses, A): print a print '============' for a in sadb.query_ALL_instances( ses, B): print a # vim:ts=4:sw=4:expandtab
return reflector.obj2str(me, Base, builder.column4ID.name) Base.__repr__ = Base.__str__ = str1 from svd_util.attr import setattr_kargs Base.__init__ = setattr_kargs from dbcook.usage.samanager import SAdb SAdb.Builder = Builder SAdb.config.getopt() sa = SAdb() sa.open() sa.bind(locals(), fieldtypemap) population = populate() session = sa.session() sa.saveall(session, population) session.flush() session.close() for klas in [Employee, Engineer, Manager, Hacker, Dept]: for q in [ sa.query_ALL_instances, sa.query_BASE_instances, sa.query_SUB_instances ]: print '====', klas, q.__name__ #r = session.query( klas) r = q(session, klas) #.all() if not r: print r else: for a in r:
pass else: Model=Entity class Name( Element): name = TextD() class Darzhava( Model): #by ISO 3166 name = saw.Type4Reference( Name) s = SAdb( 'sqlite') s.open( recreate=False) #from dbcook.usage.sa_hack4repeatability import hack4repeat #hack4repeat() s.bind( locals(), fieldtypemap=fmap, builder=saw.Builder, base_klas= Element, force_ordered=True) #s.query_all_tables() session = s.session() else: from sqlalchemy import * from sqlalchemy import Text as String from sqlalchemy.orm import * meta = MetaData( 'sqlite:///proba1.db') meta.bind.echo= 'echo' in sys.argv)) #decomposed by joined_table table_Entity = Table( 'Entity', meta, Column( 'disabled', type= Boolean, ), Column( 'time_trans', type= Date, ), Column( 'time_valid', type= Date, ), Column( 'obj_id', type= Integer, ), Column( 'db_id', primary_key= True, type= Integer, ),