Skip to content

Commit b37a3b6

Browse files
committedAug 17, 2012
Merge branch 'test_memory'
2 parents ed98805 + 4839a2a commit b37a3b6

File tree

2 files changed

+87
-0
lines changed

2 files changed

+87
-0
lines changed
 

‎tests/src/python/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ ADD_PYTHON_TEST(PyQGisApp test_qgisapp.py)
33
ADD_PYTHON_TEST(PyQgsComposerMap test_qgscomposermap.py)
44
ADD_PYTHON_TEST(PyQgsGeometry test_qgsgeometry.py)
55
ADD_PYTHON_TEST(PyQgsRasterLayer test_qgsrasterlayer.py)
6+
ADD_PYTHON_TEST(PyQgsMemoryProvider test_qgsmemoryprovider.py)
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
import unittest
2+
3+
from qgis.core import (QGis,
4+
QgsVectorLayer,
5+
QgsFeature,
6+
QgsField,
7+
QgsGeometry,
8+
QgsPoint)
9+
10+
from PyQt4.QtCore import QVariant
11+
12+
from utilities import getQgisTestApp
13+
QGISAPP, CANVAS, IFACE, PARENT = getQgisTestApp()
14+
15+
class TestQgsMemoryProvider(unittest.TestCase):
16+
17+
def testPointCtor(self):
18+
layer = QgsVectorLayer("Point", "test", "memory")
19+
assert layer.isValid(), "Failed to create valid point memory layer"
20+
21+
def testLayerGeometry(self):
22+
layer = QgsVectorLayer("Point", "test", "memory")
23+
24+
myMessage = ('Expected: %s\nGot: %s\n' %
25+
(QGis.Point, layer.geometryType()))
26+
assert layer.geometryType() == QGis.Point, myMessage
27+
28+
myMessage = ('Expected: %s\nGot: %s\n' %
29+
(QGis.WKBPoint, layer.wkbType()))
30+
assert layer.wkbType() == QGis.WKBPoint, myMessage
31+
32+
def testAddFeatures(self):
33+
layer = QgsVectorLayer("Point", "test", "memory")
34+
provider = layer.dataProvider()
35+
36+
res = provider.addAttributes([QgsField("name", QVariant.String,),
37+
QgsField("age", QVariant.Int),
38+
QgsField("size", QVariant.Double)])
39+
assert res, "Failed to add attributes"
40+
41+
myMessage = ('Expected: %s\nGot: %s\n' %
42+
(3, provider.fieldCount()))
43+
44+
assert provider.fieldCount() == 3, myMessage
45+
46+
ft = QgsFeature()
47+
ft.setGeometry(QgsGeometry.fromPoint(QgsPoint(10,10)))
48+
ft.setAttributeMap({0 : QVariant("Johny"),
49+
1 : QVariant(20),
50+
2 : QVariant(0.3)})
51+
res, t = provider.addFeatures([ft])
52+
53+
assert res, "Failed to add feature"
54+
55+
myMessage = ('Expected: %s\nGot: %s\n' %
56+
(1, provider.featureCount()))
57+
assert provider.featureCount() == 1, myMessage
58+
59+
f = QgsFeature()
60+
provider.select()
61+
while provider.nextFeature(f):
62+
attrMap = f.attributeMap()
63+
myMessage = ('Expected: %s\nGot: %s\n' %
64+
("Johny", str(attrMap[0].toString())))
65+
66+
assert str(attrMap[0].toString()) == "Johny", myMessage
67+
68+
myMessage = ('Expected: %s\nGot: %s\n' %
69+
(20, attrMap[1].toInt()[0]))
70+
71+
assert attrMap[1].toInt()[0] == 20, myMessage
72+
73+
myMessage = ('Expected: %s\nGot: %s\n' %
74+
(0.3, attrMap[2].toFloat()[0]))
75+
76+
assert (attrMap[0].toFloat()[0] - 0.3) < 0.0000001, myMessage
77+
78+
geom = f.geometry()
79+
80+
myMessage = ('Expected: %s\nGot: %s\n' %
81+
("POINT(10.000000 10.000000)", str(geom.exportToWkt())))
82+
83+
assert str(geom.exportToWkt()) == "POINT(10.000000 10.000000)", myMessage
84+
85+
if __name__ == '__main__':
86+
unittest.main()

0 commit comments

Comments
 (0)
Please sign in to comment.