mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-25 00:58:06 -05:00
Add test for qgsfunction.handlesnull
This commit is contained in:
parent
60730abba7
commit
4d5eb49f1c
@ -67,6 +67,11 @@ class TestQgsExpressionCustomFunctions(unittest.TestCase):
|
||||
def referenced_columns_set(values, feature, parent):
|
||||
return 2
|
||||
|
||||
@qgsfunction(args=-1, group='testing', register=False, handlesnull=True)
|
||||
def null_mean(values, feature, parent):
|
||||
vals = [val for val in values if val != NULL]
|
||||
return sum(vals) / len(vals)
|
||||
|
||||
def tearDown(self):
|
||||
QgsExpression.unregisterFunction('testfun')
|
||||
|
||||
@ -161,6 +166,11 @@ class TestQgsExpressionCustomFunctions(unittest.TestCase):
|
||||
exp = QgsExpression('referenced_columns_set()')
|
||||
self.assertEqual(set(exp.referencedColumns()), set(['a', 'b']))
|
||||
|
||||
def testHandlesNull(self):
|
||||
QgsExpression.registerFunction(self.handles_null)
|
||||
exp = QgsExpression('null_mean(1, 2, NULL, 3)')
|
||||
self.assertEqual(set(exp.evaluate()), 2)
|
||||
|
||||
def testCantOverrideBuiltinsWithUnregister(self):
|
||||
success = QgsExpression.unregisterFunction("sqrt")
|
||||
self.assertFalse(success)
|
||||
|
Loading…
x
Reference in New Issue
Block a user