diff options
author | Frazer McLean <frazer@frazermclean.co.uk> | 2017-04-16 03:16:32 +0200 |
---|---|---|
committer | Frazer McLean <frazer@frazermclean.co.uk> | 2017-04-16 03:20:31 +0200 |
commit | 7b3ea43e920d448f9eeb450ef04b1224d62b5542 (patch) | |
tree | d75d9859ff716e4d558bd63b2fd4d2a4050bd402 | |
parent | 4b4d2796b7efdd0846e972fd7a300ca4e7b11ccd (diff) | |
download | psycopg2-7b3ea43e920d448f9eeb450ef04b1224d62b5542.tar.gz |
Handle lobject mode=None correctly
-rw-r--r-- | psycopg/lobject_type.c | 5 | ||||
-rwxr-xr-x | tests/test_lobject.py | 7 |
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() |