# 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()