for c in compiled.statement.table.c:
if isinstance(c.default, schema.PassiveDefault):
self.context.lastrow_has_defaults = True
- if not param.has_key(c.key) or param[c.key] is None:
+ if not param.has_key(c.name) or param[c.name] is None:
newid = drunner.get_column_default(c)
if newid is not None:
param[c.key] = newid
if c.primary_key:
- last_inserted_ids.append(param[c.key])
+ last_inserted_ids.append(param[c.name])
elif c.primary_key:
need_lastrowid = True
elif c.primary_key:
- last_inserted_ids.append(param[c.key])
+ last_inserted_ids.append(param[c.name])
if need_lastrowid:
self.context.last_inserted_ids = None
else:
db.echo = False
global table
global table2
+ global table3
table = Table(
'multi', db,
Column('multi_id', Integer, Sequence("multi_id_seq", optional=True), primary_key=True),
Column('pk_col_2', String(30), primary_key=True),
Column('data', String(30), )
)
+ table3 = Table('multi3', db,
+ Column('pri_code', String(30), key='primary', primary_key=True),
+ Column('sec_code', String(30), key='secondary', primary_key=True),
+ Column('date_assigned', Date, key='assigned', primary_key=True),
+ Column('data', String(30), )
+ )
table.create()
table2.create()
+ table3.create()
db.echo = testbase.echo
def tearDownAll(self):
db.echo = False
table.drop()
table2.drop()
+ table3.drop()
db.echo = testbase.echo
def setUp(self):
objectstore.clear()
e.pk_col_2 = 'pk1_related'
e.data = 'im the data'
objectstore.commit()
+ def testmulti_column_primary_key(self):
+ import datetime
+ class Entity(object):
+ pass
+ Entity.mapper = mapper(Entity, table3)
+ e = Entity()
+ e.primary = 'pk1'
+ e.secondary = 'pk2'
+ e.assigned = datetime.date.today()
+ e.data = 'some more data'
+ objectstore.commit()
+
class DefaultTest(AssertMixin):
def setUpAll(self):
#db.echo = 'debug'