self._pks_by_table[k.table] = util.OrderedSet()
self._pks_by_table[k.table].add(k)
- if len(self._pks_by_table[self.mapped_table]) == 0:
+ if self.mapped_table not in self._pks_by_table or len(self._pks_by_table[self.mapped_table]) == 0:
raise exceptions.ArgumentError("Could not assemble any primary key columns for mapped table '%s'" % (self.mapped_table.name))
if self.inherits is not None and not self.concrete and not self.primary_key_argument:
u2 = s.query(User).filter_by(user_name='jack').one()
assert u is u2
-
+
+ def test_no_pks(self):
+ s = select([users.c.user_name]).alias('foo')
+ try:
+ mapper(User, s)
+ assert False
+ except exceptions.ArgumentError, e:
+ assert str(e) == "Could not assemble any primary key columns for mapped table 'foo'"
+
def test_compileonsession(self):
m = mapper(User, users)
session = create_session()