[pywin32-checkins] pywin32/win32/test test_odbc.py,1.3,1.4
OLD project page for the Python extensions for Windows
Brought to you by:
mhammond
From: Mark H. <mha...@us...> - 2006-05-24 06:12:29
|
Update of /cvsroot/pywin32/pywin32/win32/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19872 Modified Files: test_odbc.py Log Message: Allow tests to be executed against any ODBC server by setting TEST_ODBC_CONNECTION_STRING in the environment, and change the tablename we use. Index: test_odbc.py =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/test/test_odbc.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** test_odbc.py 24 May 2006 01:10:13 -0000 1.3 --- test_odbc.py 24 May 2006 06:12:17 -0000 1.4 *************** *** 4,7 **** --- 4,8 ---- import unittest import odbc + import dbi import tempfile *************** *** 12,45 **** class TestStuff(unittest.TestCase): def setUp(self): self.conn = self.cur = None ! self.db_filename = os.path.join(tempfile.gettempdir(), "test_odbc.mdb") ! if os.path.isfile(self.db_filename): ! os.unlink(self.db_filename) ! ! # Create a brand-new database - what is the story with these? ! for suffix in (".36", ".35", ".30"): ! try: ! dbe = EnsureDispatch("DAO.DBEngine" + suffix) ! break ! except pythoncom.com_error: ! pass ! else: ! raise RuntimeError, "Can't find a DB engine" ! ! workspace = dbe.Workspaces(0) ! ! newdb = workspace.CreateDatabase(self.db_filename, ! constants.dbLangGeneral, ! constants.dbEncrypt) ! ! newdb.Close() ! ! conn_str = "Driver={Microsoft Access Driver (*.mdb)};dbq=%s;Uid=;Pwd=;" \ ! % (self.db_filename,) self.conn = odbc.odbc(conn_str) # And we expect a 'users' table for these tests. self.cur = self.conn.cursor() self.assertEqual(self.cur.execute( ! """create table users ( userid varchar(5), username varchar(25), bitfield bit, intfield integer, --- 13,57 ---- class TestStuff(unittest.TestCase): def setUp(self): + self.db_filename = None self.conn = self.cur = None ! try: ! # Test any database if a connection string is supplied... ! conn_str = os.environ['TEST_ODBC_CONNECTION_STRING'] ! except KeyError: ! # Create a local MSAccess DB for testing. ! self.db_filename = os.path.join(tempfile.gettempdir(), "test_odbc.mdb") ! if os.path.isfile(self.db_filename): ! os.unlink(self.db_filename) ! ! # Create a brand-new database - what is the story with these? ! for suffix in (".36", ".35", ".30"): ! try: ! dbe = EnsureDispatch("DAO.DBEngine" + suffix) ! break ! except pythoncom.com_error: ! pass ! else: ! raise RuntimeError, "Can't find a DB engine" ! ! workspace = dbe.Workspaces(0) ! ! newdb = workspace.CreateDatabase(self.db_filename, ! constants.dbLangGeneral, ! constants.dbEncrypt) ! ! newdb.Close() ! ! conn_str = "Driver={Microsoft Access Driver (*.mdb)};dbq=%s;Uid=;Pwd=;" \ ! % (self.db_filename,) self.conn = odbc.odbc(conn_str) # And we expect a 'users' table for these tests. self.cur = self.conn.cursor() + try: + self.cur.execute("""drop table pywin32test_users""") + except (odbc.error, dbi.progError): + pass + self.assertEqual(self.cur.execute( ! """create table pywin32test_users ( userid varchar(5), username varchar(25), bitfield bit, intfield integer, *************** *** 49,52 **** --- 61,69 ---- def tearDown(self): if self.cur is not None: + try: + self.cur.execute("""drop table pywin32test_users""") + except (odbc.error, dbi.progError), why: + print "Failed to delete test table:", why + self.cur.close() self.cur = None *************** *** 54,65 **** self.conn.close() self.conn = None ! os.unlink(self.db_filename) def test_insert_select(self, userid='Frank', username='Frank Millman'): ! self.assertEqual(self.cur.execute("insert into users (userid, username) \ values (?,?)", [userid, username]),1) ! self.assertEqual(self.cur.execute("select * from users \ where userid = ?", [userid.lower()]),0) ! self.assertEqual(self.cur.execute("select * from users \ where username = ?", [username.lower()]),0) --- 71,83 ---- self.conn.close() self.conn = None ! if self.db_filename is not None: ! os.unlink(self.db_filename) def test_insert_select(self, userid='Frank', username='Frank Millman'): ! self.assertEqual(self.cur.execute("insert into pywin32test_users (userid, username) \ values (?,?)", [userid, username]),1) ! self.assertEqual(self.cur.execute("select * from pywin32test_users \ where userid = ?", [userid.lower()]),0) ! self.assertEqual(self.cur.execute("select * from pywin32test_users \ where username = ?", [username.lower()]),0) *************** *** 69,77 **** def test_insert_select_unicode(self, userid=u'Frank', username=u"Frank Millman"): ! self.assertEqual(self.cur.execute("insert into users (userid, username)\ values (?,?)", [userid, username]),1) ! self.assertEqual(self.cur.execute("select * from users \ where userid = ?", [userid.lower()]),0) ! self.assertEqual(self.cur.execute("select * from users \ where username = ?", [username.lower()]),0) --- 87,95 ---- def test_insert_select_unicode(self, userid=u'Frank', username=u"Frank Millman"): ! self.assertEqual(self.cur.execute("insert into pywin32test_users (userid, username)\ values (?,?)", [userid, username]),1) ! self.assertEqual(self.cur.execute("select * from pywin32test_users \ where userid = ?", [userid.lower()]),0) ! self.assertEqual(self.cur.execute("select * from pywin32test_users \ where username = ?", [username.lower()]),0) *************** *** 82,90 **** def _test_val(self, fieldName, value): ! self.cur.execute("delete from users where userid='Frank'") self.assertEqual(self.cur.execute( ! "insert into users (userid, %s) values (?,?)" % fieldName, ["Frank", value]), 1) ! self.cur.execute("select %s from users where userid = ?" % fieldName, ["Frank"]) rows = self.cur.fetchmany() --- 100,108 ---- def _test_val(self, fieldName, value): ! self.cur.execute("delete from pywin32test_users where userid='Frank'") self.assertEqual(self.cur.execute( ! "insert into pywin32test_users (userid, %s) values (?,?)" % fieldName, ["Frank", value]), 1) ! self.cur.execute("select %s from pywin32test_users where userid = ?" % fieldName, ["Frank"]) rows = self.cur.fetchmany() *************** *** 110,126 **** def test_set_nonzero_length(self): ! self.assertEqual(self.cur.execute("insert into users (userid,username) " "values (?,?)",['Frank', 'Frank Millman']),1) ! self.assertEqual(self.cur.execute("update users set username = ?", ['Frank']),1) ! self.assertEqual(self.cur.execute("select * from users"),0) self.assertEqual(len(self.cur.fetchone()[1]),5) def test_set_zero_length(self): ! self.assertEqual(self.cur.execute("insert into users (userid,username) " "values (?,?)",['Frank', 'Frank Millman']),1) ! self.assertEqual(self.cur.execute("update users set username = ?", ['']),1) ! self.assertEqual(self.cur.execute("select * from users"),0) self.assertEqual(len(self.cur.fetchone()[1]),0) --- 128,144 ---- def test_set_nonzero_length(self): ! self.assertEqual(self.cur.execute("insert into pywin32test_users (userid,username) " "values (?,?)",['Frank', 'Frank Millman']),1) ! self.assertEqual(self.cur.execute("update pywin32test_users set username = ?", ['Frank']),1) ! self.assertEqual(self.cur.execute("select * from pywin32test_users"),0) self.assertEqual(len(self.cur.fetchone()[1]),5) def test_set_zero_length(self): ! self.assertEqual(self.cur.execute("insert into pywin32test_users (userid,username) " "values (?,?)",['Frank', 'Frank Millman']),1) ! self.assertEqual(self.cur.execute("update pywin32test_users set username = ?", ['']),1) ! self.assertEqual(self.cur.execute("select * from pywin32test_users"),0) self.assertEqual(len(self.cur.fetchone()[1]),0) |