return table
except KeyError:
if mustexist:
- raise exceptions.ArgumentError("Table '%s.%s' not defined" % (schema, name))
+ raise exceptions.ArgumentError("Table '%s' not defined" % (key))
table = type.__call__(self, name, metadata, **kwargs)
table._set_parent(metadata)
# load column definitions from the database if 'autoload' is defined
schema = None
else:
(schema,tname,colname) = m.group(1,2,3)
+ if tname not in parenttable.metadata:
+ raise exceptions.InvalidRequestError("Could not find table '%s' with which to generate a foreign key" % tname)
table = Table(tname, parenttable.metadata, mustexist=True, schema=schema)
try:
if colname is None:
def __repr__(self):
return 'MetaData(%r)' % self.bind
+ def __contains__(self, key):
+ return key in self.tables
+
def __getstate__(self):
return {'tables':self.tables, 'casesensitive':self._case_sensitive_setting}
finally:
testbase.db.execute("drop table book")
+ def test_fk_error(self):
+ metadata = MetaData(testbase.db)
+ slots_table = Table('slots', metadata,
+ Column('slot_id', Integer, primary_key=True),
+ Column('pkg_id', Integer, ForeignKey('pkgs.pkg_id')),
+ Column('slot', String),
+ )
+ try:
+ metadata.create_all()
+ assert False
+ except exceptions.InvalidRequestError, err:
+ assert str(err) == "Could not find table 'pkgs' with which to generate a foreign key"
+
def test_composite_pks(self):
"""test reflection of a composite primary key"""
testbase.db.execute("""