self._all_tables = self.inherits._all_tables
if self.polymorphic_identity is not None:
+ if self.polymorphic_identity in self.polymorphic_map:
+ util.warn(
+ "Reassigning polymorphic association for identity %r "
+ "from %r to %r: Check for duplicate use of %r as "
+ "value for polymorphic_identity." %
+ (self.polymorphic_identity,
+ self.polymorphic_map[self.polymorphic_identity],
+ self, self.polymorphic_identity)
+ )
self.polymorphic_map[self.polymorphic_identity] = self
else:
m3.identity_key_from_instance(AddressUser())
)
+ def test_reassign_polymorphic_identity_warns(self):
+ User = self.classes.User
+ users = self.tables.users
+ class MyUser(User):
+ pass
+ m1 = mapper(User, users, polymorphic_on=users.c.name,
+ polymorphic_identity='user')
+ assert_raises_message(
+ sa.exc.SAWarning,
+ "Reassigning polymorphic association for identity 'user'",
+ mapper,
+ MyUser, users, inherits=User, polymorphic_identity='user'
+ )
def test_illegal_non_primary(self):