2007-11-11 13:40:12 +03:00
|
|
|
#!/usr/bin/env python
|
2010-02-13 01:34:53 +03:00
|
|
|
|
2011-01-07 04:44:19 +03:00
|
|
|
# psycopg2 test suite
|
|
|
|
#
|
|
|
|
# Copyright (C) 2007-2011 Federico Di Gregorio <fog@debian.org>
|
|
|
|
#
|
|
|
|
# psycopg2 is free software: you can redistribute it and/or modify it
|
|
|
|
# under the terms of the GNU Lesser General Public License as published
|
|
|
|
# by the Free Software Foundation, either version 3 of the License, or
|
|
|
|
# (at your option) any later version.
|
|
|
|
#
|
|
|
|
# In addition, as a special exception, the copyright holders give
|
|
|
|
# permission to link this program with the OpenSSL library (or with
|
|
|
|
# modified versions of OpenSSL that use the same license as OpenSSL),
|
|
|
|
# and distribute linked combinations including the two.
|
|
|
|
#
|
|
|
|
# You must obey the GNU Lesser General Public License in all respects for
|
|
|
|
# all of the code used other than OpenSSL.
|
|
|
|
#
|
|
|
|
# psycopg2 is distributed in the hope that it will be useful, but WITHOUT
|
|
|
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
|
|
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
|
|
|
# License for more details.
|
|
|
|
|
2007-09-08 12:54:30 +04:00
|
|
|
import os
|
2010-12-01 23:56:25 +03:00
|
|
|
import sys
|
2010-11-19 06:55:37 +03:00
|
|
|
from testutils import unittest
|
2007-09-08 12:54:30 +04:00
|
|
|
|
2007-11-11 13:40:12 +03:00
|
|
|
dbname = os.environ.get('PSYCOPG2_TESTDB', 'psycopg2_test')
|
2008-04-21 03:12:21 +04:00
|
|
|
dbhost = os.environ.get('PSYCOPG2_TESTDB_HOST', None)
|
|
|
|
dbport = os.environ.get('PSYCOPG2_TESTDB_PORT', None)
|
|
|
|
dbuser = os.environ.get('PSYCOPG2_TESTDB_USER', None)
|
2011-01-29 00:06:31 +03:00
|
|
|
dbpass = os.environ.get('PSYCOPG2_TESTDB_PASSWORD', None)
|
2008-04-21 03:12:21 +04:00
|
|
|
|
2010-04-04 01:23:39 +04:00
|
|
|
# Check if we want to test psycopg's green path.
|
|
|
|
green = os.environ.get('PSYCOPG2_TEST_GREEN', None)
|
|
|
|
if green:
|
2010-05-19 14:10:39 +04:00
|
|
|
if green == '1':
|
|
|
|
from psycopg2.extras import wait_select as wait_callback
|
|
|
|
elif green == 'eventlet':
|
|
|
|
from eventlet.support.psycopg2_patcher import eventlet_wait_callback \
|
|
|
|
as wait_callback
|
|
|
|
else:
|
|
|
|
raise ValueError("please set 'PSYCOPG2_TEST_GREEN' to a valid value")
|
|
|
|
|
2010-04-04 01:23:39 +04:00
|
|
|
import psycopg2.extensions
|
2010-05-19 14:10:39 +04:00
|
|
|
psycopg2.extensions.set_wait_callback(wait_callback)
|
2010-04-04 01:23:39 +04:00
|
|
|
|
2008-04-21 03:12:21 +04:00
|
|
|
# Construct a DSN to connect to the test database:
|
|
|
|
dsn = 'dbname=%s' % dbname
|
|
|
|
if dbhost is not None:
|
|
|
|
dsn += ' host=%s' % dbhost
|
|
|
|
if dbport is not None:
|
|
|
|
dsn += ' port=%s' % dbport
|
|
|
|
if dbuser is not None:
|
|
|
|
dsn += ' user=%s' % dbuser
|
2011-01-29 00:06:31 +03:00
|
|
|
if dbpass is not None:
|
|
|
|
dsn += ' password=%s' % dbpass
|
2007-09-08 12:54:30 +04:00
|
|
|
|
2010-12-01 23:56:25 +03:00
|
|
|
# If connection to test db fails, bail out early.
|
|
|
|
import psycopg2
|
|
|
|
try:
|
|
|
|
cnn = psycopg2.connect(dsn)
|
|
|
|
except Exception, e:
|
|
|
|
print "Failed connection to test db:", e.__class__.__name__, e
|
|
|
|
print "Please set env vars 'PSYCOPG2_TESTDB*' to valid values."
|
|
|
|
sys.exit(1)
|
|
|
|
else:
|
|
|
|
cnn.close()
|
|
|
|
|
2011-01-02 04:59:19 +03:00
|
|
|
import bug_gc
|
2007-11-11 13:40:12 +03:00
|
|
|
import bugX000
|
|
|
|
import extras_dictcursor
|
2008-01-16 04:43:50 +03:00
|
|
|
import test_dates
|
2007-11-11 13:40:12 +03:00
|
|
|
import test_psycopg2_dbapi20
|
|
|
|
import test_quote
|
2008-01-19 06:32:42 +03:00
|
|
|
import test_connection
|
2010-07-09 18:23:02 +04:00
|
|
|
import test_cursor
|
2007-11-11 13:40:12 +03:00
|
|
|
import test_transaction
|
|
|
|
import types_basic
|
2009-03-02 12:59:52 +03:00
|
|
|
import types_extras
|
2008-05-05 11:33:44 +04:00
|
|
|
import test_lobject
|
2010-04-08 00:56:19 +04:00
|
|
|
import test_copy
|
2010-04-20 21:17:27 +04:00
|
|
|
import test_notify
|
2010-03-26 06:03:54 +03:00
|
|
|
import test_async
|
2010-04-04 03:30:26 +04:00
|
|
|
import test_green
|
2010-07-25 01:01:27 +04:00
|
|
|
import test_cancel
|
2007-09-08 12:54:30 +04:00
|
|
|
|
2007-11-11 13:40:12 +03:00
|
|
|
def test_suite():
|
|
|
|
suite = unittest.TestSuite()
|
2011-01-02 04:59:19 +03:00
|
|
|
suite.addTest(bug_gc.test_suite())
|
2007-11-11 13:40:12 +03:00
|
|
|
suite.addTest(bugX000.test_suite())
|
|
|
|
suite.addTest(extras_dictcursor.test_suite())
|
2008-01-16 04:43:50 +03:00
|
|
|
suite.addTest(test_dates.test_suite())
|
2007-11-11 13:40:12 +03:00
|
|
|
suite.addTest(test_psycopg2_dbapi20.test_suite())
|
|
|
|
suite.addTest(test_quote.test_suite())
|
2008-01-19 06:32:42 +03:00
|
|
|
suite.addTest(test_connection.test_suite())
|
2010-07-09 18:23:02 +04:00
|
|
|
suite.addTest(test_cursor.test_suite())
|
2007-11-11 13:40:12 +03:00
|
|
|
suite.addTest(test_transaction.test_suite())
|
|
|
|
suite.addTest(types_basic.test_suite())
|
2009-03-02 12:59:52 +03:00
|
|
|
suite.addTest(types_extras.test_suite())
|
2010-11-19 06:55:37 +03:00
|
|
|
suite.addTest(test_lobject.test_suite())
|
|
|
|
suite.addTest(test_copy.test_suite())
|
2010-04-20 21:17:27 +04:00
|
|
|
suite.addTest(test_notify.test_suite())
|
2010-03-26 06:03:54 +03:00
|
|
|
suite.addTest(test_async.test_suite())
|
2010-04-04 03:30:26 +04:00
|
|
|
suite.addTest(test_green.test_suite())
|
2010-07-25 01:01:27 +04:00
|
|
|
suite.addTest(test_cancel.test_suite())
|
2007-11-11 13:40:12 +03:00
|
|
|
return suite
|
2007-09-08 12:54:30 +04:00
|
|
|
|
2007-11-11 13:40:12 +03:00
|
|
|
if __name__ == '__main__':
|
|
|
|
unittest.main(defaultTest='test_suite')
|