Skip to content

Commit 89af061

Browse files
committed
Add memory provider to common provider tests
1 parent 0728155 commit 89af061

File tree

2 files changed

+58
-25
lines changed

2 files changed

+58
-25
lines changed

tests/src/python/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ ADD_PYTHON_TEST(PyQgsVectorLayer test_qgsvectorlayer.py)
1212
ADD_PYTHON_TEST(PyQgsRasterLayer test_qgsrasterlayer.py)
1313
ADD_PYTHON_TEST(PyQgsBlendModes test_qgsblendmodes.py)
1414
ADD_PYTHON_TEST(PyQgsRasterFileWriter test_qgsrasterfilewriter.py)
15-
ADD_PYTHON_TEST(PyQgsMemoryProvider test_qgsmemoryprovider.py)
1615
ADD_PYTHON_TEST(PyQgsDelimitedTextProvider test_qgsdelimitedtextprovider.py)
1716
ADD_PYTHON_TEST(PyQgsLogger test_qgslogger.py)
1817
ADD_PYTHON_TEST(PyQgsCoordinateTransform test_qgscoordinatetransform.py)
@@ -51,6 +50,7 @@ IF (ENABLE_PGTEST)
5150
ENDIF (ENABLE_PGTEST)
5251
ADD_PYTHON_TEST(PyQgsSpatialiteProvider test_provider_spatialite.py)
5352
ADD_PYTHON_TEST(PyQgsShapefileProvider test_provider_shapefile.py)
53+
ADD_PYTHON_TEST(PyQgsMemoryProvider test_provider_memory.py)
5454
IF (WITH_APIDOC)
5555
ADD_PYTHON_TEST(PyQgsDocCoverage test_qgsdoccoverage.py)
5656
ENDIF (WITH_APIDOC)

tests/src/python/test_qgsmemoryprovider.py renamed to tests/src/python/test_provider_memory.py

+57-24
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,72 @@
11
# -*- coding: utf-8 -*-
2-
"""QGIS Unit tests for QgsMemoryProvider.
2+
"""QGIS Unit tests for the memory layer provider.
33
44
.. note:: This program is free software; you can redistribute it and/or modify
55
it under the terms of the GNU General Public License as published by
66
the Free Software Foundation; either version 2 of the License, or
77
(at your option) any later version.
88
"""
9-
__author__ = 'Alexander Bruy'
10-
__date__ = '20/08/2012'
11-
__copyright__ = 'Copyright 2012, The QGIS Project'
9+
__author__ = 'Matthias Kuhn'
10+
__date__ = '2015-04-23'
11+
__copyright__ = 'Copyright 2015, The QGIS Project'
1212
# This will get replaced with a git SHA1 when you do a git archive
1313
__revision__ = '$Format:%H$'
1414

15-
import qgis
15+
import os
16+
import tempfile
17+
import shutil
18+
import glob
1619

17-
from PyQt4.QtCore import QVariant
18-
19-
from qgis.core import (QGis,
20-
QgsVectorLayer,
21-
QgsFeature,
22-
QgsFeatureRequest,
23-
QgsField,
24-
QgsGeometry,
25-
QgsPoint
26-
)
27-
28-
from utilities import (getQgisTestApp,
29-
TestCase,
20+
from qgis.core import QGis, QgsField, QgsPoint, QgsVectorLayer, QgsFeatureRequest, QgsFeature, QgsProviderRegistry, QgsGeometry, NULL
21+
from PyQt4.QtCore import QSettings
22+
from utilities import (unitTestDataPath,
23+
getQgisTestApp,
3024
unittest,
25+
TestCase,
3126
compareWkt
3227
)
33-
QGISAPP, CANVAS, IFACE, PARENT = getQgisTestApp()
34-
35-
36-
class TestQgsMemoryProvider(TestCase):
28+
from providertestbase import ProviderTestCase
29+
from PyQt4.QtCore import QVariant
3730

31+
QGISAPP, CANVAS, IFACE, PARENT = getQgisTestApp()
32+
TEST_DATA_DIR = unitTestDataPath()
33+
34+
35+
class TestPyQgsMemoryProvider(TestCase, ProviderTestCase):
36+
@classmethod
37+
def setUpClass(cls):
38+
"""Run before all tests"""
39+
# Create test layer
40+
cls.vl = QgsVectorLayer(u'Point?crs=epsg:4326&field=pk:integer&field=cnt:integer&field=name:string(0)&key=pk', u'test', u'memory')
41+
assert (cls.vl.isValid())
42+
cls.provider = cls.vl.dataProvider()
43+
44+
f1 = QgsFeature()
45+
f1.setAttributes( [5, -200, NULL] )
46+
f1.setGeometry( QgsGeometry.fromWkt('Point (-71.123 78.23)'))
47+
48+
f2 = QgsFeature()
49+
f2.setAttributes( [3, 300, 'Pear'] )
50+
51+
f3 = QgsFeature()
52+
f3.setAttributes( [1, 100, 'Orange'] )
53+
f3.setGeometry( QgsGeometry.fromWkt('Point (-70.332 66.33)'))
54+
55+
f4 = QgsFeature()
56+
f4.setAttributes( [2, 200, 'Apple'] )
57+
f4.setGeometry( QgsGeometry.fromWkt('Point (-68.2 70.8)'))
58+
59+
f5 = QgsFeature()
60+
f5.setAttributes( [4, 400, 'Honey'] )
61+
f5.setGeometry( QgsGeometry.fromWkt('Point (-65.32 78.3)'))
62+
63+
cls.provider.addFeatures( [ f1, f2, f3, f4, f5] );
64+
65+
66+
@classmethod
67+
def tearDownClass(cls):
68+
"""Run after all tests"""
69+
3870
def testPointCtor(self):
3971
layer = QgsVectorLayer("Point", "test", "memory")
4072
assert layer.isValid(), "Failed to create valid point memory layer"
@@ -135,7 +167,8 @@ def testFromUri(self):
135167

136168
assert myMemoryLayer is not None, 'Provider not initialised'
137169
myProvider = myMemoryLayer.dataProvider()
138-
assert myProvider is not None
139-
170+
assert myProvider is not None
171+
172+
140173
if __name__ == '__main__':
141174
unittest.main()

0 commit comments

Comments
 (0)