unit testing: add a new test to the db module

this test does the package metadata extraction, database insertion
and retrieval and compares the two dictionaries (the one returned
by the extractor against the one returned by the database)
This commit is contained in:
Fabio Erculiani
2009-04-16 06:44:03 +02:00
parent 326d1c270b
commit da78a860fd

View File

@@ -1,16 +1,16 @@
#!/usr/bin/env python
import sys
import unittest
import os
from entropy.client.interfaces import Client
from entropy.db import LocalRepository
import _misc
class LocalRepositoryTest(unittest.TestCase):
def setUp(self):
self.Client = Client(noclientdb = 2, indexing = False, xcache = False,
repo_validation = False)
self.test_db_name = "test_suite"
def tearDown(self):
"""
@@ -19,14 +19,25 @@ class LocalRepositoryTest(unittest.TestCase):
sys.stdout.write("%s ran\n" % (self,))
sys.stdout.flush()
def __open_test_db(self):
return self.Client.open_memory_database(dbname = self.test_db_name)
def test_db_creation(self):
dbname = 'test_suite'
mdb = self.Client.open_memory_database(dbname = dbname)
mdb = self.__open_test_db()
self.assert_(isinstance(mdb,LocalRepository))
self.assertEqual(dbname,mdb.dbname)
self.assertEqual(self.test_db_name,mdb.dbname)
self.assert_(mdb.doesTableExist('baseinfo'))
self.assert_(mdb.doesTableExist('extrainfo'))
mdb.closeDB()
def test_db_insert_and_match(self):
test_pkg = _misc.get_test_package()
data = self.Client.extract_pkg_metadata(test_pkg, silent = True)
mdb = self.__open_test_db()
idpackage, rev, new_data = mdb.handlePackage(data)
db_data = mdb.getPackageData(idpackage, trigger_unicode = True)
mdb.closeDB()
self.assertEqual(new_data, db_data)
if __name__ == '__main__':
unittest.main()