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
|
# vim: set filencoding=utf8
"""
SQLite Storage Back-End Test
@author: Mike Crute (mcrute@ag.com)
@organization: American Greetings Interactive
@date: February 04, 2010
A basic integration test that exercies the entire
SQLite storage back-end.
"""
import unittest
from nose.tools import assert_equals, assert_raises
from kronos.storage import SQLiteBackEnd, NotConnected
class SampleModel(object):
foo = None
bar = None
baz = None
class TestSQLitBackEnd(unittest.TestCase):
def setUp(self):
self.storage = SQLiteBackEnd()
self.storage.connect(':memory:')
self.storage.create_table(SampleModel, foo='text',
bar='text', baz='text')
self.model1 = SampleModel()
self.model1.foo = '123'
self.model1.bar = '456'
self.model1.baz = '789'
def test_no_connect_should_cause_error(self):
self.storage.connection = None
assert_raises(NotConnected, self.storage.save, self.model1)
def test_save_and_select(self):
self.storage.save(self.model1)
results = self.storage.get(SampleModel, foo='123')
assert isinstance(results, SampleModel)
assert_equals(results.foo, '123')
assert_equals(results.bar, '456')
assert_equals(results.baz, '789')
def test_save_and_update(self):
self.storage.save(self.model1)
results = self.storage.get(SampleModel, foo='123')
results.foo = 'test'
self.storage.save(results)
assert isinstance(results, SampleModel)
assert_equals(results.foo, 'test')
assert_equals(results.bar, '456')
assert_equals(results.baz, '789')
if __name__ == "__main__":
unittest.main()
|