#!/usr/bin/env python
# -*- encoding: utf-8 -*-

import storm.locals as storm

class test(object):
    __storm_table__ = 'test'
    _sql = """CREATE TABLE test (
    id INTEGER PRIMARY KEY,
    funk UNICODE); """
    id = storm.Int(primary=True)
    funk = storm.Unicode()
    # remove `WORKAROUND' to work around bug
    def WORKAROUND__storm_pre_flush__(self):
        self.funk = unicode('str'+str(self.funk))

db = storm.create_database('sqlite:')
print db
store = storm.Store(db)

# create table
store.execute(test._sql)

# make object
myFunkyTest = test()
# funk is all int now, but might also be unicode text strings
myFunkyTest.funk = u'9001'

# commit, populate db
store.add(myFunkyTest)
store.commit()

# forget object
import gc
del myFunkyTest
garbage = gc.collect()

# create havoc
print store.get(test, 1).funk