diff options
Diffstat (limited to 'test/orm/relationships.py')
-rw-r--r-- | test/orm/relationships.py | 69 |
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__": |