summaryrefslogtreecommitdiff
path: root/test/orm/compile.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2006-06-22 04:29:55 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2006-06-22 04:29:55 +0000
commit0ab010867f39e6ae20af23b36b3b78f9948ec181 (patch)
tree9d745ab8b1281e97eb2ead5947eca16336d5c763 /test/orm/compile.py
parentbb1fde2042f389e7a21f070b11fdbe7c5c5cd535 (diff)
downloadsqlalchemy-0ab010867f39e6ae20af23b36b3b78f9948ec181.tar.gz
more compilation fixes
Diffstat (limited to 'test/orm/compile.py')
-rw-r--r--test/orm/compile.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/test/orm/compile.py b/test/orm/compile.py
index c927ae53b..007edd596 100644
--- a/test/orm/compile.py
+++ b/test/orm/compile.py
@@ -117,5 +117,42 @@ class CompileTest(testbase.AssertMixin):
except exceptions.ArgumentError, e:
assert str(e).index("Backrefs do not match") > -1
+ def testthree(self):
+ metadata = BoundMetaData(testbase.db)
+ node_table = Table("node", metadata,
+ Column('node_id', Integer, primary_key=True),
+ Column('name_index', Integer, nullable=True),
+ )
+ node_name_table = Table("node_name", metadata,
+ Column('node_name_id', Integer, primary_key=True),
+ Column('node_id', Integer, ForeignKey('node.node_id')),
+ Column('host_id', Integer, ForeignKey('host.host_id')),
+ Column('name', String(64), nullable=False),
+ )
+ host_table = Table("host", metadata,
+ Column('host_id', Integer, primary_key=True),
+ Column('hostname', String(64), nullable=False,
+ unique=True),
+ )
+ metadata.create_all()
+ try:
+ node_table.insert().execute(node_id=1, node_index=5)
+ class Node(object):pass
+ class NodeName(object):pass
+ class Host(object):pass
+
+ node_mapper = mapper(Node, node_table)
+ host_mapper = mapper(Host, host_table)
+ node_name_mapper = mapper(NodeName, node_name_table,
+ properties = {
+ 'node' : relation(Node, backref=backref('names')),
+ 'host' : relation(Host),
+ }
+ )
+ sess = create_session()
+ assert sess.query(Node).get(1).names == []
+ finally:
+ metadata.drop_all()
+
if __name__ == '__main__':
testbase.main()