|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- #!/usr/bin/python2
- # Configure this in order to run the testcases.
- "setuptestframework.py v 2.6.0.8"
- import os
- import shutil
- import sys
- import tempfile
-
- 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 import constants
- from win32com.client.gencache import EnsureDispatch
-
- 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")
|