diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-01-10 18:05:20 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-01-10 18:05:20 +0000 |
commit | 062b8c0eb1ce22944503c28e2de6d2cabe78acf7 (patch) | |
tree | 609ee3ddf560b39f9242586998c069b5ce555050 /test/engine/reflection.py | |
parent | 37570dc25e9f688f8d370ffe8955bb395c82d15a (diff) | |
download | sqlalchemy-062b8c0eb1ce22944503c28e2de6d2cabe78acf7.tar.gz |
- added extra fk override test
- proper error message is raised when trying to
access expired instance attributes with no session
present
Diffstat (limited to 'test/engine/reflection.py')
-rw-r--r-- | test/engine/reflection.py | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/test/engine/reflection.py b/test/engine/reflection.py index a3b42bf6e..ea56e315b 100644 --- a/test/engine/reflection.py +++ b/test/engine/reflection.py @@ -129,8 +129,8 @@ class ReflectionTest(PersistTest): meta.drop_all() def test_override_create_fkcols(self): - """test that you can override columns and create new foreign keys to other reflected tables. - this is common with MySQL MyISAM tables.""" + """test that you can override columns and create new foreign keys to other reflected tables + which have no foreign keys. this is common with MySQL MyISAM tables.""" meta = MetaData(testbase.db) users = Table('users', meta, @@ -184,6 +184,7 @@ class ReflectionTest(PersistTest): finally: meta.drop_all() + def test_unknown_types(self): meta = MetaData(testbase.db) t = Table("test", meta, @@ -299,6 +300,25 @@ class ReflectionTest(PersistTest): assert [c.parent for c in a2.c.user_id.foreign_keys] == [a2.c.user_id] assert list(a2.c.user_id.foreign_keys)[0].parent is a2.c.user_id assert u2.join(a2).onclause == u2.c.id==a2.c.user_id + + meta2 = MetaData(testbase.db) + u2 = Table('users', meta2, + Column('id', Integer, primary_key=True), + autoload=True) + a2 = Table('addresses', meta2, + Column('id', Integer, primary_key=True), + Column('user_id',Integer, ForeignKey('users.id')), + autoload=True) + + assert len(a2.foreign_keys) == 1 + assert len(a2.c.user_id.foreign_keys) == 1 + assert len(a2.constraints) == 2 + assert [c.parent for c in a2.foreign_keys] == [a2.c.user_id] + assert [c.parent for c in a2.c.user_id.foreign_keys] == [a2.c.user_id] + assert list(a2.c.user_id.foreign_keys)[0].parent is a2.c.user_id + assert u2.join(a2).onclause == u2.c.id==a2.c.user_id + + finally: meta.drop_all() |