From 10648dfb0cf525da98ed30cd06bf1e444b0c3980 Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Fri, 11 Nov 2016 08:35:38 +1000 Subject: [PATCH] [processing] Start of tests for modeler --- .../plugins/processing/tests/CMakeLists.txt | 1 + .../plugins/processing/tests/ModelerTest.py | 67 +++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 python/plugins/processing/tests/ModelerTest.py diff --git a/python/plugins/processing/tests/CMakeLists.txt b/python/plugins/processing/tests/CMakeLists.txt index a1ac75d3617..cc02bff8262 100644 --- a/python/plugins/processing/tests/CMakeLists.txt +++ b/python/plugins/processing/tests/CMakeLists.txt @@ -7,6 +7,7 @@ PLUGIN_INSTALL(processing tests/data ${TEST_DATA_FILES}) IF(ENABLE_TESTS) INCLUDE(UsePythonTest) ADD_PYTHON_TEST(ProcessingParametersTest ParametersTest.py) + ADD_PYTHON_TEST(ProcessingModelerTest ModelerTest.py) ADD_PYTHON_TEST(ProcessingToolsTest ToolsTest.py) ADD_PYTHON_TEST(ProcessingQgisAlgorithmsTest QgisAlgorithmsTest.py) ADD_PYTHON_TEST(ProcessingGdalAlgorithmsTest GdalAlgorithmsTest.py) diff --git a/python/plugins/processing/tests/ModelerTest.py b/python/plugins/processing/tests/ModelerTest.py new file mode 100644 index 00000000000..ad9b4b5ea87 --- /dev/null +++ b/python/plugins/processing/tests/ModelerTest.py @@ -0,0 +1,67 @@ +# -*- coding: utf-8 -*- + +""" +*************************************************************************** + 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' + +# This will get replaced with a git SHA1 when you do a git archive + +__revision__ = '$Format:%H$' + +from qgis.testing import start_app, unittest + +from processing.modeler.ModelerAlgorithm import (ModelerAlgorithm, ModelerParameter) +from processing.modeler.ModelerParametersDialog import (ModelerParametersDialog) +from processing.core.parameters import (ParameterFile, + ParameterNumber, + ParameterString, + ParameterTableField) +start_app() + + +class ModelerTest(unittest.TestCase): + + def testModelerParametersDialogAvailableValuesOfType(self): + # test getAvailableValuesOfType from ModelerParametersDialog + + m = ModelerAlgorithm() + string_param_1 = ModelerParameter(ParameterString('string', 'string desc')) + m.addParameter(string_param_1) + string_param_2 = ModelerParameter(ParameterString('string2', 'string desc')) + m.addParameter(string_param_2) + num_param = ModelerParameter(ParameterNumber('number', 'number desc')) + m.addParameter(num_param) + table_field_param = ModelerParameter(ParameterTableField('field', 'field desc')) + m.addParameter(table_field_param) + file_param = ModelerParameter(ParameterFile('file', 'file desc')) + m.addParameter(file_param) + + dlg = ModelerParametersDialog(m, m) + # test single types + self.assertEqual(set(p.name for p in dlg.getAvailableValuesOfType(ParameterNumber)), + set(['number'])) + self.assertEqual(set(p.name for p in dlg.getAvailableValuesOfType(ParameterTableField)), + set(['field'])) + self.assertEqual(set(p.name for p in dlg.getAvailableValuesOfType(ParameterFile)), + set(['file'])) + + +if __name__ == '__main__': + unittest.main()