Skip to content

Commit d80cd4a

Browse files
committed
More compliance for Python 3
1 parent d063c8d commit d80cd4a

File tree

6 files changed

+39
-20
lines changed

6 files changed

+39
-20
lines changed

pynuodb/crypt.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,8 @@ def transform(self, data):
285285
if type(data) is bytes:
286286
data.decode("latin-1")
287287
for char in data:
288-
288+
if type(char) is int:
289+
char = chr(char)
289290
self.__idx1 = (self.__idx1 + 1) % 256
290291
self.__idx2 = (self.__idx2 + state[self.__idx1]) % 256
291292
state[self.__idx1], state[self.__idx2] = state[self.__idx2], state[self.__idx1]

pynuodb/encodedsession.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import uuid
1010
import struct
1111
import decimal
12+
import sys
1213

1314
from .crypt import toByteString, fromByteString, toSignedByteString, fromSignedByteString, NoCipher
1415
from .session import Session, SessionException
@@ -19,6 +20,8 @@
1920
from .statement import Statement, PreparedStatement, ExecutionResult
2021
from .result_set import ResultSet
2122

23+
systemVersion = sys.version[0]
24+
2225
class EncodedSession(Session):
2326
"""Class for representing an encoded session with the database.
2427
@@ -437,13 +440,17 @@ def putOpaque(self, value):
437440
packed = chr(protocol.OPAQUELEN0 + length) + data
438441
else:
439442
lengthStr = toByteString(length)
443+
if systemVersion is '3':
444+
data = data.decode('latin-1')
440445
packed = chr(protocol.OPAQUECOUNT1 - 1 + len(lengthStr)) + lengthStr + data
441446
self.__output += packed
442447
return self
443448

444449
def putDouble(self, value):
445450
"""Appends a Double to the message."""
446451
valueStr = struct.pack('!d', value)
452+
if systemVersion is '3':
453+
valueStr = valueStr.decode('latin-1')
447454
packed = chr(protocol.DOUBLELEN0 + len(valueStr)) + valueStr
448455
self.__output += packed
449456
return self
@@ -614,6 +621,8 @@ def getDouble(self):
614621
if typeCode < protocol.DOUBLELEN8:
615622
for i in range(0, protocol.DOUBLELEN8 - typeCode):
616623
test = test + chr(0)
624+
if systemVersion is '3':
625+
return struct.unpack('!d', bytes(test, 'latin-1'))
617626
return struct.unpack('!d', test)[0]
618627

619628
raise DataError('Not a double')

pynuodb/entity.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ def shutdown(self, graceful=True):
260260
graceful -- (default True) means that the database will first
261261
be quiesced and then shutdown.
262262
"""
263-
for database in self.__databases.itervalues():
263+
for database in list(self.__databases.values()):
264264
database.shutdown(graceful)
265265

266266
def message_received(self, root):
@@ -861,7 +861,7 @@ def shutdown(self, graceful=True):
861861
failure_count = 0
862862
failure_text = ""
863863

864-
for process in self.__processes.values():
864+
for process in list(self.__processes.values()):
865865
if process.is_transactional:
866866
try:
867867
if graceful:
@@ -873,7 +873,7 @@ def shutdown(self, graceful=True):
873873
failure_count = failure_count + 1
874874
failure_text = failure_text + str(e) + "\n"
875875

876-
for process in self.__processes.values():
876+
for process in list(self.__processes.values()):
877877
if not process.is_transactional:
878878
try:
879879
if graceful:

pynuodb/session.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,7 @@ def __readFully(self, msgLength):
246246
else:
247247
msg = msg + received
248248
msgLength = msgLength - len(received)
249+
249250
return msg
250251

251252
def close(self, force=False):

tests/nuodb_basic_test.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def test_numeric_types(self):
4545
cursor.execute("select * from typetest order by id desc limit 1")
4646
row = cursor.fetchone()
4747

48-
for i in xrange(1, len(row)):
48+
for i in range(1, len(row)):
4949
self.assertEqual(row[i], 0)
5050

5151
finally:
@@ -71,7 +71,7 @@ def test_double_precision(self):
7171
cursor.execute("select * from typetest order by id desc limit 1")
7272
row = cursor.fetchone()
7373

74-
for i in xrange(1, len(row)):
74+
for i in range(1, len(row)):
7575
self.assertEqual(row[i], test_vals[i - 1])
7676

7777
finally:
@@ -95,7 +95,7 @@ def test_param_numeric_types(self):
9595
cursor.execute("select * from typetest order by id desc limit 1")
9696
row = cursor.fetchone()
9797

98-
for i in xrange(1, len(row)):
98+
for i in range(1, len(row)):
9999
self.assertEqual(row[i], test_vals[i - 1])
100100

101101
finally:
@@ -119,7 +119,7 @@ def test_param_numeric_types_pos(self):
119119
cursor.execute("select * from typetest order by id desc limit 1")
120120
row = cursor.fetchone()
121121

122-
for i in xrange(1, len(row)):
122+
for i in range(1, len(row)):
123123
self.assertEqual(row[i], test_vals[i - 1])
124124

125125
finally:
@@ -202,7 +202,7 @@ def test_param_numeric_types_neg(self):
202202
cursor.execute("select * from typetest order by id desc limit 1")
203203
row = cursor.fetchone()
204204

205-
for i in xrange(1, len(row)):
205+
for i in range(1, len(row)):
206206
self.assertEqual(row[i], test_vals[i - 1])
207207

208208
finally:
@@ -353,7 +353,7 @@ def test_string_types(self):
353353
cursor.execute("select * from typetest order by id desc limit 1")
354354
row = cursor.fetchone()
355355

356-
for i in xrange(1, len(row)):
356+
for i in range(1, len(row)):
357357
self.assertEqual(row[i], '')
358358

359359
finally:
@@ -379,7 +379,7 @@ def test_param_string_types(self):
379379
cursor.execute("select * from typetest order by id desc limit 1")
380380
row = cursor.fetchone()
381381

382-
for i in xrange(1, len(row)):
382+
for i in range(1, len(row)):
383383
self.assertEqual(row[i], test_vals[i-1])
384384

385385
finally:
@@ -407,7 +407,7 @@ def test_long_string_types(self):
407407
cursor.execute("select * from typetest order by id desc limit 1")
408408
row = cursor.fetchone()
409409

410-
for i in xrange(1, len(row)):
410+
for i in range(1, len(row)):
411411
self.assertEqual(row[i], test_vals[i-1])
412412

413413
finally:
@@ -432,7 +432,7 @@ def test_utf8_string_types(self):
432432
cursor.execute("select * from typetest order by id desc limit 1")
433433
row = cursor.fetchone()
434434

435-
for i in xrange(1, len(row)):
435+
for i in range(1, len(row)):
436436
self.assertEqual(row[i], test_vals[i-1])
437437

438438

@@ -638,7 +638,7 @@ def test_other_types(self):
638638
cursor.execute("select * from typetest order by id desc limit 1")
639639
row = cursor.fetchone()
640640

641-
for i in xrange(1, len(row)):
641+
for i in range(1, len(row)):
642642
self.assertEqual(row[i], test_vals[i-1])
643643
finally:
644644
try:
@@ -661,7 +661,7 @@ def test_param_other_types(self):
661661
cursor.execute("select * from typetest order by id desc limit 1")
662662
row = cursor.fetchone()
663663

664-
for i in xrange(1, len(row)):
664+
for i in range(1, len(row)):
665665
self.assertEqual(row[i], test_vals[i-1])
666666
finally:
667667
try:
@@ -825,7 +825,7 @@ def test_all_types(self):
825825
cursor.execute("select * from typetest order by id desc limit 1")
826826
row = cursor.fetchone()
827827

828-
for i in xrange(1, 3):
828+
for i in range(1, 3):
829829
self.assertEqual(row[i], vals[i - 1])
830830

831831
self.assertIsInstance(row[3], pynuodb.Timestamp)
@@ -849,7 +849,7 @@ def test_all_types(self):
849849
self.assertEqual(row[5].month, vals[4].month)
850850
self.assertEqual(row[5].day, vals[4].day)
851851

852-
for i in xrange(6, len(row)):
852+
for i in range(6, len(row)):
853853
self.assertEqual(row[i], vals[i - 1])
854854

855855
finally:

tests/nuodb_blob_test.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@
44
from struct import *
55

66
import pynuodb
7+
import sys
78
from .nuodb_base import NuoBase
89

10+
systemVersion = sys.version[0]
911

1012
class NuoDBBlobTest(NuoBase):
1113
def test_blob_prepared(self):
@@ -16,15 +18,21 @@ def test_blob_prepared(self):
1618

1719
cursor.execute("SELECT ? FROM DUAL", [binary_data])
1820
row = cursor.fetchone()
19-
20-
array1 = unpack('hhl', row[0])
21+
22+
currentRow = row[0]
23+
if systemVersion is '3':
24+
currentRow = bytes(currentRow, 'latin-1')
25+
array1 = unpack('hhl', currentRow)
2126
self.assertEquals(len(array1), 3)
2227
self.assertEquals(array1[2], 3)
2328

2429
cursor.execute("SELECT ? FROM DUAL", [pynuodb.Binary(binary_data)])
2530
row = cursor.fetchone()
2631

27-
array2 = unpack('hhl', str(row[0]))
32+
currentRow = str(row[0])
33+
if systemVersion is '3':
34+
currentRow = bytes(currentRow, 'latin-1')
35+
array2 = unpack('hhl', currentRow)
2836
self.assertEquals(len(array2), 3)
2937
self.assertEquals(array2[2], 3)
3038

0 commit comments

Comments
 (0)