# Configure this to _YOUR_ environment in order to run the testcases. "testADOdbapiConfig.py v 2.6.0.A00" # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # TESTERS: # # # # You will need to make numerous modifications to this file # # to adapt it to your own testing environment. # # # # Skip down to the next "# #" line -- # # -- the things you need to change are below it. # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # import platform import sys import random import is64bit import setuptestframework if sys.version_info >= (3,0): import tryconnection3 as tryconnection else: import tryconnection2 as tryconnection print((sys.version)) node = platform.node() try: print(('node=%s: is64bit.os()= %s, is64bit.Python()= %s' % (node, is64bit.os(), is64bit.Python()))) except: pass try: onWindows = bool(sys.getwindowsversion()) # seems to work on all versions of Python except: onWindows = False # create a random name for temporary table names _alphabet = "PYFGCRLAOEUIDHTNTQJKXBMWVZ1234567890" # yes, I do use a dvorak keyboard! tmp = ''.join([random.choice(_alphabet) for x in range(9)]) mdb_name = 'xx_' + tmp + '.mdb' testfolder = setuptestframework.maketemp() if '--package' in sys.argv: pth = setuptestframework.makeadopackage(testfolder) else: pth = setuptestframework.find_ado_path() if pth not in sys.path: sys.path.insert(1,pth) # function to clean up the temporary folder -- calling program must run this function before exit. cleanup = setuptestframework.getcleanupfunction() import adodbapi # will (hopefully) be imported using the "pth" discovered above try: print((adodbapi.version)) # show version except: print('"adodbapi.version" not present or not working.') print(__doc__) verbose = False for a in sys.argv: if a.startswith('--verbose'): arg = True try: arg = int(a.split("=")[1]) except IndexError: pass adodbapi.adodbapi.verbose = arg verbose = arg # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # start your environment setup here v v v SQL_HOST_NODE = 'Vpad' doAllTests = '--all' in sys.argv doAccessTest = not ('--nojet' in sys.argv) doSqlServerTest = node == SQL_HOST_NODE or '--mssql' in sys.argv or doAllTests doMySqlTest = '--mysql' in sys.argv or doAllTests doPostgresTest = '--pg' in sys.argv or doAllTests iterateOverTimeTests = ('--time' in sys.argv or doAllTests) and onWindows THE_PROXY_HOST = '25.44.77.176' if node != SQL_HOST_NODE or not onWindows else '::1' # -- change this try: #If mx extensions are installed, use mxDateTime import mx.DateTime doMxDateTimeTest=True except: doMxDateTimeTest=False #Requires eGenixMXExtensions doTimeTest = True # obsolete python time format if doAccessTest: if onWindows and (node == SQL_HOST_NODE or not is64bit.Python()): c = {'mdb': setuptestframework.makemdb(testfolder, mdb_name)} else: c = {'macro_find_temp_test_path' : ['mdb', 'server_test.mdb'], 'proxy_host' : THE_PROXY_HOST} # macro definition for keyword "driver" using macro "is64bit" -- see documentation c['macro_is64bit'] = ['driver', "Microsoft.ACE.OLEDB.12.0", "Microsoft.Jet.OLEDB.4.0"] connStrAccess = "Provider=%(driver)s;Data Source=%(mdb)s" print(' ...Testing ACCESS connection...') doAccessTest, connStrAccess, dbAccessconnect = tryconnection.try_connection(verbose, connStrAccess, 10, **c) if doSqlServerTest: c = {'macro_getnode' : ['host', r"%s\SQLExpress"], # name of computer with SQL Server #'host':'25.44.77.176;' # Network Library=dbmssocn', 'database': "adotest", 'user' : 'adotestuser', # None implies Windows security 'password' : "12345678", # macro definition for keyword "security" using macro "auto_security" 'macro_auto_security' : 'security', 'provider' : 'SQLNCLI11; MARS Connection=True' } connStr = "Provider=%(provider)s; Initial Catalog=%(database)s; Data Source=%(host)s; %(security)s;" if node != SQL_HOST_NODE: if THE_PROXY_HOST: c["proxy_host"] = THE_PROXY_HOST # the SQL server runs a proxy for this test else: c["pyro_connection"] = "PYRONAME:ado.connection" print(' ...Testing MS-SQL login...') doSqlServerTest, connStrSQLServer, dbSqlServerconnect = tryconnection.try_connection(verbose, connStr, 30, **c) if doMySqlTest: c = {'host' : "25.223.161.222", 'database' : 'test', 'user' : 'adotest', 'password' : '12345678', 'driver' : "MySQL ODBC 5.3 Unicode Driver"} # or _driver="MySQL ODBC 3.51 Driver if not onWindows: if THE_PROXY_HOST: c["proxy_host"] = THE_PROXY_HOST else: c["pyro_connection"] = "PYRONAME:ado.connection" c['macro_is64bit'] = ['provider', 'Provider=MSDASQL;'] cs = '%(provider)sDriver={%(driver)s};Server=%(host)s;Port=3306;' + \ 'Database=%(database)s;user=%(user)s;password=%(password)s;Option=3;' print(' ...Testing MySql login...') doMySqlTest, connStrMySql, dbMySqlconnect = tryconnection.try_connection(verbose, cs, 5, **c) if doPostgresTest: _computername = "25.223.161.222" _databasename='adotest' _username = 'adotestuser' _password = '12345678' kws = {'timeout' : 4} kws['macro_is64bit'] = ['prov_drv', 'Provider=MSDASQL;Driver={PostgreSQL Unicode(x64)}', 'Driver=PostgreSQL Unicode'] if not onWindows: if THE_PROXY_HOST: kws['proxy_host'] = THE_PROXY_HOST else: kws['pyro_connection'] = 'PYRONAME:ado.connection' # get driver from http://www.postgresql.org/ftp/odbc/versions/ # test using positional and keyword arguments (bad example for real code) print(' ...Testing PostgreSQL login...') doPostgresTest, connStrPostgres, dbPostgresConnect = tryconnection.try_connection(verbose, '%(prov_drv)s;Server=%(host)s;Database=%(database)s;uid=%(user)s;pwd=%(password)s;', _username, _password, _computername, _databasename, **kws) assert doAccessTest or doSqlServerTest or doMySqlTest or doPostgresTest, 'No database engine found for testing'