~marcosvanetta/+junk/finop

« back to all changes in this revision

Viewing changes to tut_storm.py

  • Committer: Marcos Vanetta
  • Date: 2010-04-21 21:57:06 UTC
  • Revision ID: marcosvanetta@gmail.com-20100421215706-046jx16am69j802e
starting refactoring

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
"""
2
 
 
3
 
"""
4
 
 
5
 
from storm.locals import *
6
 
 
7
 
database = create_database("sqlite:///temp.sqlite")
8
 
store = Store(database)
9
 
 
10
 
class Person(object):
11
 
    __storm_table__ = "person"
12
 
    id = Int(primary=True)
13
 
    name = Unicode()
14
 
 
15
 
class Company(object):
16
 
    __storm_table__ = "company"
17
 
    id = Int(primary=True)
18
 
    name = Unicode()
19
 
 
20
 
    def __init__(self, name):
21
 
        self.name = name
22
 
 
23
 
class Employee(Person):
24
 
    __storm_table__ = "employee"
25
 
    company_id = Int()
26
 
    company = Reference(company_id, Company.id)
27
 
 
28
 
    def __init__(self, name):
29
 
        self.name = name
30
 
 
31
 
def createPersons():
32
 
    joe = Person()
33
 
    joe.name = u"Joe Johnes"
34
 
    print "%r, %r" % (joe.id, joe.name)
35
 
 
36
 
    store.add(joe)
37
 
    print "%r, %r" % (joe.id, joe.name)
38
 
    print Store.of(joe) is store
39
 
    print Store.of(Person()) is None
40
 
 
41
 
    person = store.find(Person, Person.name == u"Joe Johnes").one()
42
 
 
43
 
    print "%r, %r" % (person.id, person.name)
44
 
 
45
 
    #adding other person
46
 
 
47
 
    mary = Person()
48
 
    mary.name = u"Mary MArgaret"
49
 
    store.add(mary)
50
 
 
51
 
    print "%r, %r" % (mary.id, mary.name)
52
 
    store.flush()
53
 
    print "%r, %r" % (mary.id, mary.name)
54
 
 
55
 
    store.commit()
56
 
 
57
 
    ben = store.add(Employee(u"Ben Bill"))
58
 
    print "%r, %r, %r" % (ben.id, ben.name, ben.company_id)
59
 
 
60
 
    store.flush()
61
 
 
62
 
    print "%r, %r" % (ben.company_id, ben.company.name)
63
 
 
64
 
    sweets = store.add(Company(u"Sweets Inc."))
65
 
    store.flush()
66
 
    print sweet.id
67
 
 
68
 
    ben.company_id = 2
69
 
    print ben.company.name
70
 
    print "ben esta en sweets?"
71
 
    print ben.company is sweets
72
 
 
73
 
    store.commit()
74
 
 
75
 
def createCompany():
76
 
    circus = Company(u"Circus Inc.")
77
 
    print "%r, %r" % (mary.id, mary.name)
78
 
    store.add(circus)
79
 
    print "%r, %r" % (mary.id, mary.name)
80
 
 
81
 
 
82
 
def createDB():
83
 
    store.execute("CREATE TABLE person "
84
 
                  "(id INTEGER PRIMARY KEY, name VARCHAR)")
85
 
    store.execute("CREATE TABLE company "
86
 
                  "(id INTEGER PRIMARY KEY, name VARCHAR)", noresult=True)
87
 
    store.execute("CREATE TABLE employee "
88
 
                  "(id INTEGER PRIMARY KEY, name VARCHAR, company_id INTEGER)",
89
 
                  noresult=True)
90
 
 
91
 
def main():
92
 
    #createDB()
93
 
    createPersons()
94
 
    createCompany()
95
 
 
96
 
if __name__ == "__main__":
97
 
    main()
98