author | Sylvain Thénault <sylvain.thenault@logilab.fr> |
Tue, 25 Aug 2009 13:35:45 +0200 (2009-08-25) | |
branch | 3.5 |
changeset 2984 | 31c24caf6961 |
parent 1977 | 606923dff11b |
child 2773 | b2530e3e0afb |
child 4212 | ab6573088b4a |
permissions | -rw-r--r-- |
""" :organization: Logilab :copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ 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'CWGroup', 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'CWGroup', u'system', None)) # #cu.close() # #self.assertRaises(ConnectionError, cu.describe, 1) if __name__ == '__main__': from logilab.common.testlib import unittest_main unittest_main()