1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
from testbase import PersistTest, AssertMixin
import testbase
import unittest, sys, os
from sqlalchemy import *
import datetime
class EagerTest(AssertMixin):
def setUpAll(self):
global designType, design, part, inheritedPart
designType = Table('design_types', testbase.db,
Column('design_type_id', Integer, primary_key=True),
)
design =Table('design', testbase.db,
Column('design_id', Integer, primary_key=True),
Column('design_type_id', Integer, ForeignKey('design_types.design_type_id')))
part = Table('parts', testbase.db,
Column('part_id', Integer, primary_key=True),
Column('design_id', Integer, ForeignKey('design.design_id')),
Column('design_type_id', Integer, ForeignKey('design_types.design_type_id')))
inheritedPart = Table('inherited_part', testbase.db,
Column('ip_id', Integer, primary_key=True),
Column('part_id', Integer, ForeignKey('parts.part_id')),
Column('design_id', Integer, ForeignKey('design.design_id')),
)
designType.create()
design.create()
part.create()
inheritedPart.create()
def tearDownAll(self):
inheritedPart.drop()
part.drop()
design.drop()
designType.drop()
def testone(self):
class Part(object):pass
class Design(object):pass
class DesignType(object):pass
class InheritedPart(object):pass
assign_mapper(Part, part)
assign_mapper(InheritedPart, inheritedPart, properties=dict(
part=relation(Part, lazy=False)
))
assign_mapper(Design, design, properties=dict(
parts=relation(Part, private=True, backref="design"),
inheritedParts=relation(InheritedPart, private=True, backref="design"),
))
assign_mapper(DesignType, designType, properties=dict(
# designs=relation(Design, private=True, backref="type"),
))
Design.mapper.add_property("type", relation(DesignType, lazy=False, backref="designs"))
Part.mapper.add_property("design", relation(Design, lazy=False, backref="parts"))
#Part.mapper.add_property("designType", relation(DesignType))
d = Design()
objectstore.commit()
objectstore.clear()
x = Design.get(1)
x.inheritedParts
if __name__ == "__main__":
testbase.main()
|