|
27 | 27 |
|
28 | 28 | from qgis.testing import start_app, unittest
|
29 | 29 |
|
30 |
| -from processing.modeler.ModelerAlgorithm import (ModelerAlgorithm, ModelerParameter) |
| 30 | +from processing.modeler.ModelerAlgorithm import (Algorithm, |
| 31 | + ModelerAlgorithm, |
| 32 | + ModelerParameter, |
| 33 | + ModelerOutput, |
| 34 | + ValueFromOutput) |
31 | 35 | from processing.modeler.ModelerParametersDialog import (ModelerParametersDialog)
|
32 | 36 | from processing.core.parameters import (ParameterFile,
|
33 | 37 | ParameterNumber,
|
@@ -66,6 +70,26 @@ def testModelerParametersDialogAvailableValuesOfType(self):
|
66 | 70 | self.assertEqual(set(p.name for p in dlg.getAvailableValuesOfType([ParameterString, ParameterNumber, ParameterFile])),
|
67 | 71 | set(['string', 'string2', 'number', 'file']))
|
68 | 72 |
|
| 73 | + def testModelerAlgorithmHasDependencies(self): |
| 74 | + # test hasDependencies from ModelerAlgorithm |
| 75 | + |
| 76 | + m = ModelerAlgorithm() |
| 77 | + |
| 78 | + a = Algorithm("qgis:clip") |
| 79 | + m.addAlgorithm(a) |
| 80 | + a2 = Algorithm("qgis:clip") |
| 81 | + m.addAlgorithm(a2) |
| 82 | + |
| 83 | + # test parent algorithm dependency |
| 84 | + self.assertEqual(m.hasDependencies('QGISCLIP_1'), False) |
| 85 | + a2.dependencies = ['QGISCLIP_1'] |
| 86 | + self.assertEqual(m.hasDependencies('QGISCLIP_1'), True) |
| 87 | + |
| 88 | + # test output algorithm dependency |
| 89 | + a2.dependencies = [] |
| 90 | + a.outputs['OUTPUT'] = ModelerOutput('out') |
| 91 | + a2.params['INPUT'] = ValueFromOutput('QGISCLIP_1', 'OUTPUT') |
| 92 | + self.assertEqual(m.hasDependencies('QGISCLIP_1'), True) |
69 | 93 |
|
70 | 94 | if __name__ == '__main__':
|
71 | 95 | unittest.main()
|
0 commit comments