1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
|
"""
***************************************************************************
ModelerTest
---------------------
Date : November 2016
Copyright : (C) 2016 by Nyall Dawson
Email : nyall dot dawson at gmail dot com
***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************8
"""
__author__ = "Nyall Dawson"
__date__ = "November 2016"
__copyright__ = "(C) 2016, Nyall Dawson"
import unittest
from qgis.testing import start_app, QgisTestCase
from qgis.core import (
QgsProcessingModelAlgorithm,
QgsProcessingModelParameter,
QgsProcessingParameterString,
QgsProcessingParameterNumber,
QgsProcessingParameterDistance,
QgsProcessingParameterField,
QgsProcessingParameterFile,
)
from processing.modeler.ModelerParametersDialog import ModelerParametersDialog
start_app()
class ModelerTest(QgisTestCase):
def testModelerParametersDialogAvailableValuesOfType(self):
# test getAvailableValuesOfType from ModelerParametersDialog
m = QgsProcessingModelAlgorithm()
string_param_1 = QgsProcessingModelParameter("string")
m.addModelParameter(QgsProcessingParameterString("string"), string_param_1)
string_param_2 = QgsProcessingModelParameter("string2")
m.addModelParameter(QgsProcessingParameterString("string2"), string_param_2)
num_param = QgsProcessingModelParameter("number")
m.addModelParameter(QgsProcessingParameterNumber("number"), num_param)
table_field_param = QgsProcessingModelParameter("field")
m.addModelParameter(QgsProcessingParameterField("field"), table_field_param)
file_param = QgsProcessingModelParameter("file")
m.addModelParameter(QgsProcessingParameterFile("file"), file_param)
dlg = ModelerParametersDialog(m, m)
# test single types
self.assertEqual(
{
p.parameterName()
for p in dlg.getAvailableValuesOfType(QgsProcessingParameterNumber)
},
{"number"},
)
self.assertEqual(
{
p.parameterName()
for p in dlg.getAvailableValuesOfType(QgsProcessingParameterField)
},
{"field"},
)
self.assertEqual(
{
p.parameterName()
for p in dlg.getAvailableValuesOfType(QgsProcessingParameterFile)
},
{"file"},
)
# test multiple types
self.assertEqual(
{
p.parameterName()
for p in dlg.getAvailableValuesOfType(
[
QgsProcessingParameterString,
QgsProcessingParameterNumber,
QgsProcessingParameterFile,
]
)
},
{"string", "string2", "number", "file"},
)
if __name__ == "__main__":
unittest.main()
|