diff options
Diffstat (limited to 'kronos/tests/itest_sqlite_storage.py')
-rw-r--r-- | kronos/tests/itest_sqlite_storage.py | 66 |
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 | """ | ||
3 | SQLite Storage Back-End Test | ||
4 | |||
5 | @author: Mike Crute (mcrute@ag.com) | ||
6 | @organization: American Greetings Interactive | ||
7 | @date: February 04, 2010 | ||
8 | |||
9 | A basic integration test that exercies the entire | ||
10 | SQLite storage back-end. | ||
11 | """ | ||
12 | |||
13 | |||
14 | import unittest | ||
15 | from nose.tools import assert_equals, assert_raises | ||
16 | from kronos.storage import SQLiteBackEnd, NotConnected | ||
17 | |||
18 | |||
19 | class SampleModel(object): | ||
20 | |||
21 | foo = None | ||
22 | bar = None | ||
23 | baz = None | ||
24 | |||
25 | |||
26 | class 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 | |||
65 | if __name__ == "__main__": | ||
66 | unittest.main() | ||