Skip to content

Commit 4bc6a60

Browse files
committed
update unittests for python 3 as well as python 2.
1 parent 4527dc9 commit 4bc6a60

17 files changed

+368
-221
lines changed

src/tests/runtests.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
try:
1919
import System
2020
except ImportError:
21-
print "Load clr import hook"
21+
print("Load clr import hook")
2222
import clr
2323

2424
test_modules = (
@@ -69,6 +69,6 @@ def main(verbosity=1):
6969
if __name__ == '__main__':
7070
main(1)
7171
if '--pause' in sys.argv:
72-
print "Press enter to continue"
72+
print("Press enter to continue")
7373
raw_input()
7474

src/tests/test_array.py

+38-22
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@
1010
import sys, os, string, unittest, types
1111
import Python.Test as Test
1212
import System
13+
import six
14+
15+
if six.PY3:
16+
long = int
17+
unichr = chr
1318

1419

1520
class ArrayTests(unittest.TestCase):
@@ -422,8 +427,8 @@ def testInt64Array(self):
422427
self.assertTrue(items[0] == 0)
423428
self.assertTrue(items[4] == 4)
424429

425-
max = 9223372036854775807L
426-
min = -9223372036854775808L
430+
max = long(9223372036854775807)
431+
min = long(-9223372036854775808)
427432

428433
items[0] = max
429434
self.assertTrue(items[0] == max)
@@ -522,7 +527,7 @@ def testUInt32Array(self):
522527
self.assertTrue(items[0] == 0)
523528
self.assertTrue(items[4] == 4)
524529

525-
max = 4294967295L
530+
max = long(4294967295)
526531
min = 0
527532

528533
items[0] = max
@@ -572,7 +577,7 @@ def testUInt64Array(self):
572577
self.assertTrue(items[0] == 0)
573578
self.assertTrue(items[4] == 4)
574579

575-
max = 18446744073709551615L
580+
max = long(18446744073709551615)
576581
min = 0
577582

578583
items[0] = max
@@ -1056,7 +1061,7 @@ def testArrayIteration(self):
10561061
empty = Test.NullArrayTest().empty
10571062

10581063
for i in empty:
1059-
raise TypeError, 'iteration over empty array'
1064+
raise TypeError('iteration over empty array')
10601065

10611066

10621067
def testTupleArrayConversion(self):
@@ -1131,7 +1136,10 @@ def testSequenceArrayConversion(self):
11311136
"""Test conversion of sequence-like objects to array arguments."""
11321137
from Python.Test import ArrayConversionTest
11331138
from Python.Test import Spam
1134-
from UserList import UserList
1139+
if six.PY3:
1140+
from collections import UserList
1141+
else:
1142+
from UserList import UserList
11351143

11361144
items = UserList()
11371145
for i in range(10):
@@ -1146,7 +1154,10 @@ def testSequenceNestedArrayConversion(self):
11461154
"""Test conversion of sequences to array-of-array arguments."""
11471155
from Python.Test import ArrayConversionTest
11481156
from Python.Test import Spam
1149-
from UserList import UserList
1157+
if six.PY3:
1158+
from collections import UserList
1159+
else:
1160+
from UserList import UserList
11501161

11511162
items = UserList()
11521163
for i in range(10):
@@ -1235,7 +1246,10 @@ def testSequenceArrayConversionTypeChecking(self):
12351246
"""Test error handling for sequence conversion to array arguments."""
12361247
from Python.Test import ArrayConversionTest
12371248
from Python.Test import Spam
1238-
from UserList import UserList
1249+
if six.PY3:
1250+
from collections import UserList
1251+
else:
1252+
from UserList import UserList
12391253

12401254
# This should work, because null / None is a valid value in an
12411255
# array of reference types.
@@ -1353,9 +1367,9 @@ def testSpecialArrayCreation(self):
13531367
self.assertTrue(value[1] == 127)
13541368
self.assertTrue(value.Length == 2)
13551369

1356-
value = Array[System.Char]([u'A', u'Z'])
1357-
self.assertTrue(value[0] == u'A')
1358-
self.assertTrue(value[1] == u'Z')
1370+
value = Array[System.Char]([six.u('A'), six.u('Z')])
1371+
self.assertTrue(value[0] == six.u('A'))
1372+
self.assertTrue(value[1] == six.u('Z'))
13591373
self.assertTrue(value.Length == 2)
13601374

13611375
value = Array[System.Char]([0, 65535])
@@ -1378,29 +1392,31 @@ def testSpecialArrayCreation(self):
13781392
self.assertTrue(value[1] == 2147483647)
13791393
self.assertTrue(value.Length == 2)
13801394

1381-
value = Array[System.Int64]([0, 9223372036854775807L])
1395+
value = Array[System.Int64]([0, long(9223372036854775807)])
13821396
self.assertTrue(value[0] == 0)
1383-
self.assertTrue(value[1] == 9223372036854775807L)
1397+
self.assertTrue(value[1] == long(9223372036854775807))
13841398
self.assertTrue(value.Length == 2)
13851399

1386-
value = Array[long]([0, 9223372036854775807L])
1387-
self.assertTrue(value[0] == 0)
1388-
self.assertTrue(value[1] == 9223372036854775807L)
1389-
self.assertTrue(value.Length == 2)
1400+
# there's no explicit long type in python3, use System.Int64 instead
1401+
if not six.PY3:
1402+
value = Array[long]([0, long(9223372036854775807)])
1403+
self.assertTrue(value[0] == 0)
1404+
self.assertTrue(value[1] == long(9223372036854775807))
1405+
self.assertTrue(value.Length == 2)
13901406

13911407
value = Array[System.UInt16]([0, 65000])
13921408
self.assertTrue(value[0] == 0)
1393-
self.assertTrue(value[1] == 65000)
1409+
self.assertTrue(value[1] == 65000)
13941410
self.assertTrue(value.Length == 2)
13951411

1396-
value = Array[System.UInt32]([0, 4294967295L])
1412+
value = Array[System.UInt32]([0, long(4294967295)])
13971413
self.assertTrue(value[0] == 0)
1398-
self.assertTrue(value[1] == 4294967295L)
1414+
self.assertTrue(value[1] == long(4294967295))
13991415
self.assertTrue(value.Length == 2)
14001416

1401-
value = Array[System.UInt64]([0, 18446744073709551615L])
1417+
value = Array[System.UInt64]([0, long(18446744073709551615)])
14021418
self.assertTrue(value[0] == 0)
1403-
self.assertTrue(value[1] == 18446744073709551615L)
1419+
self.assertTrue(value[1] == long(18446744073709551615))
14041420
self.assertTrue(value.Length == 2)
14051421

14061422
value = Array[System.Single]([0.0, 3.402823e38])

src/tests/test_class.py

+7-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,12 @@
1111
import sys, os, string, unittest, types
1212
import Python.Test as Test
1313
import System
14+
import six
15+
16+
if six.PY3:
17+
DictProxyType = type(object.__dict__)
18+
else:
19+
DictProxyType = types.DictProxyType
1420

1521

1622
class ClassTests(unittest.TestCase):
@@ -32,7 +38,7 @@ def testClassStandardAttrs(self):
3238
"""Test standard class attributes."""
3339
self.assertTrue(ClassTest.__name__ == 'ClassTest')
3440
self.assertTrue(ClassTest.__module__ == 'Python.Test')
35-
self.assertTrue(type(ClassTest.__dict__) == types.DictProxyType)
41+
self.assertTrue(type(ClassTest.__dict__) == DictProxyType)
3642
self.assertTrue(len(ClassTest.__doc__) > 0)
3743

3844

src/tests/test_compat.py

+33-12
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@
88
# ===========================================================================
99

1010
import sys, os, string, unittest, types
11+
import six
12+
13+
if six.PY3:
14+
ClassType = type
15+
else:
16+
ClassType = types.ClassType
1117

1218

1319
class CompatibilityTests(unittest.TestCase):
@@ -19,8 +25,11 @@ def isCLRModule(self, object):
1925
return type(object).__name__ == 'ModuleObject'
2026

2127
def isCLRRootModule(self, object):
22-
return type(object).__name__ == 'CLRModule'
23-
28+
if six.PY3:
29+
# in Python 3 the clr module is a normal python module
30+
return object.__name__ == "clr"
31+
return type(object).__name__ == 'CLRModuleObject'
32+
2433
def isCLRClass(self, object):
2534
return type(object).__name__ == 'CLR Metatype' # for now
2635

@@ -36,9 +45,15 @@ def testSimpleImport(self):
3645
self.assertTrue(type(sys) == types.ModuleType)
3746
self.assertTrue(sys.__name__ == 'sys')
3847

39-
import httplib
40-
self.assertTrue(type(httplib) == types.ModuleType)
41-
self.assertTrue(httplib.__name__ == 'httplib')
48+
if six.PY3:
49+
import http.client
50+
self.assertTrue(type(http.client) == types.ModuleType)
51+
self.assertTrue(http.client.__name__ == 'http.client')
52+
53+
else:
54+
import httplib
55+
self.assertTrue(type(httplib) == types.ModuleType)
56+
self.assertTrue(httplib.__name__ == 'httplib')
4257

4358

4459
def testSimpleImportWithAlias(self):
@@ -51,9 +66,15 @@ def testSimpleImportWithAlias(self):
5166
self.assertTrue(type(mySys) == types.ModuleType)
5267
self.assertTrue(mySys.__name__ == 'sys')
5368

54-
import httplib as myHttplib
55-
self.assertTrue(type(myHttplib) == types.ModuleType)
56-
self.assertTrue(myHttplib.__name__ == 'httplib')
69+
if six.PY3:
70+
import http.client as myHttplib
71+
self.assertTrue(type(myHttplib) == types.ModuleType)
72+
self.assertTrue(myHttplib.__name__ == 'http.client')
73+
74+
else:
75+
import httplib as myHttplib
76+
self.assertTrue(type(myHttplib) == types.ModuleType)
77+
self.assertTrue(myHttplib.__name__ == 'httplib')
5778

5879

5980
def testDottedNameImport(self):
@@ -127,7 +148,7 @@ def testDottedNameImportFrom(self):
127148
self.assertTrue(pulldom.__name__ == 'xml.dom.pulldom')
128149

129150
from xml.dom.pulldom import PullDOM
130-
self.assertTrue(type(PullDOM) == types.ClassType)
151+
self.assertTrue(type(PullDOM) == ClassType)
131152
self.assertTrue(PullDOM.__name__ == 'PullDOM')
132153

133154

@@ -146,7 +167,7 @@ def testDottedNameImportFromWithAlias(self):
146167
self.assertTrue(myPulldom.__name__ == 'xml.dom.pulldom')
147168

148169
from xml.dom.pulldom import PullDOM as myPullDOM
149-
self.assertTrue(type(myPullDOM) == types.ClassType)
170+
self.assertTrue(type(myPullDOM) == ClassType)
150171
self.assertTrue(myPullDOM.__name__ == 'PullDOM')
151172

152173

@@ -178,7 +199,7 @@ def testExplicitAssemblyLoad(self):
178199
self.assertTrue(assembly != None)
179200

180201
import CLR.System.Data
181-
self.assertTrue(sys.modules.has_key('System.Data'))
202+
self.assertTrue('System.Data' in sys.modules)
182203

183204
assembly = Assembly.LoadWithPartialName('SpamSpamSpamSpamEggsAndSpam')
184205
self.assertTrue(assembly == None)
@@ -265,7 +286,7 @@ def main():
265286
try:
266287
import System
267288
except ImportError:
268-
print "Load clr import hook"
289+
print("Load clr import hook")
269290
import clr
270291

271292
main()

src/tests/test_constructors.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ class sub(System.Exception):
5555

5656
instance = sub()
5757
ob = SubclassConstructorTest(instance)
58-
print ob
58+
print(ob)
5959
self.assertTrue(isinstance(ob.value, System.Exception))
6060

6161

0 commit comments

Comments
 (0)