Fix PSYCOPG2_TEST_REPL_DSN handling.

This commit is contained in:
Oleksandr Shulgin 2015-10-16 16:36:03 +02:00
parent cf4f2411bf
commit 0435320f34
2 changed files with 21 additions and 1 deletions

View File

@ -33,6 +33,9 @@ from testutils import ConnectingTestCase
class ReplicationTestCase(ConnectingTestCase):
def setUp(self):
from testconfig import repl_dsn
if not repl_dsn:
self.skipTest("replication tests disabled by default")
super(ReplicationTestCase, self).setUp()
self._slots = []
@ -99,6 +102,19 @@ class ReplicationTest(ReplicationTestCase):
self.create_replication_slot(cur, slot)
self.assertRaises(psycopg2.ProgrammingError, self.create_replication_slot, cur, slot)
@skip_before_postgres(9, 4) # slots require 9.4
def test_start_on_missing_replication_slot(self):
conn = self.repl_connect(connection_factory=PhysicalReplicationConnection)
if conn is None: return
cur = conn.cursor()
slot = "test_slot1"
self.assertRaises(psycopg2.ProgrammingError, cur.start_replication, slot)
self.create_replication_slot(cur, slot)
cur.start_replication(slot)
class AsyncReplicationTest(ReplicationTestCase):
@skip_before_postgres(9, 4)

View File

@ -33,4 +33,8 @@ if dbuser is not None:
if dbpass is not None:
dsn += ' password=%s' % dbpass
repl_dsn = os.environ.get('PSYCOPG2_TEST_REPL_DSN', dsn)
# Don't run replication tests if REPL_DSN is not set, default to normal DSN if
# set to empty string.
repl_dsn = os.environ.get('PSYCOPG2_TEST_REPL_DSN', None)
if repl_dsn == '':
repl_dsn = dsn