| 20 | | # First create the tables |
| 21 | | meta = MetaData('sqlite://') |
| 22 | | |
| 23 | | person_table = Table('person', meta, |
| 24 | | Column('id', Integer, primary_key=True), |
| 25 | | Column('father_id', Integer, ForeignKey('person.id')), |
| 26 | | Column('name', String(32))) |
| 27 | | |
| 28 | | animal_table = Table('animal', meta, |
| 29 | | Column('id', Integer, primary_key=True), |
| 30 | | Column('name', String(30)), |
| 31 | | Column('owner_id', Integer, ForeignKey('person.id')), |
| 32 | | Column('feeder_id', Integer, ForeignKey('person.id'))) |
| 33 | | |
| 34 | | category_table = Table('category', meta, |
| 35 | | Column('name', String(30), primary_key=True)) |
| 36 | | |
| 37 | | person_category_table = Table('person_category', meta, |
| 38 | | Column('person_id', Integer, ForeignKey('person.id')), |
| 39 | | Column('category_name', String(30), ForeignKey('category.name'))) |
| 40 | | |
| 41 | | person_person_table = Table('person_person', meta, |
| 42 | | Column('person_id1', Integer, ForeignKey('person.id')), |
| 43 | | Column('person_id2', Integer, ForeignKey('person.id'))) |
| 44 | | |
| 45 | | meta.create_all() |
| 46 | | |
| 49 | | global Person, Animal, Category |
| 50 | | |
| 51 | | #TODO: split these into individual classes for each test. |
| 52 | | class Person(Entity): |
| 53 | | father = ManyToOne('Person') |
| 54 | | children = OneToMany('Person') |
| 55 | | pets = OneToMany('Animal', inverse='owner') |
| 56 | | animals = OneToMany('Animal', inverse='feeder') |
| 57 | | categories = ManyToMany('Category', |
| 58 | | tablename='person_category') |
| 59 | | appreciate = ManyToMany('Person', |
| 60 | | tablename='person_person', |
| 61 | | local_colname='person_id1') |
| 62 | | isappreciatedby = ManyToMany('Person', |
| 63 | | tablename='person_person', |
| 64 | | local_colname='person_id2') |
| 65 | | |
| 66 | | class Animal(Entity): |
| 67 | | owner = ManyToOne('Person', colname='owner_id') |
| 68 | | feeder = ManyToOne('Person', colname='feeder_id') |
| 69 | | |
| 70 | | |
| 71 | | class Category(Entity): |
| 72 | | persons = ManyToMany('Person', |
| 73 | | tablename='person_category') |
| 74 | | |
| 75 | | metadata.bind = meta.bind |
| 76 | | setup_all() |
| 77 | | |
| 78 | | |
| | 35 | person_table = Table('person', metadata, |
| | 36 | Column('id', Integer, primary_key=True), |
| | 37 | Column('name', String(32))) |
| | 38 | |
| | 39 | animal_table = Table('animal', metadata, |
| | 40 | Column('id', Integer, primary_key=True), |
| | 41 | Column('name', String(30)), |
| | 42 | Column('owner_id', Integer, ForeignKey('person.id')), |
| | 43 | Column('feeder_id', Integer, ForeignKey('person.id'))) |
| | 44 | |
| | 45 | metadata.create_all() |
| | 46 | |
| | 47 | class Person(Entity): |
| | 48 | pets = OneToMany('Animal', inverse='owner') |
| | 49 | animals = OneToMany('Animal', inverse='feeder') |
| | 50 | |
| | 51 | class Animal(Entity): |
| | 52 | owner = ManyToOne('Person', colname='owner_id') |
| | 53 | feeder = ManyToOne('Person', colname='feeder_id') |
| | 54 | |
| | 55 | setup_all() |
| | 56 | |
| | 74 | person_table = Table('person', metadata, |
| | 75 | Column('id', Integer, primary_key=True), |
| | 76 | Column('father_id', Integer, ForeignKey('person.id')), |
| | 77 | Column('name', String(32))) |
| | 78 | metadata.create_all() |
| | 79 | |
| | 80 | class Person(Entity): |
| | 81 | father = ManyToOne('Person') |
| | 82 | children = OneToMany('Person') |
| | 83 | |
| | 84 | setup_all() |
| | 85 | |
| | 106 | person_table = Table('person', metadata, |
| | 107 | Column('id', Integer, primary_key=True), |
| | 108 | Column('name', String(32))) |
| | 109 | |
| | 110 | category_table = Table('category', metadata, |
| | 111 | Column('name', String(30), primary_key=True)) |
| | 112 | |
| | 113 | person_category_table = Table('person_category', metadata, |
| | 114 | Column('person_id', Integer, ForeignKey('person.id')), |
| | 115 | Column('category_name', String(30), ForeignKey('category.name'))) |
| | 116 | |
| | 117 | metadata.create_all() |
| | 118 | |
| | 119 | class Person(Entity): |
| | 120 | categories = ManyToMany('Category', |
| | 121 | tablename='person_category') |
| | 122 | |
| | 123 | class Category(Entity): |
| | 124 | persons = ManyToMany('Person', |
| | 125 | tablename='person_category') |
| | 126 | |
| | 127 | setup_all() |
| | 128 | |
| | 150 | person_table = Table('person', metadata, |
| | 151 | Column('id', Integer, primary_key=True), |
| | 152 | Column('name', String(32))) |
| | 153 | |
| | 154 | person_person_table = Table('person_person', metadata, |
| | 155 | Column('person_id1', Integer, ForeignKey('person.id')), |
| | 156 | Column('person_id2', Integer, ForeignKey('person.id'))) |
| | 157 | |
| | 158 | metadata.create_all() |
| | 159 | |
| | 160 | class Person(Entity): |
| | 161 | appreciate = ManyToMany('Person', |
| | 162 | tablename='person_person', |
| | 163 | local_colname='person_id1') |
| | 164 | isappreciatedby = ManyToMany('Person', |
| | 165 | tablename='person_person', |
| | 166 | local_colname='person_id2') |
| | 167 | |
| | 168 | setup_all() |
| | 169 | |