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