t = Table('foo%d' % i, m, cx)
eq_(msgs, ['attach foo0.foo', 'attach foo1.foo', 'attach foo2.foo'])
+ def test_schema_collection_add(self):
+ metadata = MetaData()
- def test_dupe_tables(self):
+ t1 = Table('t1', metadata, Column('x', Integer), schema='foo')
+ t2 = Table('t2', metadata, Column('x', Integer), schema='bar')
+ t3 = Table('t3', metadata, Column('x', Integer))
+
+ eq_(metadata._schemas, set(['foo', 'bar']))
+ eq_(len(metadata.tables), 3)
+
+ def test_schema_collection_remove(self):
+ metadata = MetaData()
+
+ t1 = Table('t1', metadata, Column('x', Integer), schema='foo')
+ t2 = Table('t2', metadata, Column('x', Integer), schema='bar')
+ t3 = Table('t3', metadata, Column('x', Integer), schema='bar')
+
+ metadata.remove(t3)
+ eq_(metadata._schemas, set(['foo', 'bar']))
+ eq_(len(metadata.tables), 2)
+
+ metadata.remove(t1)
+ eq_(metadata._schemas, set(['bar']))
+ eq_(len(metadata.tables), 1)
+
+ def test_schema_collection_remove_all(self):
+ metadata = MetaData()
+
+ t1 = Table('t1', metadata, Column('x', Integer), schema='foo')
+ t2 = Table('t2', metadata, Column('x', Integer), schema='bar')
+
+ metadata.clear()
+ eq_(metadata._schemas, set())
+ eq_(len(metadata.tables), 0)
+
+ def test_metadata_tables_immutable(self):
metadata = MetaData()
- AttributeError,
+
+ t1 = Table('t1', metadata, Column('x', Integer))
+ assert 't1' in metadata.tables
+
+ assert_raises(
-
++ TypeError,
+ lambda: metadata.tables.pop('t1')
+ )
- metadata = MetaData()
++
++ @testing.provide_metadata
+ def test_dupe_tables(self):
t1 = Table('table1', metadata,
Column('col1', Integer, primary_key=True),
Column('col2', String(20)))
-- metadata.bind = testing.db
metadata.create_all()
-- try:
-- try:
-- t1 = Table('table1', metadata, autoload=True)
-- t2 = Table('table1', metadata,
-- Column('col1', Integer, primary_key=True),
-- Column('col2', String(20)))
-- assert False
-- except tsa.exc.InvalidRequestError, e:
-- assert str(e) \
-- == "Table 'table1' is already defined for this "\
-- "MetaData instance. Specify 'useexisting=True' "\
-- "to redefine options and columns on an existing "\
-- "Table object."
-- finally:
-- metadata.drop_all()
++ t1 = Table('table1', metadata, autoload=True)
++ def go():
++ t2 = Table('table1', metadata,
++ Column('col1', Integer, primary_key=True),
++ Column('col2', String(20)))
++ assert_raises_message(
++ tsa.exc.InvalidRequestError,
++ "Table 'table1' is already defined for this "\
++ "MetaData instance. Specify 'useexisting=True' "\
++ "to redefine options and columns on an existing "\
++ "Table object.",
++ go
++ )
def test_fk_copy(self):
c1 = Column('foo', Integer)