Exemple #1
0
    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), '''
        result: %(r)r
Exemple #2
0
        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
Exemple #3
0
    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__
            #r = session.query( klas)
            r = q( session, klas ) #.all()
            if not r: print r
            else:
                for a in r: print a
    print set('name dept_id'.split()).intersection( a._sa_instance_state.dict )
# vim:ts=4:sw=4:expandtab
Exemple #4
0
    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:
                    print a
Exemple #5
0
            else: raise ValueError, 'A.enum  allows random values'
            a.enum = 'c'
            a.a_int = 344
            a.a_flt = 5.67
            a.a_bool = True
            return locals()

        return locals()

    namespace = test_types()
    SAdb.config.getopt()
    sa = SAdb()
    sa.open()
    sa.bind( namespace, fieldtype_mapper, builder=Builder, base_klas= Base, )

    A = namespace[ 'A']
    populate = namespace.get( 'populate', None)
    if populate:
        populate_namespace = populate()
    session = sa.session()
    sa.saveall( session, populate_namespace)
    session.flush()

    session = sa.session()
    query = session.query( A)
    print '\n'.join( str(r) for r in query )
    r = session.query( A).first()
    print 'enum->value:', r.enum, value_of_AKeyFromDict( r, 'enum')

# vim:ts=4:sw=4:expandtab