2024-11-29 15:38:02 +01:00

103 lines
3.5 KiB
Python

"""
***************************************************************************
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()