summaryrefslogtreecommitdiff
path: root/test/orm/relationships.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/orm/relationships.py')
-rw-r--r--test/orm/relationships.py69
1 files changed, 0 insertions, 69 deletions
diff --git a/test/orm/relationships.py b/test/orm/relationships.py
index ef8ee9e02..250f5ab0d 100644
--- a/test/orm/relationships.py
+++ b/test/orm/relationships.py
@@ -351,75 +351,6 @@ class RelationTest3(testbase.PersistTest):
s.delete(j)
s.flush()
-class CyclicalRelationInheritTest(testbase.PersistTest):
- """testing a mapper with an inheriting mapper, where the base mapper also has a relation to the inheriting mapper,
- as well as using unexpected columns to create the join conditions which do not indicate the usual "cyclical" relationship
- this represents. test that proper error messages are raised guiding the user to a reasonably working setup, and that
- the ultimate setup works."""
- def setUpAll(self):
- global people, managers, metadata
- metadata = BoundMetaData(testbase.db)
-
- people = Table('people', metadata,
- Column('person_id', Integer, Sequence('person_id_seq', optional=True), primary_key=True),
- Column('manager_id', Integer, ForeignKey('managers.person_id', use_alter=True, name="mpid_fq")),
- Column('name', String(50)),
- Column('type', String(30)))
-
- managers = Table('managers', metadata,
- Column('person_id', Integer, ForeignKey('people.person_id'), primary_key=True),
- Column('status', String(30)),
- Column('manager_name', String(50))
- )
-
- metadata.create_all()
-
- def tearDownAll(self):
- metadata.drop_all()
-
- def tearDown(self):
- clear_mappers()
- people.update().execute(manager_id=None)
- for t in metadata.table_iterator(reverse=True):
- t.delete().execute()
-
- def testbasic(self):
- class Person(object):
- pass
- class Manager(Person):
- pass
-
- mapper(Person, people, properties={
- 'manager':relation(Manager, primaryjoin=people.c.manager_id==managers.c.person_id, uselist=False)
- })
- mapper(Manager, managers, inherits=Person, inherit_condition=people.c.person_id==managers.c.person_id)
- try:
- compile_mappers()
- except exceptions.ArgumentError, ar:
- assert str(ar) == "Cant determine relation direction for 'manager' on mapper 'Mapper|Person|people' with primary join 'people.manager_id = managers.person_id' - foreign key columns are present in both the parent and the child's mapped tables. Specify 'foreignkey' argument."
-
- clear_mappers()
-
- mapper(Person, people, properties={
- 'manager':relation(Manager, primaryjoin=people.c.manager_id==managers.c.person_id, foreignkey=people.c.manager_id, uselist=False, post_update=True)
- })
- mapper(Manager, managers, inherits=Person, inherit_condition=people.c.person_id==managers.c.person_id)
-
- session = create_session()
- p = Person()
- p.name = 'some person'
- m = Manager()
- m.name = 'some manager'
- p.manager = m
- session.save(p)
- session.flush()
- session.clear()
-
- p = session.query(Person).get(p.person_id)
- m = session.query(Manager).get(m.person_id)
- print p, m, p.manager
- assert p.manager is m
-
if __name__ == "__main__":