python-cx_Oracle/test/test.py

79 lines
2.1 KiB
Python

#------------------------------------------------------------------------------
# Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
#
# Portions Copyright 2007-2015, Anthony Tuininga. All rights reserved.
#
# Portions Copyright 2001-2007, Computronix (Canada) Ltd., Edmonton, Alberta,
# Canada. All rights reserved.
#------------------------------------------------------------------------------
"""Runs all defined unit tests."""
from __future__ import print_function
import cx_Oracle
import os
import sys
import TestEnv
import unittest
# display version of cx_Oracle and Oracle client for which tests are being run
print("Running tests for cx_Oracle version", cx_Oracle.version,
"built at", cx_Oracle.buildtime)
print("File:", cx_Oracle.__file__)
print("Client Version:", ".".join(str(i) for i in cx_Oracle.clientversion()))
sys.stdout.flush()
# verify that we can connect to the database and display database version
connection = TestEnv.GetConnection()
print("Server Version:", connection.version)
sys.stdout.flush()
# define test cases to run
moduleNames = [
"Module",
"Connection",
"Cursor",
"CursorVar",
"DateTimeVar",
"DMLReturning",
"Error",
"IntervalVar",
"LobVar",
"LongVar",
"NCharVar",
"NumberVar",
"ObjectVar",
"SessionPool",
"StringVar",
"TimestampVar",
"AQ",
"Rowid",
"Subscription"
]
clientVersion = cx_Oracle.clientversion()
if clientVersion[:2] >= (12, 1):
moduleNames.append("BooleanVar")
moduleNames.append("Features12_1")
if clientVersion[:2] >= (18, 3):
moduleNames.append("SodaDatabase")
moduleNames.append("SodaCollection")
# run all test cases
failures = []
loader = unittest.TestLoader()
runner = unittest.TextTestRunner(verbosity = 2)
for name in moduleNames:
print()
print("Running tests in", name)
tests = loader.loadTestsFromName(name + ".TestCase")
result = runner.run(tests)
if not result.wasSuccessful():
failures.append(name)
if failures:
print("***** Some tests in the following modules failed. *****")
for name in failures:
print(" %s" % name)
sys.exit(1)