Skip to content

Commit 9d5f1cc

Browse files
committed
Merge pull request #103 from tvincentNuoDB/master
Fixed large dataset tests on Python 3
2 parents ce94631 + b58e475 commit 9d5f1cc

File tree

3 files changed

+8
-10
lines changed

3 files changed

+8
-10
lines changed

pynuodb/protocol.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -329,8 +329,7 @@ def lookup_code(error_code):
329329
# NuoDB Client-Server Protocol Version #'s
330330
#
331331
PROTOCOL_VERSION1 = 1
332-
PROTOCOL_VERSION2 = 2 # 3/27/2011 Passing SQLState on exceptions; piggybacking generated
333-
# key result sets.
332+
PROTOCOL_VERSION2 = 2 # 3/27/2011 Passing SQLState on exceptions; piggybacking generated key result sets.
334333
PROTOCOL_VERSION3 = 3 # 2/14/2012 Passing txn, node id and commit sequence
335334
PROTOCOL_VERSION4 = 4 # 2/29/2012 Added GetCurrentSchema
336335
PROTOCOL_VERSION5 = 5 # 3/12/2012 Server returns DB UUID

pynuodb/session.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -214,10 +214,7 @@ def recv(self, doStrip=True):
214214

215215
try:
216216
lengthHeader = self.__readFully(4)
217-
if self.__version == '3':
218-
lengthHeader = bytes(lengthHeader, 'latin-1')
219217
msgLength = int(struct.unpack("!I", lengthHeader)[0])
220-
221218
msg = self.__readFully(msgLength)
222219

223220

@@ -230,23 +227,25 @@ def recv(self, doStrip=True):
230227
msg = self.__cipherIn.transform(msg).lstrip()
231228
else:
232229
msg = self.__cipherIn.transform(msg)
230+
231+
if type(msg) is bytes and self.__version == '3':
232+
msg = msg.decode("latin-1")
233233
return msg
234234

235235

236236
def __readFully(self, msgLength):
237-
msg = ""
237+
msg = b''
238238
while msgLength > 0:
239239
received = self.__sock.recv(msgLength)
240240
if not received:
241241
raise SessionException("Session was closed while receiving msgLength=[%d] len(msg)=[%d] "
242242
"len(received)=[%d]" % (msgLength, len(msg), len(received)))
243243
if self.__version == '3':
244-
msg = received.decode('latin-1')
245-
msgLength = msgLength - len(msg)
244+
msg = b''.join([msg, received])
245+
msgLength = msgLength - len(received.decode('latin-1'))
246246
else:
247247
msg = msg + received
248248
msgLength = msgLength - len(received)
249-
250249
return msg
251250

252251
def close(self, force=False):

test_requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ pytest>=2.7
44
coverage>=3.7
55
pytest-cov>=1.8.1
66
coveralls>=0.5
7-
python-coveralls>=2.5.0
7+
python-coveralls>=2.5

0 commit comments

Comments
 (0)