Package elisa :: Package core :: Package tests :: Module test_db_backend
[hide private]
[frames] | no frames]

Source Code for Module elisa.core.tests.test_db_backend

 1  # Elisa - Home multimedia server 
 2  # Copyright (C) 2006-2008 Fluendo Embedded S.L. (www.fluendo.com). 
 3  # All rights reserved. 
 4  # 
 5  # This file is available under one of two license agreements. 
 6  # 
 7  # This file is licensed under the GPL version 3. 
 8  # See "LICENSE.GPL" in the root of this distribution including a special 
 9  # exception to use Elisa with Fluendo's plugins. 
10  # 
11  # The GPL part of Elisa is also available under a commercial licensing 
12  # agreement from Fluendo. 
13  # See "LICENSE.Elisa" in the root directory of this distribution package 
14  # for details on that license. 
15   
16  from elisa.core.tests.elisa_test_case import ElisaTestCase 
17  from elisa.core import db_backend 
18  from elisa.extern import db_row 
19  import os, unittest, tempfile 
20   
21  SQL_SCHEMA="""\ 
22  CREATE TABLE core_meta ( 
23      version INTEGER UNIQUE 
24  ); 
25  """ 
26   
27 -class TestDBBackend(ElisaTestCase):
28
29 - def __init__(self, methodName='runTest'):
30 ElisaTestCase.__init__(self, methodName=methodName) 31 self._db_file = os.path.join(tempfile.gettempdir(), 'test_db_backend.db') 32 33 if os.path.exists(self._db_file): 34 os.unlink(self._db_file) 35 36 try: 37 db = db_backend.DBBackend(db_backend='sqlite', 38 database=self._db_file) 39 except db_backend.DBBackendError, error: 40 self.skip = error 41 else: 42 db.sql_execute(SQL_SCHEMA) 43 db.sql_execute("insert into core_meta(version) values(1)") 44 db.save_changes()
45
46 - def setUp(self):
47 ElisaTestCase.setUp(self) 48 self._db = db_backend.DBBackend(db_backend='sqlite', 49 database=self._db_file)
50
51 - def test_sql_execute(self):
52 53 result = self._db.sql_execute("select * from core_meta") 54 self.failUnless(isinstance(result, list)) 55 self.failUnless(len(result) > 0) 56 for row in result: 57 self.failUnless(isinstance(row, db_row.DBRow)) 58 59 60 failed = self._db.sql_execute("select * from unknow_table") 61 self.assertEqual(failed, [])
62