From: David F. <dav...@us...> - 2006-06-28 10:54:22
|
Update of /cvsroot/myoledb/myoledb3/test In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv13490 Modified Files: test_dbapi.py Log Message: added comments, spacing moved imports inside driver test classes for clarity Index: test_dbapi.py =================================================================== RCS file: /cvsroot/myoledb/myoledb3/test/test_dbapi.py,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- test_dbapi.py 28 Jun 2006 10:26:50 -0000 1.2 +++ test_dbapi.py 28 Jun 2006 10:54:20 -0000 1.3 @@ -3,36 +3,31 @@ """py.test tests for MyOLEDB using a Python DB-API compliant driver Will attempt to import various drivers and run tests on any imported successfully""" -try: - from jToolkit.data import PyADO as jToolkit_PyADO -except ImportError: - jToolkit_PyADO = None - -try: - from j5.Database.ADO import PyADO as j5_PyADO -except ImportError: - j5_PyADO = None - -try: - import adodbapi -except ImportError: - adodbapi = None - -class MySqlADOTester: +class MySqlTester: + """base class for testing mysql over dbapi""" class connection: + """connection details for test""" username = "mytest" password = "" database = "mytest" provider = "MySQLProv" + def setup_class(cls): + """sets up the database on cls.db""" cls.db = cls.setup_db() + def teardown_class(cls): + """closes the database""" cls.db.close() + def execute_query(self, query): + """executes the given sql query and returns the cursor""" cursor = self.db.cursor() cursor.execute(query) return cursor + def test_simple(self): + """runs a simple insert and checks that a select returns the expected results""" try: self.execute_query("drop table test_simple") except Exception, e: @@ -42,7 +37,9 @@ results = self.execute_query("select x, y from test_simple").fetchall() assert len(results) == 1 assert list(results[0]) == ["test", "me"] + def test_count_type(self): + """checks that select count(*) returns an integer""" try: self.execute_query("drop table test_count_type") except Exception, e: @@ -53,23 +50,38 @@ assert len(results) == 1 assert list(results[0]) == [1] -class Test_j5_ADO(MySqlADOTester): - driver = j5_PyADO - disabled = (j5_PyADO is None) +class Test_j5_ADO(MySqlTester): + """Uses j5.Database.ADO.PyADO as the DBAPI provider""" + try: + from j5.Database.ADO import PyADO as driver + except ImportError: + driver = None + disabled = (driver is None) + def setup_db(cls): return cls.driver.connect(None, {"User ID": cls.connection.username, "Password": cls.connection.password, "Data Source": cls.connection.database}, cls.connection.provider) setup_db = classmethod(setup_db) -class Test_jToolkit_ADO(MySqlADOTester): - driver = jToolkit_PyADO - disabled = (jToolkit_PyADO is None) +class Test_jToolkit_ADO(MySqlTester): + """Uses jToolkit.database.PyADO as the DBAPI provider (see http://jtoolkit.sourceforge.net/)""" + try: + from jToolkit.data import PyADO as driver + except ImportError: + driver = None + disabled = (driver is None) + def setup_db(cls): return cls.driver.connect(None, user=cls.connection.username, password=cls.connection.password, database=cls.connection.database, provider=cls.connection.provider) setup_db = classmethod(setup_db) -class Test_adodbapi(MySqlADOTester): - driver = adodbapi - disabled = (adodbapi is None) +class Test_adodbapi(MySqlTester): + """Uses adodbapi as the DBAPI provider (see http://adodbapi.sourceforge.net/)""" + try: + import adodbapi as driver + except ImportError: + driver = None + disabled = (driver is None) + def setup_db(cls): params = {"User ID": cls.connection.username, "Password": cls.connection.password, "Data Source": cls.connection.database, "Provider": cls.connection.provider} paramstr = "; ".join(["%s=%s" % (key, value) for key, value in params.iteritems()]) |