summaryrefslogtreecommitdiff
path: root/kronos/tests/itest_sqlite_storage.py
diff options
context:
space:
mode:
Diffstat (limited to 'kronos/tests/itest_sqlite_storage.py')
-rw-r--r--kronos/tests/itest_sqlite_storage.py66
1 files changed, 66 insertions, 0 deletions
diff --git a/kronos/tests/itest_sqlite_storage.py b/kronos/tests/itest_sqlite_storage.py
new file mode 100644
index 0000000..4628a23
--- /dev/null
+++ b/kronos/tests/itest_sqlite_storage.py
@@ -0,0 +1,66 @@
1# vim: set filencoding=utf8
2"""
3SQLite Storage Back-End Test
4
5@author: Mike Crute (mcrute@ag.com)
6@organization: American Greetings Interactive
7@date: February 04, 2010
8
9A basic integration test that exercies the entire
10SQLite storage back-end.
11"""
12
13
14import unittest
15from nose.tools import assert_equals, assert_raises
16from kronos.storage import SQLiteBackEnd, NotConnected
17
18
19class SampleModel(object):
20
21 foo = None
22 bar = None
23 baz = None
24
25
26class TestSQLitBackEnd(unittest.TestCase):
27
28 def setUp(self):
29 self.storage = SQLiteBackEnd()
30 self.storage.connect(':memory:')
31
32 self.storage.create_table(SampleModel, foo='text',
33 bar='text', baz='text')
34
35 self.model1 = SampleModel()
36 self.model1.foo = '123'
37 self.model1.bar = '456'
38 self.model1.baz = '789'
39
40 def test_no_connect_should_cause_error(self):
41 self.storage.connection = None
42 assert_raises(NotConnected, self.storage.save, self.model1)
43
44 def test_save_and_select(self):
45 self.storage.save(self.model1)
46 results = self.storage.get(SampleModel, foo='123')
47
48 assert isinstance(results, SampleModel)
49 assert_equals(results.foo, '123')
50 assert_equals(results.bar, '456')
51 assert_equals(results.baz, '789')
52
53 def test_save_and_update(self):
54 self.storage.save(self.model1)
55 results = self.storage.get(SampleModel, foo='123')
56 results.foo = 'test'
57 self.storage.save(results)
58
59 assert isinstance(results, SampleModel)
60 assert_equals(results.foo, 'test')
61 assert_equals(results.bar, '456')
62 assert_equals(results.baz, '789')
63
64
65if __name__ == "__main__":
66 unittest.main()