Spaces:
Runtime error
Runtime error
| #!/usr/bin/python2 | |
| # Configure this in order to run the testcases. | |
| "setuptestframework.py v 2.6.0.8" | |
| import os | |
| import sys | |
| import tempfile | |
| import shutil | |
| try: | |
| OSErrors = (WindowsError, OSError) | |
| except NameError: # not running on Windows | |
| OSErrors = OSError | |
| def maketemp(): | |
| temphome = tempfile.gettempdir() | |
| tempdir = os.path.join(temphome, "adodbapi_test") | |
| try: | |
| os.mkdir(tempdir) | |
| except: | |
| pass | |
| return tempdir | |
| def _cleanup_function(testfolder, mdb_name): | |
| try: | |
| os.unlink(os.path.join(testfolder, mdb_name)) | |
| except: | |
| pass # mdb database not present | |
| try: | |
| shutil.rmtree(testfolder) | |
| print(" cleaned up folder", testfolder) | |
| except: | |
| pass # test package not present | |
| def getcleanupfunction(): | |
| return _cleanup_function | |
| def find_ado_path(): | |
| adoName = os.path.normpath(os.getcwd() + "/../../adodbapi.py") | |
| adoPackage = os.path.dirname(adoName) | |
| return adoPackage | |
| # make a new package directory for the test copy of ado | |
| def makeadopackage(testfolder): | |
| adoName = os.path.normpath(os.getcwd() + "/../adodbapi.py") | |
| adoPath = os.path.dirname(adoName) | |
| if os.path.exists(adoName): | |
| newpackage = os.path.join(testfolder, "adodbapi") | |
| try: | |
| os.mkdir(newpackage) | |
| except OSErrors: | |
| print( | |
| "*Note: temporary adodbapi package already exists: may be two versions running?" | |
| ) | |
| for f in os.listdir(adoPath): | |
| if f.endswith(".py"): | |
| shutil.copy(os.path.join(adoPath, f), newpackage) | |
| if sys.version_info >= (3, 0): # only when running Py3.n | |
| save = sys.stdout | |
| sys.stdout = None | |
| from lib2to3.main import main # use 2to3 to make test package | |
| main("lib2to3.fixes", args=["-n", "-w", newpackage]) | |
| sys.stdout = save | |
| return testfolder | |
| else: | |
| raise EnvironmentError("Connot find source of adodbapi to test.") | |
| def makemdb(testfolder, mdb_name): | |
| # following setup code borrowed from pywin32 odbc test suite | |
| # kindly contributed by Frank Millman. | |
| import os | |
| _accessdatasource = os.path.join(testfolder, mdb_name) | |
| if os.path.isfile(_accessdatasource): | |
| print("using JET database=", _accessdatasource) | |
| else: | |
| try: | |
| from win32com.client.gencache import EnsureDispatch | |
| from win32com.client import constants | |
| win32 = True | |
| except ImportError: # perhaps we are running IronPython | |
| win32 = False # iron Python | |
| try: | |
| from System import Activator, Type | |
| except: | |
| pass | |
| # Create a brand-new database - what is the story with these? | |
| dbe = None | |
| for suffix in (".36", ".35", ".30"): | |
| try: | |
| if win32: | |
| dbe = EnsureDispatch("DAO.DBEngine" + suffix) | |
| else: | |
| type = Type.GetTypeFromProgID("DAO.DBEngine" + suffix) | |
| dbe = Activator.CreateInstance(type) | |
| break | |
| except: | |
| pass | |
| if dbe: | |
| print(" ...Creating ACCESS db at " + _accessdatasource) | |
| if win32: | |
| workspace = dbe.Workspaces(0) | |
| newdb = workspace.CreateDatabase( | |
| _accessdatasource, constants.dbLangGeneral, constants.dbVersion40 | |
| ) | |
| else: | |
| newdb = dbe.CreateDatabase( | |
| _accessdatasource, ";LANGID=0x0409;CP=1252;COUNTRY=0" | |
| ) | |
| newdb.Close() | |
| else: | |
| print(" ...copying test ACCESS db to " + _accessdatasource) | |
| mdbName = os.path.abspath( | |
| os.path.join(os.path.dirname(__file__), "..", "examples", "test.mdb") | |
| ) | |
| import shutil | |
| shutil.copy(mdbName, _accessdatasource) | |
| return _accessdatasource | |
| if __name__ == "__main__": | |
| print("Setting up a Jet database for server to use for remote testing...") | |
| temp = maketemp() | |
| makemdb(temp, "server_test.mdb") | |