Skip to content

Commit 09a416a

Browse files
committed
add test for defer_connect
1 parent 1fccdc7 commit 09a416a

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

pymysql/connections.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -651,7 +651,9 @@ def _config(key, arg):
651651
self.sql_mode = sql_mode
652652
self.init_command = init_command
653653
self.max_allowed_packet = max_allowed_packet
654-
if not defer_connect:
654+
if defer_connect:
655+
self.socket = None
656+
else:
655657
self.connect()
656658

657659
def close(self):

pymysql/tests/test_connection.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,26 @@ def test_set_charset(self):
107107
c.set_charset('utf8')
108108
# TODO validate setting here
109109

110+
def test_defer_connect(self):
111+
import socket
112+
for db in self.databases:
113+
d = db.copy()
114+
try:
115+
sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
116+
sock.connect(d['unix_socket'])
117+
except KeyError:
118+
sock = socket.create_connection(
119+
(d.get('host', 'localhost'), d.get('port', 3306)))
120+
for k in ['unix_socket', 'host', 'port']:
121+
try:
122+
del d[k]
123+
except KeyError:
124+
pass
125+
126+
c = pymysql.connect(defer_connect=True, **d)
127+
self.assertFalse(c.open)
128+
c.connect(sock)
129+
110130

111131
# A custom type and function to escape it
112132
class Foo(object):

0 commit comments

Comments
 (0)