Skip to content

Commit fca8c5e

Browse files
Tobias Reberm-kuhn
authored andcommittedMay 21, 2015
Hej fra Noedebo
1 parent 7f31809 commit fca8c5e

File tree

2 files changed

+110
-0
lines changed

2 files changed

+110
-0
lines changed
 

‎tests/src/python/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ ADD_PYTHON_TEST(PyQgsDistanceArea test_qgsdistancearea.py)
4343
ADD_PYTHON_TEST(PyQgsGraduatedSymbolRendererV2 test_qgsgraduatedsymbolrendererv2.py)
4444
ADD_PYTHON_TEST(PyQgsNetworkContentFetcher test_qgsnetworkcontentfetcher.py)
4545
ADD_PYTHON_TEST(PyQgsEditWidgets test_qgseditwidgets.py)
46+
ADD_PYTHON_TEST(PyQgsRangeWidgets test_qgsrangewidgets.py)
4647
IF (WITH_APIDOC)
4748
ADD_PYTHON_TEST(PyQgsDocCoverage test_qgsdoccoverage.py)
4849
ENDIF (WITH_APIDOC)
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
# -*- coding: utf-8 -*-
2+
"""QGIS Unit tests for edit widgets.
3+
4+
.. note:: This program is free software; you can redistribute it and/or modify
5+
it under the terms of the GNU General Public License as published by
6+
the Free Software Foundation; either version 2 of the License, or
7+
(at your option) any later version.
8+
"""
9+
__author__ = 'Tobias Reber'
10+
__date__ = '20/05/2015'
11+
__copyright__ = 'Copyright 2015, The QGIS Project'
12+
# This will get replaced with a git SHA1 when you do a git archive
13+
__revision__ = '$Format:%H$'
14+
15+
import qgis
16+
import os
17+
18+
from qgis.core import QgsFeature, QgsGeometry, QgsPoint, QgsVectorLayer, NULL
19+
20+
from qgis.gui import QgsEditorWidgetRegistry
21+
22+
from PyQt4 import QtCore, QtGui
23+
24+
from utilities import (unitTestDataPath,
25+
getQgisTestApp,
26+
TestCase,
27+
unittest
28+
)
29+
QGISAPP, CANVAS, IFACE, PARENT = getQgisTestApp()
30+
31+
32+
class TestQgsRangeWidget(TestCase):
33+
34+
@classmethod
35+
def setUpClass(cls):
36+
QgsEditorWidgetRegistry.initEditors()
37+
38+
39+
def setUp(self):
40+
"""
41+
create a layer with one feature
42+
"""
43+
self.layer = QgsVectorLayer("Point?crs=EPSG:21781&field=fldtxt:string&field=fldint:integer",
44+
"addfeat", "memory")
45+
pr = self.layer.dataProvider()
46+
f = QgsFeature()
47+
f.setAttributes(["Hello World", 123])
48+
f.setGeometry(QgsGeometry.fromPoint(QgsPoint(600000,200000)))
49+
50+
51+
def __createRangeWidget(self, allownull = False):
52+
"""
53+
create a range widget
54+
"""
55+
reg = QgsEditorWidgetRegistry.instance()
56+
configWdg = reg.createConfigWidget('Range', self.layer, 1, None)
57+
config = configWdg.config()
58+
59+
# if null shall be allowed
60+
if allownull == True:
61+
config["AllowNull"] = allownull
62+
63+
rangewidget = reg.create('Range', self.layer, 1, config, None, None )
64+
return rangewidget
65+
66+
67+
def test_range_widget_numbers(self):
68+
"""
69+
are the numbers being returned correctly
70+
"""
71+
rangewidget = self.__createRangeWidget()
72+
73+
rangewidget.setValue(1)
74+
assert rangewidget.value() == 1
75+
76+
rangewidget.setValue(0)
77+
assert rangewidget.value() == 0
78+
79+
80+
def test_range_widget_no_null(self):
81+
"""
82+
are None and NULL being returned as expected
83+
"""
84+
rangewidget = self.__createRangeWidget()
85+
86+
rangewidget.setValue(NULL)
87+
assert rangewidget.value() == 0
88+
89+
rangewidget.setValue(None)
90+
assert rangewidget.value() == 0
91+
92+
93+
def test_range_widget_null_allowed(self):
94+
"""
95+
are None and NULL being returned as expected
96+
"""
97+
rangewidget = self.__createRangeWidget(True)
98+
99+
rangewidget.setValue(NULL)
100+
assert rangewidget.value() == NULL
101+
102+
rangewidget.setValue(None)
103+
assert rangewidget.value() == NULL
104+
105+
106+
107+
if __name__ == '__main__':
108+
unittest.main()
109+

0 commit comments

Comments
 (0)
Please sign in to comment.