diff options
author | Daniele Varrazzo <daniele.varrazzo@gmail.com> | 2017-04-19 01:34:39 +0100 |
---|---|---|
committer | Daniele Varrazzo <daniele.varrazzo@gmail.com> | 2017-04-19 01:34:39 +0100 |
commit | 6e5abf33f257954e23127ae22befdbd51d94750c (patch) | |
tree | f0641a883726d316ea85d29572516b05ad130e1a | |
parent | 9d7ff405ee39785d92dbd3e7374149955edd6315 (diff) | |
parent | 248e653c9e2ec2dfc0b1eac9561981b34a637f9d (diff) | |
download | psycopg2-6e5abf33f257954e23127ae22befdbd51d94750c.tar.gz |
Merge branch 'fix-547'
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | psycopg/replication_cursor_type.c | 2 | ||||
-rwxr-xr-x | tests/test_replication.py | 23 |
3 files changed, 26 insertions, 1 deletions
@@ -16,6 +16,8 @@ What's new in psycopg 2.7.2 (:ticket:`#544`). - Fixed `~connection.lobject()` keyword argument *lobject_factory* (:ticket:`#545`). +- Fixed `~psycopg2.extras.ReplicationCursor.consume_stream()` + *keepalive_interval* argument (:ticket:`#547`). What's new in psycopg 2.7.1 diff --git a/psycopg/replication_cursor_type.c b/psycopg/replication_cursor_type.c index d66bec3..d00b31c 100644 --- a/psycopg/replication_cursor_type.c +++ b/psycopg/replication_cursor_type.c @@ -85,7 +85,7 @@ psyco_repl_curs_consume_stream(replicationCursorObject *self, double keepalive_interval = 10; static char *kwlist[] = {"consume", "keepalive_interval", NULL}; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|id", kwlist, + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|d", kwlist, &consume, &keepalive_interval)) { return NULL; } diff --git a/tests/test_replication.py b/tests/test_replication.py index 0aed578..182bff2 100755 --- a/tests/test_replication.py +++ b/tests/test_replication.py @@ -159,6 +159,29 @@ class ReplicationTest(ReplicationTestCase): # try with correct command cur.start_replication(slot_name=self.slot) + @skip_before_postgres(9, 4) # slots require 9.4 + @skip_repl_if_green + def test_keepalive(self): + conn = self.repl_connect(connection_factory=LogicalReplicationConnection) + if conn is None: + return + + cur = conn.cursor() + + self.create_replication_slot(cur, output_plugin='test_decoding') + + self.make_replication_events() + + cur.start_replication(self.slot) + + def consume(msg): + raise StopReplication() + + self.assertRaises(StopReplication, + cur.consume_stream, consume, keepalive_interval=2) + + conn.close() + @skip_before_postgres(9, 4) # slots require 9.4 @skip_repl_if_green def test_stop_replication(self): |