Add some tests

This commit is contained in:
Blottiere Paul 2017-07-05 23:21:06 +02:00
parent 15546d84cf
commit e306cb4b09

View File

@ -14,6 +14,7 @@ __revision__ = '$Format:%H$'
import qgis # NOQA
from qgis.PyQt.QtCore import QVariant
from qgis.testing import unittest
from qgis.utils import qgsfunction
from qgis.core import QgsExpression, QgsFeatureRequest
@ -196,6 +197,39 @@ class TestQgsExpressionCustomFunctions(unittest.TestCase):
e.setExpression('1')
self.assertTrue(e.isValid())
def testCreateFieldEqualityExpression(self):
e = QgsExpression()
# test when value is null
field = "myfield"
value = QVariant()
res = '"myfield" IS NULL'
self.assertEqual(e.createFieldEqualityExpression(field, value), res)
# test when value is null and field name has a quote
field = "my'field"
value = QVariant()
res = '"my\'field" IS NULL'
self.assertEqual(e.createFieldEqualityExpression(field, value), res)
# test when field name has a quote and value is an int
field = "my'field"
value = 5
res = '"my\'field" = 5'
self.assertEqual(e.createFieldEqualityExpression(field, value), res)
# test when field name has a quote and value is a string
field = "my'field"
value = '5'
res = '"my\'field" = \'5\''
self.assertEqual(e.createFieldEqualityExpression(field, value), res)
# test when field name has a quote and value is a boolean
field = "my'field"
value = True
res = '"my\'field" = TRUE'
self.assertEqual(e.createFieldEqualityExpression(field, value), res)
if __name__ == "__main__":
unittest.main()