2
from twisted.trial import unittest
4
from axiom import attributes, item, store, extime
6
class StoreTests(unittest.TestCase):
7
def testCreation(self):
12
def testReCreation(self):
14
s = store.Store(dbdir)
16
s = store.Store(dbdir)
19
class RevertException(Exception):
23
class TestItem(item.Item):
26
foo = attributes.integer(indexed=True)
27
bar = attributes.text()
28
baz = attributes.timestamp()
29
quux = attributes.reference()
32
class ItemTests(unittest.TestCase):
34
self.dbdir = self.mktemp()
35
self.store = store.Store(self.dbdir)
40
def testItemCreation(self):
41
timeval = extime.Time.fromISO8601TimeAndDate('2004-10-05T10:12:14.1234')
52
self.store = store.Store(self.dbdir)
53
s2 = self.store.getItemByID(sid)
54
self.assertEquals(s2.foo, s.foo)
56
def testBasicQuery(self):
58
# !@#$ 3x+ speedup over not doing this in a transact()
59
created = [TestItem(foo=x, bar=u"string-value-of-"+str(x))
64
self.store.transact(tt)
66
loaded = self.store.query(TestItem,
69
self.assertEquals(len(list(loaded)), 10)
71
def testInMemoryRevert(self):
76
baz=extime.Time.fromISO8601TimeAndDate('2004-10-05T10:12:14.1234')
84
baz=extime.Time.fromISO8601TimeAndDate('1970-03-12T05:05:11.5921')
88
item1.bar = u'this is the wrong answer'
89
item1.baz = extime.Time()
91
raise RevertException(item2.storeID)
94
self.store.transact(brokenFunction)
95
except RevertException, exc:
98
self.assertRaises(KeyError, self.store.getItemByID, storeID)
99
self.assertEquals(item1.foo, 24)
100
self.assertEquals(item1.bar, u'Zoom')
101
self.assertEquals(item1.baz.asISO8601TimeAndDate(), '2004-10-05T10:12:14.1234+00:00')
103
self.fail("Transaction should have raised an exception")