summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>2017-04-19 01:06:08 +0100
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>2017-04-19 01:06:08 +0100
commitbd34c86aba9d5dcb9fcab484e83b775cc69d8784 (patch)
treed75d9859ff716e4d558bd63b2fd4d2a4050bd402
parent4b4d2796b7efdd0846e972fd7a300ca4e7b11ccd (diff)
parent7b3ea43e920d448f9eeb450ef04b1224d62b5542 (diff)
downloadpsycopg2-bd34c86aba9d5dcb9fcab484e83b775cc69d8784.tar.gz
Merge remote-tracking branch 'fix_lobject_mode'
-rw-r--r--psycopg/lobject_type.c5
-rwxr-xr-xtests/test_lobject.py7
2 files changed, 11 insertions, 1 deletions
diff --git a/psycopg/lobject_type.c b/psycopg/lobject_type.c
index 54f3a4b..81c5675 100644
--- a/psycopg/lobject_type.c
+++ b/psycopg/lobject_type.c
@@ -398,7 +398,7 @@ static int
lobject_init(PyObject *obj, PyObject *args, PyObject *kwds)
{
Oid oid = InvalidOid, new_oid = InvalidOid;
- const char *smode = "";
+ const char *smode = NULL;
const char *new_file = NULL;
PyObject *conn = NULL;
@@ -407,6 +407,9 @@ lobject_init(PyObject *obj, PyObject *args, PyObject *kwds)
&oid, &smode, &new_oid, &new_file))
return -1;
+ if (!smode)
+ smode = "";
+
return lobject_setup((lobjectObject *)obj,
(connectionObject *)conn, oid, smode, new_oid, new_file);
}
diff --git a/tests/test_lobject.py b/tests/test_lobject.py
index 3379ec0..f79ae5e 100755
--- a/tests/test_lobject.py
+++ b/tests/test_lobject.py
@@ -110,6 +110,13 @@ class LargeObjectTests(LargeObjectTestCase):
self.assertEqual(lo2.oid, lo.oid)
self.assertEqual(lo2.closed, True)
+ def test_mode_defaults(self):
+ lo = self.conn.lobject()
+ lo2 = self.conn.lobject(mode=None)
+ lo3 = self.conn.lobject(mode="")
+ self.assertEqual(lo.mode, lo2.mode)
+ self.assertEqual(lo.mode, lo3.mode)
+
def test_close_connection_gone(self):
lo = self.conn.lobject()
self.conn.close()