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 reset(me, namespace, counterBase=None, recreate=True, get_config=False): me.sa = SAdb() me.sa.open(recreate=True) import sqlalchemy fieldtypemap = { Number: dict(type=sqlalchemy.Integer, ), Text: dict(type=sqlalchemy.String(30), ), } me.sa.bind(namespace, base_klas=_Base, builder=o2r.Builder, fieldtypemap=fieldtypemap) me.session = me.sa.session() if counterBase: counterBase.fill(*me.sa.klasi.iterkeys())
#fixers = { B_Fea: B_Fea.fixer, } def fixer( o): f = getattr( o, 'fixer', None) if callable(f): f() return True if 0: for klas,func in fixers.iteritems(): if isinstance( o, klas): func(o) return True from dbcook.usage.samanager import SAdb, sqlalchemy SAdb.Builder = o2r.Builder SAdb.config.getopt() sadb = SAdb() fieldtypemap = { Text: dict( type= sqlalchemy.String(100), ), Int: dict( type= sqlalchemy.Integer, ), } sadb.open( recreate=True) sadb.bind( locals(), fieldtypemap, base_klas=Base )#, debug='mapper') def populate(): a = A() a.name = 'ala' b1 = B() b1.name = 'bala' a.children.append( b1)
fieldtypemap = { Text: dict(type=sqlalchemy.String(100)), } def str1(me): 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__
fmap = fieldtypemapper.FieldTypeMapper( typemap_upper, typemap_lower) saw = sa2static from dbcook.usage.samanager import SAdb if 'model' in sys.argv: class Model( Entity): DBCOOK_no_mapping = True 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))