# -*- coding: utf-8 -*- """ *************************************************************************** ParametersTest --------------------- Date : May 2021 Copyright : (C) 2021 by René-Luc DHONT Email : rldhont 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. * * * *************************************************************************** """ __author__ = 'René-Luc DHONT' __date__ = 'May 2021' __copyright__ = '(C) 2021, René-Luc DHONT' import os import shutil from qgis.core import (QgsProcessingParameterDefinition, QgsProcessingParameterNumber) from qgis.testing import start_app, unittest from processing.core.parameters import getParameterFromString testDataPath = os.path.join(os.path.dirname(__file__), 'testdata') start_app() class ParametersTest(unittest.TestCase): @classmethod def setUpClass(cls): cls.cleanup_paths = [] @classmethod def tearDownClass(cls): for path in cls.cleanup_paths: shutil.rmtree(path) def testParameterStringDesc(self): desc = 'QgsProcessingParameterString|in_string|Input String' param = getParameterFromString(desc) self.assertIsNotNone(param) self.assertEqual(param.type(), 'string') self.assertEqual(param.name(), 'in_string') self.assertEqual(param.description(), 'Input String') self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional) desc = 'QgsProcessingParameterString|in_string|Input String|default value' param = getParameterFromString(desc) self.assertIsNotNone(param) self.assertEqual(param.type(), 'string') self.assertEqual(param.name(), 'in_string') self.assertEqual(param.description(), 'Input String') self.assertEqual(param.defaultValue(), 'default value') self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional) desc = 'QgsProcessingParameterString|in_string|Input String|default value|True' param = getParameterFromString(desc) self.assertIsNotNone(param) self.assertEqual(param.type(), 'string') self.assertEqual(param.name(), 'in_string') self.assertEqual(param.description(), 'Input String') self.assertEqual(param.defaultValue(), 'default value') self.assertTrue(param.multiLine()) self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional) desc = 'QgsProcessingParameterString|in_string|Input String||False|True' param = getParameterFromString(desc) self.assertIsNotNone(param) self.assertEqual(param.type(), 'string') self.assertEqual(param.name(), 'in_string') self.assertEqual(param.description(), 'Input String') self.assertEqual(param.defaultValue(), '') self.assertFalse(param.multiLine()) self.assertTrue(param.flags() & QgsProcessingParameterDefinition.FlagOptional) def testParameterNumberDesc(self): desc = 'QgsProcessingParameterNumber|in_number|Input number' param = getParameterFromString(desc) self.assertIsNotNone(param) self.assertEqual(param.type(), 'number') self.assertEqual(param.name(), 'in_number') self.assertEqual(param.description(), 'Input Number') self.assertEqual(param.dataType(), QgsProcessingParameterNumber.Integer) self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional) desc = 'QgsProcessingParameterNumber|in_number|Input number|QgsProcessingParameterNumber.Double' param = getParameterFromString(desc) self.assertIsNotNone(param) self.assertEqual(param.type(), 'number') self.assertEqual(param.name(), 'in_number') self.assertEqual(param.description(), 'Input Number') self.assertEqual(param.dataType(), QgsProcessingParameterNumber.Double) self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional) desc = 'QgsProcessingParameterNumber|in_number|Input number|QgsProcessingParameterNumber.Integer|10' param = getParameterFromString(desc) self.assertIsNotNone(param) self.assertEqual(param.type(), 'number') self.assertEqual(param.name(), 'in_number') self.assertEqual(param.description(), 'Input Number') self.assertEqual(param.dataType(), QgsProcessingParameterNumber.Integer) self.assertEqual(param.defaultValue(), 10) self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional) desc = 'QgsProcessingParameterNumber|in_number|Input number|QgsProcessingParameterNumber.Integer|None|True' param = getParameterFromString(desc) self.assertIsNotNone(param) self.assertEqual(param.type(), 'number') self.assertEqual(param.name(), 'in_number') self.assertEqual(param.description(), 'Input Number') self.assertEqual(param.dataType(), QgsProcessingParameterNumber.Integer) self.assertIsNone(param.defaultValue()) self.assertTrue(param.flags() & QgsProcessingParameterDefinition.FlagOptional) desc = 'QgsProcessingParameterNumber|in_number|Input number|QgsProcessingParameterNumber.Integer|10|False|0' param = getParameterFromString(desc) self.assertIsNotNone(param) self.assertEqual(param.type(), 'number') self.assertEqual(param.name(), 'in_number') self.assertEqual(param.description(), 'Input Number') self.assertEqual(param.dataType(), QgsProcessingParameterNumber.Integer) self.assertEqual(param.defaultValue(), 10) self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional) self.assertEqual(param.minimum(), 0) desc = 'QgsProcessingParameterNumber|in_number|Input number|QgsProcessingParameterNumber.Integer|10|False|0|20' param = getParameterFromString(desc) self.assertIsNotNone(param) self.assertEqual(param.type(), 'number') self.assertEqual(param.name(), 'in_number') self.assertEqual(param.description(), 'Input Number') self.assertEqual(param.dataType(), QgsProcessingParameterNumber.Integer) self.assertEqual(param.defaultValue(), 10) self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional) self.assertEqual(param.minimum(), 0) self.assertEqual(param.maximum(), 20) def testParameterBooleanDesc(self): desc = 'QgsProcessingParameterBoolean|in_bool|Input Boolean' param = getParameterFromString(desc) self.assertIsNotNone(param) self.assertEqual(param.type(), 'boolean') self.assertEqual(param.name(), 'in_bool') self.assertEqual(param.description(), 'Input Boolean') self.assertFalse(param.defaultValue()) self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional) desc = 'QgsProcessingParameterBoolean|in_bool|Input Boolean|True' param = getParameterFromString(desc) self.assertIsNotNone(param) self.assertEqual(param.type(), 'boolean') self.assertEqual(param.name(), 'in_bool') self.assertEqual(param.description(), 'Input Boolean') self.assertTrue(param.defaultValue()) self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional) desc = 'QgsProcessingParameterBoolean|in_bool|Input Boolean|False|True' param = getParameterFromString(desc) self.assertIsNotNone(param) self.assertEqual(param.type(), 'boolean') self.assertEqual(param.name(), 'in_bool') self.assertEqual(param.description(), 'Input Boolean') self.assertFalse(param.defaultValue()) self.assertTrue(param.flags() & QgsProcessingParameterDefinition.FlagOptional) def testParameterCrsDesc(self): desc = 'QgsProcessingParameterCrs|in_crs|Input CRS' param = getParameterFromString(desc) self.assertIsNotNone(param) self.assertEqual(param.type(), 'crs') self.assertEqual(param.name(), 'in_crs') self.assertEqual(param.description(), 'Input CRS') self.assertIsNone(param.defaultValue()) self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional) desc = 'QgsProcessingParameterCrs|in_crs|Input CRS|EPSG:2154' param = getParameterFromString(desc) self.assertIsNotNone(param) self.assertEqual(param.type(), 'crs') self.assertEqual(param.name(), 'in_crs') self.assertEqual(param.description(), 'Input CRS') self.assertEqual(param.defaultValue(), 'EPSG:2154') self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional) desc = 'QgsProcessingParameterCrs|in_crs|Input CRS|None|True' param = getParameterFromString(desc) self.assertIsNotNone(param) self.assertEqual(param.type(), 'crs') self.assertEqual(param.name(), 'in_bool') self.assertEqual(param.description(), 'Input CRS') self.assertIsNone(param.defaultValue()) self.assertTrue(param.flags() & QgsProcessingParameterDefinition.FlagOptional if __name__ == '__main__': unittest.main()