Skip to content

Commit 18cdad9

Browse files
committed
Convert print function to py3 style in tests
1 parent 3c01f51 commit 18cdad9

25 files changed

+111
-118
lines changed

ci/travis/linux/qt5/blacklist.txt

-5
Original file line numberDiff line numberDiff line change
@@ -60,15 +60,12 @@ PyQgsSymbolLayerV2
6060
PyQgsSymbolV2
6161
PyQgsSyntacticSugar
6262
PyQgsTabfileProvider
63-
PyQgsUnitTypes
64-
PyQgsVectorColorRamp
6563
PyQgsVectorFileWriter
6664
PyQgsVectorLayer
6765
PyQgsVirtualLayerDefinition
6866
PyQgsVirtualLayerProvider
6967
PyQgsZonalStatistics
7068
qgis_alignrastertest
71-
qgis_atlascompositiontest
7269
qgis_composereffectstest
7370
qgis_composerlabeltest
7471
qgis_composermapgridtest
@@ -83,7 +80,6 @@ qgis_composershapestest
8380
qgis_composertabletest
8481
qgis_composertablev2test
8582
qgis_composerutils
86-
qgis_coordinatereferencesystemtest
8783
qgis_ellipsemarkertest
8884
qgis_fieldexpressionwidget
8985
qgis_fieldtest
@@ -97,6 +93,5 @@ qgis_maprotationtest
9793
qgis_markerlinessymboltest
9894
qgis_painteffecttest
9995
qgis_pointpatternfillsymboltest
100-
qgis_rasterlayertest
10196
qgis_simplemarkertest
10297
qgis_svgmarkertest

scripts/qgis_fixes/fix_print.py

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from libfuturize.fixes.fix_print import FixPrint

tests/src/python/providertestbase.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -122,11 +122,11 @@ def testGetFeaturesCompiled(self):
122122
self.enableCompiler()
123123
self.runGetFeatureTests(self.provider)
124124
except AttributeError:
125-
print 'Provider does not support compiling'
125+
print('Provider does not support compiling')
126126

127127
def testSubsetString(self):
128128
if not self.provider.supportsSubsetString():
129-
print 'Provider does not support subset strings'
129+
print('Provider does not support subset strings')
130130
return
131131

132132
subset = self.getSubsetString()
@@ -177,7 +177,7 @@ def testOrderByCompiled(self):
177177
self.enableCompiler()
178178
self.runOrderByTests()
179179
except AttributeError:
180-
print 'Provider does not support compiling'
180+
print('Provider does not support compiling')
181181

182182
def runOrderByTests(self):
183183
request = QgsFeatureRequest().addOrderBy('cnt')

tests/src/python/qgis_local_server.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -500,7 +500,7 @@ def get_map(self, params, browser=False):
500500
)
501501
else:
502502
delta = time.time() - start_time
503-
print 'Seconds elapsed for server GetMap: ' + str(delta)
503+
print('Seconds elapsed for server GetMap: ' + str(delta))
504504
break
505505

506506
if resp is not None:
@@ -776,7 +776,7 @@ def tearDown(self):
776776

777777
fcgi = os.path.realpath(args.fcgi)
778778
if not os.path.isabs(fcgi) or not os.path.exists(fcgi):
779-
print 'qgis_mapserv.fcgi not resolved to existing absolute path.'
779+
print('qgis_mapserv.fcgi not resolved to existing absolute path.')
780780
sys.exit(1)
781781

782782
local_srv = QgisLocalServer(fcgi)

tests/src/python/test_provider_postgres.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ def testDateTimeTypes(self):
8383
def testQueryLayers(self):
8484
def test_query(dbconn, query, key):
8585
ql = QgsVectorLayer('%s srid=4326 table="%s" (geom) key=\'%s\' sql=' % (dbconn, query.replace('"', '\\"'), key), "testgeom", "postgres")
86-
print query, key
86+
print(query, key)
8787
assert(ql.isValid())
8888

8989
test_query(self.dbconn, '(SELECT NULL::integer "Id1", NULL::integer "Id2", NULL::geometry(Point, 4326) geom LIMIT 0)', '"Id1","Id2"')
@@ -93,7 +93,7 @@ def test_table(dbconn, table_name, wkt):
9393
vl = QgsVectorLayer('%s srid=4326 table="qgis_test".%s (geom) sql=' % (dbconn, table_name), "testgeom", "postgres")
9494
assert(vl.isValid())
9595
for f in vl.getFeatures():
96-
print f.geometry().exportToWkt(), wkt
96+
print(f.geometry().exportToWkt(), wkt)
9797
assert f.geometry().exportToWkt() == wkt
9898

9999
test_table(self.dbconn, 'p2d', 'Polygon ((0 0, 1 0, 1 1, 0 1, 0 0))')
@@ -150,7 +150,7 @@ def test_unique(features, num_features):
150150
def testSignedIdentifiers(self):
151151
def test_query_attribute(dbconn, query, att, val, fidval):
152152
ql = QgsVectorLayer('%s table="%s" (g) key=\'%s\' sql=' % (dbconn, query.replace('"', '\\"'), att), "testgeom", "postgres")
153-
print query, att
153+
print(query, att)
154154
assert(ql.isValid())
155155
features = ql.getFeatures()
156156
att_idx = ql.fieldNameIndex(att)

tests/src/python/test_provider_spatialite.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
try:
2929
from pyspatialite import dbapi2 as sqlite3
3030
except ImportError:
31-
print "You should install pyspatialite to run the tests"
31+
print("You should install pyspatialite to run the tests")
3232
raise ImportError
3333

3434
# Convenience instances in case you may need them

tests/src/python/test_provider_virtual.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
try:
3636
from pyspatialite import dbapi2 as sqlite3
3737
except ImportError:
38-
print "You should install pyspatialite to run the tests"
38+
print("You should install pyspatialite to run the tests")
3939
raise ImportError
4040

4141
import tempfile
@@ -75,9 +75,9 @@ def tearDownClass(cls):
7575
def setUp(self):
7676
"""Run before each test."""
7777
self.testDataDir = unitTestDataPath()
78-
print "****************************************************"
79-
print "In method", self._testMethodName
80-
print "****************************************************"
78+
print("****************************************************")
79+
print("In method", self._testMethodName)
80+
print("****************************************************")
8181
pass
8282

8383
def tearDown(self):
@@ -399,7 +399,7 @@ def test_refLayer(self):
399399
# now delete the layer
400400
QgsMapLayerRegistry.instance().removeMapLayer(l1.id())
401401
# check that it does not crash
402-
print sum([f.id() for f in l2.getFeatures()])
402+
print(sum([f.id() for f in l2.getFeatures()]))
403403

404404
def test_refLayers(self):
405405
l1 = QgsVectorLayer(QUrl.fromLocalFile(os.path.join(self.testDataDir, "delimitedtext/test.csv")).toString() + "?type=csv&geomType=none&subsetIndex=no&watchFile=no", "test", "delimitedtext", False)

tests/src/python/test_qgis_local_server.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import tempfile
2626

2727
if os.name == 'nt':
28-
print "TestQgisLocalServer currently doesn't support windows"
28+
print("TestQgisLocalServer currently doesn't support windows")
2929
sys.exit(0)
3030

3131
from qgis.core import (
@@ -161,8 +161,8 @@ def run_suite(module, tests):
161161
out = StringIO.StringIO()
162162
res = unittest.TextTestRunner(stream=out, verbosity=verb).run(suite)
163163
if verb:
164-
print '\nIndividual test summary:'
165-
print '\n' + out.getvalue()
164+
print('\nIndividual test summary:')
165+
print('\n' + out.getvalue())
166166
out.close()
167167

168168
if QGIS_TEST_REPORT and len(TESTREPORTS) > 0:

tests/src/python/test_qgscomposerhtml.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ def setUp(self):
4747

4848
def tearDown(self):
4949
"""Run after each test."""
50-
print "Tear down"
50+
print("Tear down")
5151

5252
def htmlUrl(self):
5353
"""Helper to get the url of the html doc."""
@@ -86,14 +86,14 @@ def testTableMultiFrame(self):
8686
composerHtml.setUrl(self.htmlUrl())
8787
composerHtml.frame(0).setFrameEnabled(True)
8888

89-
print "Checking page 1"
89+
print("Checking page 1")
9090
myPage = 0
9191
checker1 = QgsCompositionChecker('composerhtml_multiframe1', self.mComposition)
9292
checker1.setControlPathPrefix("composer_html")
9393
myTestResult, myMessage = checker1.testComposition(myPage)
9494
assert myTestResult, myMessage
9595

96-
print "Checking page 2"
96+
print("Checking page 2")
9797
myPage = 1
9898
checker2 = QgsCompositionChecker('composerhtml_multiframe2', self.mComposition)
9999
checker2.setControlPathPrefix("composer_html")
@@ -117,14 +117,14 @@ def testHtmlSmartBreaks(self):
117117
composerHtml.setUrl(self.htmlUrl())
118118
composerHtml.frame(0).setFrameEnabled(True)
119119

120-
print "Checking page 1"
120+
print("Checking page 1")
121121
myPage = 0
122122
checker1 = QgsCompositionChecker('composerhtml_smartbreaks1', self.mComposition)
123123
checker1.setControlPathPrefix("composer_html")
124124
myTestResult, myMessage = checker1.testComposition(myPage, 200)
125125
assert myTestResult, myMessage
126126

127-
print "Checking page 2"
127+
print("Checking page 2")
128128
myPage = 1
129129
checker2 = QgsCompositionChecker('composerhtml_smartbreaks2', self.mComposition)
130130
checker2.setControlPathPrefix("composer_html")

tests/src/python/test_qgscomposition.py

+6-9
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,8 @@ def testSubstitutionMap(self):
6060
myComposition = QgsComposition(self.iface.mapCanvas().mapRenderer())
6161
mySubstitutionMap = {'replace-me': myText}
6262
myFile = os.path.join(TEST_DATA_DIR, 'template-for-substitution.qpt')
63-
myTemplateFile = file(myFile, 'rt')
64-
myTemplateContent = myTemplateFile.read()
65-
myTemplateFile.close()
63+
with open(myFile) as f:
64+
myTemplateContent = f.read()
6665
myDocument = QDomDocument()
6766
myDocument.setContent(myTemplateContent)
6867
myComposition.loadFromTemplate(myDocument, mySubstitutionMap)
@@ -76,9 +75,8 @@ def testNoSubstitutionMap(self):
7675
"""Test that we can get a map if we use no text substitutions."""
7776
myComposition = QgsComposition(self.iface.mapCanvas().mapRenderer())
7877
myFile = os.path.join(TEST_DATA_DIR, 'template-for-substitution.qpt')
79-
myTemplateFile = file(myFile, 'rt')
80-
myTemplateContent = myTemplateFile.read()
81-
myTemplateFile.close()
78+
with open(myFile) as f:
79+
myTemplateContent = f.read()
8280
myDocument = QDomDocument()
8381
myDocument.setContent(myTemplateContent)
8482
myComposition.loadFromTemplate(myDocument)
@@ -111,9 +109,8 @@ def testPrintMapFromTemplate(self):
111109

112110
myComposition = QgsComposition(myMapRenderer)
113111
myFile = os.path.join(TEST_DATA_DIR, 'template-for-substitution.qpt')
114-
myTemplateFile = file(myFile, 'rt')
115-
myTemplateContent = myTemplateFile.read()
116-
myTemplateFile.close()
112+
with open(myFile) as f:
113+
myTemplateContent = f.read()
117114
myDocument = QDomDocument()
118115
myDocument.setContent(myTemplateContent)
119116
myComposition.loadFromTemplate(myDocument)

tests/src/python/test_qgsdelimitedtextprovider.py

+29-29
Original file line numberDiff line numberDiff line change
@@ -145,11 +145,11 @@ def delimitedTextData(testname, filename, requests, verbose, **params):
145145
log = []
146146
with MessageLogger('DelimitedText') as logger:
147147
if verbose:
148-
print testname
148+
print(testname)
149149
layer = QgsVectorLayer(urlstr, 'test', 'delimitedtext')
150150
uri = unicode(layer.dataProvider().dataSourceUri())
151151
if verbose:
152-
print uri
152+
print(uri)
153153
basename = os.path.basename(filepath)
154154
if not basename.startswith('test'):
155155
basename = 'file'
@@ -160,11 +160,11 @@ def delimitedTextData(testname, filename, requests, verbose, **params):
160160
if layer.isValid():
161161
for nr, r in enumerate(requests):
162162
if verbose:
163-
print "Processing request", nr + 1, repr(r)
163+
print("Processing request", nr + 1, repr(r))
164164
if callable(r):
165165
r(layer)
166166
if verbose:
167-
print "Request function executed"
167+
print("Request function executed")
168168
if callable(r):
169169
continue
170170
rfields, rtypes, rdata = layerData(layer, r, nr * 1000)
@@ -175,7 +175,7 @@ def delimitedTextData(testname, filename, requests, verbose, **params):
175175
if not rdata:
176176
log.append("Request " + str(nr) + " did not return any data")
177177
if verbose:
178-
print "Request returned", len(rdata.keys()), "features"
178+
print("Request returned", len(rdata.keys()), "features")
179179
for msg in logger.messages():
180180
filelogname = 'temp_file' if 'tmp' in filename.lower() else filename
181181
msg = re.sub(r'file\s+.*' + re.escape(filename), 'file ' + filelogname, msg)
@@ -186,33 +186,33 @@ def delimitedTextData(testname, filename, requests, verbose, **params):
186186

187187
def printWanted(testname, result):
188188
# Routine to export the result as a function definition
189-
print
190-
print "def {0}():".format(testname)
189+
print()
190+
print("def {0}():".format(testname))
191191
data = result['data']
192192
log = result['log']
193193
fields = result['fields']
194194
prefix = ' '
195195

196196
# Dump the data for a layer - used to construct unit tests
197-
print prefix + "wanted={}"
198-
print prefix + "wanted['uri']=" + repr(result['uri'])
199-
print prefix + "wanted['fieldTypes']=" + repr(result['fieldTypes'])
200-
print prefix + "wanted['geometryType']=" + repr(result['geometryType'])
201-
print prefix + "wanted['data']={"
197+
print(prefix + "wanted={}")
198+
print(prefix + "wanted['uri']=" + repr(result['uri']))
199+
print(prefix + "wanted['fieldTypes']=" + repr(result['fieldTypes']))
200+
print(prefix + "wanted['geometryType']=" + repr(result['geometryType']))
201+
print(prefix + "wanted['data']={")
202202
for k in sorted(data.keys()):
203203
row = data[k]
204-
print prefix + " {0}: {{".format(repr(k))
204+
print(prefix + " {0}: {{".format(repr(k)))
205205
for f in fields:
206-
print prefix + " " + repr(f) + ": " + repr(row[f]) + ","
207-
print prefix + " },"
208-
print prefix + " }"
206+
print(prefix + " " + repr(f) + ": " + repr(row[f]) + ",")
207+
print(prefix + " },")
208+
print(prefix + " }")
209209

210-
print prefix + "wanted['log']=["
210+
print(prefix + "wanted['log']=[")
211211
for msg in log:
212-
print prefix + ' ' + repr(msg) + ','
213-
print prefix + ' ]'
214-
print ' return wanted'
215-
print
212+
print(prefix + ' ' + repr(msg) + ',')
213+
print(prefix + ' ]')
214+
print(' return wanted')
215+
print()
216216

217217

218218
def recordDifference(record1, record2):
@@ -238,7 +238,7 @@ def runTest(file, requests, **params):
238238
testname = inspect.stack()[1][3]
239239
verbose = not rebuildTests
240240
if verbose:
241-
print "Running test:", testname
241+
print("Running test:", testname)
242242
result = delimitedTextData(testname, file, requests, verbose, **params)
243243
if rebuildTests:
244244
printWanted(testname, result)
@@ -255,7 +255,7 @@ def runTest(file, requests, **params):
255255
if result['uri'] != wanted['uri']:
256256
msg = "Layer Uri ({0}) doesn't match expected ({1})".format(
257257
result['uri'], wanted['uri'])
258-
print ' ' + msg
258+
print(' ' + msg)
259259
failures.append(msg)
260260
if result['fieldTypes'] != wanted['fieldTypes']:
261261
msg = "Layer field types ({0}) doesn't match expected ({1})".format(
@@ -276,14 +276,14 @@ def runTest(file, requests, **params):
276276
print('getting difference')
277277
difference = recordDifference(wrec, trec)
278278
if not difference:
279-
print ' {0}: Passed'.format(description)
279+
print(' {0}: Passed'.format(description))
280280
else:
281-
print ' {0}: {1}'.format(description, difference)
281+
print(' {0}: {1}'.format(description, difference))
282282
failures.append(description + ': ' + difference)
283283
for id in sorted(data.keys()):
284284
if id not in wanted_data:
285285
msg = "Layer contains unexpected extra data with id: \"{0}\"".format(id)
286-
print ' ' + msg
286+
print(' ' + msg)
287287
failures.append(msg)
288288
common = []
289289
log_wanted = wanted['log']
@@ -293,15 +293,15 @@ def runTest(file, requests, **params):
293293
for l in log_wanted:
294294
if l not in common:
295295
msg = 'Missing log message: ' + l
296-
print ' ' + msg
296+
print(' ' + msg)
297297
failures.append(msg)
298298
for l in log:
299299
if l not in common:
300300
msg = 'Extra log message: ' + l
301-
print ' ' + msg
301+
print(' ' + msg)
302302
failures.append(msg)
303303
if len(log) == len(common) and len(log_wanted) == len(common):
304-
print ' Message log correct: Passed'
304+
print(' Message log correct: Passed')
305305

306306
if failures:
307307
printWanted(testname, result)

0 commit comments

Comments
 (0)