for k, v in mapper_args.iteritems():
mapper_args[k] = column_copies.get(v,v)
+
+ if classname in cls._decl_class_registry:
+ util.warn("The classname %r is already in the registry of this"
+ " declarative base, mapped to %r" % (
+ classname,
+ cls._decl_class_registry[classname]
+ ))
cls._decl_class_registry[classname] = cls
our_stuff = util.OrderedDict()
def test_table_args(self):
def err():
- class Foo(Base):
+ class Foo1(Base):
__tablename__ = 'foo'
__table_args__ = ForeignKeyConstraint(['id'], ['foo.id'
assert_raises_message(sa.exc.ArgumentError,
'Tuple form of __table_args__ is ', err)
- class Foo(Base):
+ class Foo2(Base):
__tablename__ = 'foo'
__table_args__ = {'mysql_engine': 'InnoDB'}
id = Column('id', Integer, primary_key=True)
- assert Foo.__table__.kwargs['mysql_engine'] == 'InnoDB'
+ assert Foo2.__table__.kwargs['mysql_engine'] == 'InnoDB'
class Bar(Base):
{'mysql_engine': 'InnoDB'}
id = Column('id', Integer, primary_key=True)
- assert Bar.__table__.c.id.references(Foo.__table__.c.id)
+ assert Bar.__table__.c.id.references(Foo2.__table__.c.id)
assert Bar.__table__.kwargs['mysql_engine'] == 'InnoDB'
def test_expression(self):
)).one()
eq_(rt, u1)
+ @testing.emits_warning(
+ "The classname 'Test' is already in the registry "
+ "of this declarative base, mapped to "
+ "<class 'test.ext.test_declarative.Test'>"
+ )
+ def test_duplicate_classes_in_base(self):
+
+ class Test(Base):
+ __tablename__ = 'a'
+ id = Column(Integer, primary_key=True)
+
+ class Test(Base):
+ __tablename__ = 'b'
+ id = Column(Integer, primary_key=True)
+
class DeclarativeInheritanceTest(DeclarativeTestBase):
def test_we_must_copy_mapper_args(self):
def test_relationship_primryjoin(self):
self._test_relationship(True)
-
\ No newline at end of file
+