diff -r 000000000000 -r b97547f5f1fa test/unittest_dbapi.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/unittest_dbapi.py Wed Nov 05 15:52:50 2008 +0100 @@ -0,0 +1,82 @@ +from cubicweb import ConnectionError +from cubicweb.dbapi import ProgrammingError +from cubicweb.devtools.apptest import EnvBasedTC + + +class DBAPITC(EnvBasedTC): + @property + def cnx(self): + return self.login('anon') + + def test_public_repo_api(self): + cnx = self.cnx + self.assertEquals(cnx.get_schema(), self.env.repo.schema) + self.assertEquals(cnx.source_defs(), {'system': {'adapter': 'native', 'uri': 'system'}}) + self.restore_connection() # proper way to close cnx + self.assertRaises(ProgrammingError, cnx.get_schema) + self.assertRaises(ProgrammingError, cnx.source_defs) + + def test_db_api(self): + cnx = self.cnx + self.assertEquals(cnx.rollback(), None) + self.assertEquals(cnx.commit(), None) + self.restore_connection() # proper way to close cnx + #self.assertEquals(cnx.close(), None) + self.assertRaises(ProgrammingError, cnx.rollback) + self.assertRaises(ProgrammingError, cnx.commit) + self.assertRaises(ProgrammingError, cnx.close) + + def test_api(self): + cnx = self.cnx + self.assertEquals(cnx.user(None).login, 'anon') + self.assertEquals(cnx.describe(1), (u'EGroup', u'system', None)) + self.restore_connection() # proper way to close cnx + self.assertRaises(ConnectionError, cnx.user, None) + self.assertRaises(ConnectionError, cnx.describe, 1) + + def test_session_data_api(self): + cnx = self.cnx + self.assertEquals(cnx.get_session_data('data'), None) + self.assertEquals(cnx.session_data(), {}) + cnx.set_session_data('data', 4) + self.assertEquals(cnx.get_session_data('data'), 4) + self.assertEquals(cnx.session_data(), {'data': 4}) + cnx.del_session_data('data') + cnx.del_session_data('whatever') + self.assertEquals(cnx.get_session_data('data'), None) + self.assertEquals(cnx.session_data(), {}) + cnx.session_data()['data'] = 4 + self.assertEquals(cnx.get_session_data('data'), 4) + self.assertEquals(cnx.session_data(), {'data': 4}) + + def test_shared_data_api(self): + cnx = self.cnx + self.assertEquals(cnx.get_shared_data('data'), None) + cnx.set_shared_data('data', 4) + self.assertEquals(cnx.get_shared_data('data'), 4) + cnx.get_shared_data('data', pop=True) + cnx.get_shared_data('whatever', pop=True) + self.assertEquals(cnx.get_shared_data('data'), None) + cnx.set_shared_data('data', 4) + self.assertEquals(cnx.get_shared_data('data'), 4) + self.restore_connection() # proper way to close cnx + self.assertRaises(ConnectionError, cnx.check) + self.assertRaises(ConnectionError, cnx.set_shared_data, 'data', 0) + self.assertRaises(ConnectionError, cnx.get_shared_data, 'data') + + +# class DBAPICursorTC(EnvBasedTC): + +# @property +# def cursor(self): +# return self.env.cnx.cursor() + +# def test_api(self): +# cu = self.cursor +# self.assertEquals(cu.describe(1), (u'EGroup', u'system', None)) +# #cu.close() +# #self.assertRaises(ConnectionError, cu.describe, 1) + +if __name__ == '__main__': + from logilab.common.testlib import unittest_main + unittest_main()