ModelerTest.py 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. """
  2. ***************************************************************************
  3. ModelerTest
  4. ---------------------
  5. Date : November 2016
  6. Copyright : (C) 2016 by Nyall Dawson
  7. Email : nyall dot dawson at gmail dot com
  8. ***************************************************************************
  9. * *
  10. * This program is free software; you can redistribute it and/or modify *
  11. * it under the terms of the GNU General Public License as published by *
  12. * the Free Software Foundation; either version 2 of the License, or *
  13. * (at your option) any later version. *
  14. * *
  15. ***************************************************************************8
  16. """
  17. __author__ = 'Nyall Dawson'
  18. __date__ = 'November 2016'
  19. __copyright__ = '(C) 2016, Nyall Dawson'
  20. import unittest
  21. from qgis.testing import start_app, QgisTestCase
  22. from qgis.core import (QgsProcessingModelAlgorithm,
  23. QgsProcessingModelParameter,
  24. QgsProcessingParameterString,
  25. QgsProcessingParameterNumber,
  26. QgsProcessingParameterDistance,
  27. QgsProcessingParameterField,
  28. QgsProcessingParameterFile)
  29. from processing.modeler.ModelerParametersDialog import (ModelerParametersDialog)
  30. start_app()
  31. class ModelerTest(QgisTestCase):
  32. def testModelerParametersDialogAvailableValuesOfType(self):
  33. # test getAvailableValuesOfType from ModelerParametersDialog
  34. m = QgsProcessingModelAlgorithm()
  35. string_param_1 = QgsProcessingModelParameter('string')
  36. m.addModelParameter(QgsProcessingParameterString('string'), string_param_1)
  37. string_param_2 = QgsProcessingModelParameter('string2')
  38. m.addModelParameter(QgsProcessingParameterString('string2'), string_param_2)
  39. num_param = QgsProcessingModelParameter('number')
  40. m.addModelParameter(QgsProcessingParameterNumber('number'), num_param)
  41. table_field_param = QgsProcessingModelParameter('field')
  42. m.addModelParameter(QgsProcessingParameterField('field'), table_field_param)
  43. file_param = QgsProcessingModelParameter('file')
  44. m.addModelParameter(QgsProcessingParameterFile('file'), file_param)
  45. dlg = ModelerParametersDialog(m, m)
  46. # test single types
  47. self.assertEqual({p.parameterName() for p in dlg.getAvailableValuesOfType(QgsProcessingParameterNumber)},
  48. {'number'})
  49. self.assertEqual({p.parameterName() for p in dlg.getAvailableValuesOfType(QgsProcessingParameterField)},
  50. {'field'})
  51. self.assertEqual({p.parameterName() for p in dlg.getAvailableValuesOfType(QgsProcessingParameterFile)},
  52. {'file'})
  53. # test multiple types
  54. self.assertEqual({p.parameterName() for p in dlg.getAvailableValuesOfType([QgsProcessingParameterString, QgsProcessingParameterNumber, QgsProcessingParameterFile])},
  55. {'string', 'string2', 'number', 'file'})
  56. if __name__ == '__main__':
  57. unittest.main()