ParametersTest.py 40 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742
  1. """
  2. ***************************************************************************
  3. ParametersTest
  4. ---------------------
  5. Date : May 2021
  6. Copyright : (C) 2021 by René-Luc DHONT
  7. Email : rldhont 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. ***************************************************************************
  16. """
  17. __author__ = 'René-Luc DHONT'
  18. __date__ = 'May 2021'
  19. __copyright__ = '(C) 2021, René-Luc DHONT'
  20. import os
  21. import shutil
  22. from qgis.core import (QgsProcessingParameterDefinition,
  23. QgsProcessingParameterNumber,
  24. QgsProcessingParameterFile,
  25. QgsProcessing)
  26. import unittest
  27. from qgis.testing import start_app, QgisTestCase
  28. from processing.core.parameters import getParameterFromString
  29. testDataPath = os.path.join(os.path.dirname(__file__), 'testdata')
  30. start_app()
  31. class ParametersTest(QgisTestCase):
  32. @classmethod
  33. def setUpClass(cls):
  34. cls.cleanup_paths = []
  35. @classmethod
  36. def tearDownClass(cls):
  37. for path in cls.cleanup_paths:
  38. shutil.rmtree(path)
  39. def testParameterStringDesc(self):
  40. desc = 'QgsProcessingParameterString|in_string|Input String'
  41. param = getParameterFromString(desc)
  42. self.assertIsNotNone(param)
  43. self.assertEqual(param.type(), 'string')
  44. self.assertEqual(param.name(), 'in_string')
  45. self.assertEqual(param.description(), 'Input String')
  46. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  47. desc = 'QgsProcessingParameterString|in_string|Input String|default value'
  48. param = getParameterFromString(desc)
  49. self.assertIsNotNone(param)
  50. self.assertEqual(param.type(), 'string')
  51. self.assertEqual(param.name(), 'in_string')
  52. self.assertEqual(param.description(), 'Input String')
  53. self.assertEqual(param.defaultValue(), 'default value')
  54. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  55. desc = 'QgsProcessingParameterString|in_string|Input String|default value|True'
  56. param = getParameterFromString(desc)
  57. self.assertIsNotNone(param)
  58. self.assertEqual(param.type(), 'string')
  59. self.assertEqual(param.name(), 'in_string')
  60. self.assertEqual(param.description(), 'Input String')
  61. self.assertEqual(param.defaultValue(), 'default value')
  62. self.assertTrue(param.multiLine())
  63. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  64. desc = 'QgsProcessingParameterString|in_string|Input String||False|True'
  65. param = getParameterFromString(desc)
  66. self.assertIsNotNone(param)
  67. self.assertEqual(param.type(), 'string')
  68. self.assertEqual(param.name(), 'in_string')
  69. self.assertEqual(param.description(), 'Input String')
  70. self.assertEqual(param.defaultValue(), '')
  71. self.assertFalse(param.multiLine())
  72. self.assertTrue(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  73. def testParameterNumberDesc(self):
  74. desc = 'QgsProcessingParameterNumber|in_number|Input Number'
  75. param = getParameterFromString(desc)
  76. self.assertIsNotNone(param)
  77. self.assertEqual(param.type(), 'number')
  78. self.assertEqual(param.name(), 'in_number')
  79. self.assertEqual(param.description(), 'Input Number')
  80. self.assertEqual(param.dataType(), QgsProcessingParameterNumber.Integer)
  81. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  82. desc = 'QgsProcessingParameterNumber|in_number|Input Number|QgsProcessingParameterNumber.Double'
  83. param = getParameterFromString(desc)
  84. self.assertIsNotNone(param)
  85. self.assertEqual(param.type(), 'number')
  86. self.assertEqual(param.name(), 'in_number')
  87. self.assertEqual(param.description(), 'Input Number')
  88. self.assertEqual(param.dataType(), QgsProcessingParameterNumber.Double)
  89. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  90. desc = 'QgsProcessingParameterNumber|in_number|Input Number|QgsProcessingParameterNumber.Integer|10'
  91. param = getParameterFromString(desc)
  92. self.assertIsNotNone(param)
  93. self.assertEqual(param.type(), 'number')
  94. self.assertEqual(param.name(), 'in_number')
  95. self.assertEqual(param.description(), 'Input Number')
  96. self.assertEqual(param.dataType(), QgsProcessingParameterNumber.Integer)
  97. self.assertEqual(param.defaultValue(), 10)
  98. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  99. desc = 'QgsProcessingParameterNumber|in_number|Input Number|QgsProcessingParameterNumber.Integer|None|True'
  100. param = getParameterFromString(desc)
  101. self.assertIsNotNone(param)
  102. self.assertEqual(param.type(), 'number')
  103. self.assertEqual(param.name(), 'in_number')
  104. self.assertEqual(param.description(), 'Input Number')
  105. self.assertEqual(param.dataType(), QgsProcessingParameterNumber.Integer)
  106. self.assertIsNone(param.defaultValue())
  107. self.assertTrue(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  108. desc = 'QgsProcessingParameterNumber|in_number|Input Number|QgsProcessingParameterNumber.Integer|10|False|0'
  109. param = getParameterFromString(desc)
  110. self.assertIsNotNone(param)
  111. self.assertEqual(param.type(), 'number')
  112. self.assertEqual(param.name(), 'in_number')
  113. self.assertEqual(param.description(), 'Input Number')
  114. self.assertEqual(param.dataType(), QgsProcessingParameterNumber.Integer)
  115. self.assertEqual(param.defaultValue(), 10)
  116. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  117. self.assertEqual(param.minimum(), 0)
  118. desc = 'QgsProcessingParameterNumber|in_number|Input Number|QgsProcessingParameterNumber.Integer|10|False|0|20'
  119. param = getParameterFromString(desc)
  120. self.assertIsNotNone(param)
  121. self.assertEqual(param.type(), 'number')
  122. self.assertEqual(param.name(), 'in_number')
  123. self.assertEqual(param.description(), 'Input Number')
  124. self.assertEqual(param.dataType(), QgsProcessingParameterNumber.Integer)
  125. self.assertEqual(param.defaultValue(), 10)
  126. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  127. self.assertEqual(param.minimum(), 0)
  128. self.assertEqual(param.maximum(), 20)
  129. def testParameterBooleanDesc(self):
  130. desc = 'QgsProcessingParameterBoolean|in_bool|Input Boolean'
  131. param = getParameterFromString(desc)
  132. self.assertIsNotNone(param)
  133. self.assertEqual(param.type(), 'boolean')
  134. self.assertEqual(param.name(), 'in_bool')
  135. self.assertEqual(param.description(), 'Input Boolean')
  136. self.assertFalse(param.defaultValue())
  137. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  138. desc = 'QgsProcessingParameterBoolean|in_bool|Input Boolean|True'
  139. param = getParameterFromString(desc)
  140. self.assertIsNotNone(param)
  141. self.assertEqual(param.type(), 'boolean')
  142. self.assertEqual(param.name(), 'in_bool')
  143. self.assertEqual(param.description(), 'Input Boolean')
  144. self.assertTrue(param.defaultValue())
  145. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  146. desc = 'QgsProcessingParameterBoolean|in_bool|Input Boolean|False|True'
  147. param = getParameterFromString(desc)
  148. self.assertIsNotNone(param)
  149. self.assertEqual(param.type(), 'boolean')
  150. self.assertEqual(param.name(), 'in_bool')
  151. self.assertEqual(param.description(), 'Input Boolean')
  152. self.assertFalse(param.defaultValue())
  153. self.assertTrue(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  154. def testParameterCrsDesc(self):
  155. desc = 'QgsProcessingParameterCrs|in_crs|Input CRS'
  156. param = getParameterFromString(desc)
  157. self.assertIsNotNone(param)
  158. self.assertEqual(param.type(), 'crs')
  159. self.assertEqual(param.name(), 'in_crs')
  160. self.assertEqual(param.description(), 'Input CRS')
  161. self.assertIsNone(param.defaultValue())
  162. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  163. desc = 'QgsProcessingParameterCrs|in_crs|Input CRS|EPSG:2154'
  164. param = getParameterFromString(desc)
  165. self.assertIsNotNone(param)
  166. self.assertEqual(param.type(), 'crs')
  167. self.assertEqual(param.name(), 'in_crs')
  168. self.assertEqual(param.description(), 'Input CRS')
  169. self.assertEqual(param.defaultValue(), 'EPSG:2154')
  170. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  171. desc = 'QgsProcessingParameterCrs|in_crs|Input CRS|None|True'
  172. param = getParameterFromString(desc)
  173. self.assertIsNotNone(param)
  174. self.assertEqual(param.type(), 'crs')
  175. self.assertEqual(param.name(), 'in_crs')
  176. self.assertEqual(param.description(), 'Input CRS')
  177. self.assertIsNone(param.defaultValue())
  178. self.assertTrue(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  179. def testParameterExtentDesc(self):
  180. desc = 'QgsProcessingParameterExtent|in_extent|Input Extent'
  181. param = getParameterFromString(desc)
  182. self.assertIsNotNone(param)
  183. self.assertEqual(param.type(), 'extent')
  184. self.assertEqual(param.name(), 'in_extent')
  185. self.assertEqual(param.description(), 'Input Extent')
  186. self.assertIsNone(param.defaultValue())
  187. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  188. desc = 'QgsProcessingParameterExtent|in_extent|Input Extent|None|True'
  189. param = getParameterFromString(desc)
  190. self.assertIsNotNone(param)
  191. self.assertEqual(param.type(), 'extent')
  192. self.assertEqual(param.name(), 'in_extent')
  193. self.assertEqual(param.description(), 'Input Extent')
  194. self.assertIsNone(param.defaultValue())
  195. self.assertTrue(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  196. def testParameterFileDesc(self):
  197. desc = 'QgsProcessingParameterFile|in_file|Input File'
  198. param = getParameterFromString(desc)
  199. self.assertIsNotNone(param)
  200. self.assertEqual(param.type(), 'file')
  201. self.assertEqual(param.name(), 'in_file')
  202. self.assertEqual(param.description(), 'Input File')
  203. self.assertEqual(param.behavior(), QgsProcessingParameterFile.File)
  204. self.assertIsNone(param.defaultValue())
  205. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  206. desc = 'QgsProcessingParameterFile|in_folder|Input Folder|1'
  207. param = getParameterFromString(desc)
  208. self.assertIsNotNone(param)
  209. self.assertEqual(param.type(), 'file')
  210. self.assertEqual(param.name(), 'in_folder')
  211. self.assertEqual(param.description(), 'Input Folder')
  212. self.assertEqual(param.behavior(), QgsProcessingParameterFile.Folder)
  213. self.assertIsNone(param.defaultValue())
  214. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  215. desc = 'QgsProcessingParameterFile|in_folder|Input Folder|QgsProcessingParameterFile.Folder'
  216. param = getParameterFromString(desc)
  217. self.assertIsNotNone(param)
  218. self.assertEqual(param.type(), 'file')
  219. self.assertEqual(param.name(), 'in_folder')
  220. self.assertEqual(param.description(), 'Input Folder')
  221. self.assertEqual(param.behavior(), QgsProcessingParameterFile.Folder)
  222. self.assertIsNone(param.defaultValue())
  223. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  224. desc = 'QgsProcessingParameterFile|in_file|Input File|0|gpkg'
  225. param = getParameterFromString(desc)
  226. self.assertIsNotNone(param)
  227. self.assertEqual(param.type(), 'file')
  228. self.assertEqual(param.name(), 'in_file')
  229. self.assertEqual(param.description(), 'Input File')
  230. self.assertEqual(param.behavior(), QgsProcessingParameterFile.File)
  231. self.assertEqual(param.extension(), 'gpkg')
  232. self.assertIsNone(param.defaultValue())
  233. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  234. desc = 'QgsProcessingParameterFile|in_file|Input File|0|png|None|False|PNG Files (*.png);; JPG Files (*.jpg *.jpeg)'
  235. param = getParameterFromString(desc)
  236. self.assertIsNotNone(param)
  237. self.assertEqual(param.type(), 'file')
  238. self.assertEqual(param.name(), 'in_file')
  239. self.assertEqual(param.description(), 'Input File')
  240. self.assertEqual(param.behavior(), QgsProcessingParameterFile.File)
  241. self.assertEqual(param.extension(), '')
  242. self.assertIsNone(param.defaultValue())
  243. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  244. self.assertEqual(param.fileFilter(), 'PNG Files (*.png);; JPG Files (*.jpg *.jpeg)')
  245. def testParameterVectorDestDesc(self):
  246. desc = 'QgsProcessingParameterVectorDestination|param_vector_dest|Vector Destination'
  247. param = getParameterFromString(desc)
  248. self.assertIsNotNone(param)
  249. self.assertEqual(param.type(), 'vectorDestination')
  250. self.assertEqual(param.name(), 'param_vector_dest')
  251. self.assertEqual(param.description(), 'Vector Destination')
  252. self.assertEqual(param.dataType(), QgsProcessing.TypeVectorAnyGeometry)
  253. self.assertIsNone(param.defaultValue())
  254. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  255. self.assertTrue(param.createByDefault())
  256. desc = 'QgsProcessingParameterVectorDestination|param_vector_dest|Vector Destination Point|0'
  257. param = getParameterFromString(desc)
  258. self.assertIsNotNone(param)
  259. self.assertEqual(param.type(), 'vectorDestination')
  260. self.assertEqual(param.name(), 'param_vector_dest')
  261. self.assertEqual(param.description(), 'Vector Destination Point')
  262. self.assertEqual(param.dataType(), QgsProcessing.TypeVectorPoint)
  263. self.assertIsNone(param.defaultValue())
  264. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  265. self.assertTrue(param.createByDefault())
  266. desc = 'QgsProcessingParameterVectorDestination|param_vector_dest|Vector Destination Point|QgsProcessing.TypeVectorPoint'
  267. param = getParameterFromString(desc)
  268. self.assertIsNotNone(param)
  269. self.assertEqual(param.type(), 'vectorDestination')
  270. self.assertEqual(param.name(), 'param_vector_dest')
  271. self.assertEqual(param.description(), 'Vector Destination Point')
  272. self.assertEqual(param.dataType(), QgsProcessing.TypeVectorPoint)
  273. self.assertIsNone(param.defaultValue())
  274. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  275. self.assertTrue(param.createByDefault())
  276. desc = 'QgsProcessingParameterVectorDestination|param_vector_dest|Vector Destination Line|1'
  277. param = getParameterFromString(desc)
  278. self.assertIsNotNone(param)
  279. self.assertEqual(param.type(), 'vectorDestination')
  280. self.assertEqual(param.name(), 'param_vector_dest')
  281. self.assertEqual(param.description(), 'Vector Destination Line')
  282. self.assertEqual(param.dataType(), QgsProcessing.TypeVectorLine)
  283. self.assertIsNone(param.defaultValue())
  284. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  285. self.assertTrue(param.createByDefault())
  286. desc = 'QgsProcessingParameterVectorDestination|param_vector_dest|Vector Destination Line|QgsProcessing.TypeVectorLine'
  287. param = getParameterFromString(desc)
  288. self.assertIsNotNone(param)
  289. self.assertEqual(param.type(), 'vectorDestination')
  290. self.assertEqual(param.name(), 'param_vector_dest')
  291. self.assertEqual(param.description(), 'Vector Destination Line')
  292. self.assertEqual(param.dataType(), QgsProcessing.TypeVectorLine)
  293. self.assertIsNone(param.defaultValue())
  294. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  295. self.assertTrue(param.createByDefault())
  296. desc = 'QgsProcessingParameterVectorDestination|param_vector_dest|Vector Destination Polygon|2'
  297. param = getParameterFromString(desc)
  298. self.assertIsNotNone(param)
  299. self.assertEqual(param.type(), 'vectorDestination')
  300. self.assertEqual(param.name(), 'param_vector_dest')
  301. self.assertEqual(param.description(), 'Vector Destination Polygon')
  302. self.assertEqual(param.dataType(), QgsProcessing.TypeVectorPolygon)
  303. self.assertIsNone(param.defaultValue())
  304. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  305. self.assertTrue(param.createByDefault())
  306. desc = 'QgsProcessingParameterVectorDestination|param_vector_dest|Vector Destination Polygon|QgsProcessing.TypeVectorPolygon'
  307. param = getParameterFromString(desc)
  308. self.assertIsNotNone(param)
  309. self.assertEqual(param.type(), 'vectorDestination')
  310. self.assertEqual(param.name(), 'param_vector_dest')
  311. self.assertEqual(param.description(), 'Vector Destination Polygon')
  312. self.assertEqual(param.dataType(), QgsProcessing.TypeVectorPolygon)
  313. self.assertIsNone(param.defaultValue())
  314. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  315. self.assertTrue(param.createByDefault())
  316. desc = 'QgsProcessingParameterVectorDestination|param_vector_dest|Vector Destination Table|5'
  317. param = getParameterFromString(desc)
  318. self.assertIsNotNone(param)
  319. self.assertEqual(param.type(), 'vectorDestination')
  320. self.assertEqual(param.name(), 'param_vector_dest')
  321. self.assertEqual(param.description(), 'Vector Destination Table')
  322. self.assertEqual(param.dataType(), QgsProcessing.TypeVector)
  323. self.assertIsNone(param.defaultValue())
  324. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  325. self.assertTrue(param.createByDefault())
  326. desc = 'QgsProcessingParameterVectorDestination|param_vector_dest|Vector Destination Table|QgsProcessing.TypeVector'
  327. param = getParameterFromString(desc)
  328. self.assertIsNotNone(param)
  329. self.assertEqual(param.type(), 'vectorDestination')
  330. self.assertEqual(param.name(), 'param_vector_dest')
  331. self.assertEqual(param.description(), 'Vector Destination Table')
  332. self.assertEqual(param.dataType(), QgsProcessing.TypeVector)
  333. self.assertIsNone(param.defaultValue())
  334. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  335. self.assertTrue(param.createByDefault())
  336. desc = 'QgsProcessingParameterVectorDestination|param_vector_dest|Vector Destination|-1|None|True|False'
  337. param = getParameterFromString(desc)
  338. self.assertIsNotNone(param)
  339. self.assertEqual(param.type(), 'vectorDestination')
  340. self.assertEqual(param.name(), 'param_vector_dest')
  341. self.assertEqual(param.description(), 'Vector Destination')
  342. self.assertEqual(param.dataType(), QgsProcessing.TypeVectorAnyGeometry)
  343. self.assertIsNone(param.defaultValue())
  344. self.assertTrue(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  345. self.assertFalse(param.createByDefault())
  346. def testParameterRasterDestDesc(self):
  347. desc = 'QgsProcessingParameterRasterDestination|param_raster_dest|Raster Destination'
  348. param = getParameterFromString(desc)
  349. self.assertIsNotNone(param)
  350. self.assertEqual(param.type(), 'rasterDestination')
  351. self.assertEqual(param.name(), 'param_raster_dest')
  352. self.assertEqual(param.description(), 'Raster Destination')
  353. self.assertIsNone(param.defaultValue())
  354. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  355. self.assertTrue(param.createByDefault())
  356. desc = 'QgsProcessingParameterRasterDestination|param_raster_dest|Raster Destination|None|True|False'
  357. param = getParameterFromString(desc)
  358. self.assertIsNotNone(param)
  359. self.assertEqual(param.type(), 'rasterDestination')
  360. self.assertEqual(param.name(), 'param_raster_dest')
  361. self.assertEqual(param.description(), 'Raster Destination')
  362. self.assertIsNone(param.defaultValue())
  363. self.assertTrue(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  364. self.assertFalse(param.createByDefault())
  365. def testParameterFolderDestDesc(self):
  366. desc = 'QgsProcessingParameterFolderDestination|param_folder_dest|Folder Destination'
  367. param = getParameterFromString(desc)
  368. self.assertIsNotNone(param)
  369. self.assertEqual(param.type(), 'folderDestination')
  370. self.assertEqual(param.name(), 'param_folder_dest')
  371. self.assertEqual(param.description(), 'Folder Destination')
  372. self.assertIsNone(param.defaultValue())
  373. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  374. self.assertTrue(param.createByDefault())
  375. desc = 'QgsProcessingParameterFolderDestination|param_folder_dest|Folder Destination|None|True|False'
  376. param = getParameterFromString(desc)
  377. self.assertIsNotNone(param)
  378. self.assertEqual(param.type(), 'folderDestination')
  379. self.assertEqual(param.name(), 'param_folder_dest')
  380. self.assertEqual(param.description(), 'Folder Destination')
  381. self.assertIsNone(param.defaultValue())
  382. self.assertTrue(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  383. self.assertFalse(param.createByDefault())
  384. def testParameterFileDestDesc(self):
  385. desc = 'QgsProcessingParameterFileDestination|param_file_dest|File Destination'
  386. param = getParameterFromString(desc)
  387. self.assertIsNotNone(param)
  388. self.assertEqual(param.type(), 'fileDestination')
  389. self.assertEqual(param.name(), 'param_file_dest')
  390. self.assertEqual(param.description(), 'File Destination')
  391. self.assertIsNone(param.defaultValue())
  392. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  393. self.assertTrue(param.createByDefault())
  394. desc = 'QgsProcessingParameterFileDestination|param_html_dest|HTML File Destination|HTML Files (*.html)'
  395. param = getParameterFromString(desc)
  396. self.assertIsNotNone(param)
  397. self.assertEqual(param.type(), 'fileDestination')
  398. self.assertEqual(param.name(), 'param_html_dest')
  399. self.assertEqual(param.description(), 'HTML File Destination')
  400. self.assertEqual(param.fileFilter(), 'HTML Files (*.html)')
  401. self.assertEqual(param.defaultFileExtension(), 'html')
  402. self.assertIsNone(param.defaultValue())
  403. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  404. self.assertTrue(param.createByDefault())
  405. desc = 'QgsProcessingParameterFileDestination|param_img_dest|Img File Destination|PNG Files (*.png);; JPG Files (*.jpg *.jpeg)'
  406. param = getParameterFromString(desc)
  407. self.assertIsNotNone(param)
  408. self.assertEqual(param.type(), 'fileDestination')
  409. self.assertEqual(param.name(), 'param_img_dest')
  410. self.assertEqual(param.description(), 'Img File Destination')
  411. self.assertEqual(param.fileFilter(), 'PNG Files (*.png);; JPG Files (*.jpg *.jpeg)')
  412. self.assertEqual(param.defaultFileExtension(), 'png')
  413. self.assertIsNone(param.defaultValue())
  414. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  415. self.assertTrue(param.createByDefault())
  416. desc = 'QgsProcessingParameterFileDestination|param_csv_dest|CSV File Destination|CSV Files (*.csv)|None|True|False'
  417. param = getParameterFromString(desc)
  418. self.assertIsNotNone(param)
  419. self.assertEqual(param.type(), 'fileDestination')
  420. self.assertEqual(param.name(), 'param_csv_dest')
  421. self.assertEqual(param.description(), 'CSV File Destination')
  422. self.assertEqual(param.fileFilter(), 'CSV Files (*.csv)')
  423. self.assertEqual(param.defaultFileExtension(), 'csv')
  424. self.assertIsNone(param.defaultValue())
  425. self.assertTrue(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  426. self.assertFalse(param.createByDefault())
  427. def testParameterFeatureSourceDesc(self):
  428. desc = 'QgsProcessingParameterFeatureSource|in_vector|Input Vector'
  429. param = getParameterFromString(desc)
  430. self.assertIsNotNone(param)
  431. self.assertEqual(param.type(), 'source')
  432. self.assertEqual(param.name(), 'in_vector')
  433. self.assertEqual(param.description(), 'Input Vector')
  434. self.assertListEqual(param.dataTypes(), [])
  435. self.assertIsNone(param.defaultValue())
  436. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  437. desc = 'QgsProcessingParameterFeatureSource|in_vector|Input Vector|0'
  438. param = getParameterFromString(desc)
  439. self.assertIsNotNone(param)
  440. self.assertEqual(param.type(), 'source')
  441. self.assertEqual(param.name(), 'in_vector')
  442. self.assertEqual(param.description(), 'Input Vector')
  443. self.assertListEqual(param.dataTypes(), [QgsProcessing.TypeVectorPoint])
  444. self.assertIsNone(param.defaultValue())
  445. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  446. desc = 'QgsProcessingParameterFeatureSource|in_vector|Input Vector|QgsProcessing.TypeVectorPoint'
  447. param = getParameterFromString(desc)
  448. self.assertIsNotNone(param)
  449. self.assertEqual(param.type(), 'source')
  450. self.assertEqual(param.name(), 'in_vector')
  451. self.assertEqual(param.description(), 'Input Vector')
  452. self.assertListEqual(param.dataTypes(), [QgsProcessing.TypeVectorPoint])
  453. self.assertIsNone(param.defaultValue())
  454. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  455. desc = 'QgsProcessingParameterFeatureSource|in_vector|Input Vector|1'
  456. param = getParameterFromString(desc)
  457. self.assertIsNotNone(param)
  458. self.assertEqual(param.type(), 'source')
  459. self.assertEqual(param.name(), 'in_vector')
  460. self.assertEqual(param.description(), 'Input Vector')
  461. self.assertListEqual(param.dataTypes(), [QgsProcessing.TypeVectorLine])
  462. self.assertIsNone(param.defaultValue())
  463. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  464. desc = 'QgsProcessingParameterFeatureSource|in_vector|Input Vector|QgsProcessing.TypeVectorLine'
  465. param = getParameterFromString(desc)
  466. self.assertIsNotNone(param)
  467. self.assertEqual(param.type(), 'source')
  468. self.assertEqual(param.name(), 'in_vector')
  469. self.assertEqual(param.description(), 'Input Vector')
  470. self.assertListEqual(param.dataTypes(), [QgsProcessing.TypeVectorLine])
  471. self.assertIsNone(param.defaultValue())
  472. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  473. desc = 'QgsProcessingParameterFeatureSource|in_vector|Input Vector|2'
  474. param = getParameterFromString(desc)
  475. self.assertIsNotNone(param)
  476. self.assertEqual(param.type(), 'source')
  477. self.assertEqual(param.name(), 'in_vector')
  478. self.assertEqual(param.description(), 'Input Vector')
  479. self.assertListEqual(param.dataTypes(), [QgsProcessing.TypeVectorPolygon])
  480. self.assertIsNone(param.defaultValue())
  481. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  482. desc = 'QgsProcessingParameterFeatureSource|in_vector|Input Vector|QgsProcessing.TypeVectorPolygon'
  483. param = getParameterFromString(desc)
  484. self.assertIsNotNone(param)
  485. self.assertEqual(param.type(), 'source')
  486. self.assertEqual(param.name(), 'in_vector')
  487. self.assertEqual(param.description(), 'Input Vector')
  488. self.assertListEqual(param.dataTypes(), [QgsProcessing.TypeVectorPolygon])
  489. self.assertIsNone(param.defaultValue())
  490. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  491. desc = 'QgsProcessingParameterFeatureSource|in_vector|Input Vector|5'
  492. param = getParameterFromString(desc)
  493. self.assertIsNotNone(param)
  494. self.assertEqual(param.type(), 'source')
  495. self.assertEqual(param.name(), 'in_vector')
  496. self.assertEqual(param.description(), 'Input Vector')
  497. self.assertListEqual(param.dataTypes(), [QgsProcessing.TypeVector])
  498. self.assertIsNone(param.defaultValue())
  499. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  500. desc = 'QgsProcessingParameterFeatureSource|in_vector|Input Vector|QgsProcessing.TypeVector'
  501. param = getParameterFromString(desc)
  502. self.assertIsNotNone(param)
  503. self.assertEqual(param.type(), 'source')
  504. self.assertEqual(param.name(), 'in_vector')
  505. self.assertEqual(param.description(), 'Input Vector')
  506. self.assertListEqual(param.dataTypes(), [QgsProcessing.TypeVector])
  507. self.assertIsNone(param.defaultValue())
  508. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  509. desc = 'QgsProcessingParameterFeatureSource|in_vector|Input Vector|1;2'
  510. param = getParameterFromString(desc)
  511. self.assertIsNotNone(param)
  512. self.assertEqual(param.type(), 'source')
  513. self.assertEqual(param.name(), 'in_vector')
  514. self.assertEqual(param.description(), 'Input Vector')
  515. self.assertListEqual(param.dataTypes(), [QgsProcessing.TypeVectorLine, QgsProcessing.TypeVectorPolygon])
  516. self.assertIsNone(param.defaultValue())
  517. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  518. desc = 'QgsProcessingParameterFeatureSource|in_vector|Input Vector|QgsProcessing.TypeVectorLine;QgsProcessing.TypeVectorPolygon'
  519. param = getParameterFromString(desc)
  520. self.assertIsNotNone(param)
  521. self.assertEqual(param.type(), 'source')
  522. self.assertEqual(param.name(), 'in_vector')
  523. self.assertEqual(param.description(), 'Input Vector')
  524. self.assertListEqual(param.dataTypes(), [QgsProcessing.TypeVectorLine, QgsProcessing.TypeVectorPolygon])
  525. self.assertIsNone(param.defaultValue())
  526. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  527. desc = 'QgsProcessingParameterFeatureSource|in_vector|Input Vector|-1|None|True'
  528. param = getParameterFromString(desc)
  529. self.assertIsNotNone(param)
  530. self.assertEqual(param.type(), 'source')
  531. self.assertEqual(param.name(), 'in_vector')
  532. self.assertEqual(param.description(), 'Input Vector')
  533. self.assertListEqual(param.dataTypes(), [QgsProcessing.TypeVectorAnyGeometry])
  534. self.assertIsNone(param.defaultValue())
  535. self.assertTrue(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  536. def testParameterVectorLayerDesc(self):
  537. desc = 'QgsProcessingParameterVectorLayer|in_vector|Input Vector'
  538. param = getParameterFromString(desc)
  539. self.assertIsNotNone(param)
  540. self.assertEqual(param.type(), 'vector')
  541. self.assertEqual(param.name(), 'in_vector')
  542. self.assertEqual(param.description(), 'Input Vector')
  543. self.assertListEqual(param.dataTypes(), [])
  544. self.assertIsNone(param.defaultValue())
  545. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  546. desc = 'QgsProcessingParameterVectorLayer|in_vector|Input Vector|0'
  547. param = getParameterFromString(desc)
  548. self.assertIsNotNone(param)
  549. self.assertEqual(param.type(), 'vector')
  550. self.assertEqual(param.name(), 'in_vector')
  551. self.assertEqual(param.description(), 'Input Vector')
  552. self.assertListEqual(param.dataTypes(), [QgsProcessing.TypeVectorPoint])
  553. self.assertIsNone(param.defaultValue())
  554. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  555. desc = 'QgsProcessingParameterVectorLayer|in_vector|Input Vector|QgsProcessing.TypeVectorPoint'
  556. param = getParameterFromString(desc)
  557. self.assertIsNotNone(param)
  558. self.assertEqual(param.type(), 'vector')
  559. self.assertEqual(param.name(), 'in_vector')
  560. self.assertEqual(param.description(), 'Input Vector')
  561. self.assertListEqual(param.dataTypes(), [QgsProcessing.TypeVectorPoint])
  562. self.assertIsNone(param.defaultValue())
  563. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  564. desc = 'QgsProcessingParameterVectorLayer|in_vector|Input Vector|1'
  565. param = getParameterFromString(desc)
  566. self.assertIsNotNone(param)
  567. self.assertEqual(param.type(), 'vector')
  568. self.assertEqual(param.name(), 'in_vector')
  569. self.assertEqual(param.description(), 'Input Vector')
  570. self.assertListEqual(param.dataTypes(), [QgsProcessing.TypeVectorLine])
  571. self.assertIsNone(param.defaultValue())
  572. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  573. desc = 'QgsProcessingParameterVectorLayer|in_vector|Input Vector|QgsProcessing.TypeVectorLine'
  574. param = getParameterFromString(desc)
  575. self.assertIsNotNone(param)
  576. self.assertEqual(param.type(), 'vector')
  577. self.assertEqual(param.name(), 'in_vector')
  578. self.assertEqual(param.description(), 'Input Vector')
  579. self.assertListEqual(param.dataTypes(), [QgsProcessing.TypeVectorLine])
  580. self.assertIsNone(param.defaultValue())
  581. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  582. desc = 'QgsProcessingParameterVectorLayer|in_vector|Input Vector|2'
  583. param = getParameterFromString(desc)
  584. self.assertIsNotNone(param)
  585. self.assertEqual(param.type(), 'vector')
  586. self.assertEqual(param.name(), 'in_vector')
  587. self.assertEqual(param.description(), 'Input Vector')
  588. self.assertListEqual(param.dataTypes(), [QgsProcessing.TypeVectorPolygon])
  589. self.assertIsNone(param.defaultValue())
  590. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  591. desc = 'QgsProcessingParameterVectorLayer|in_vector|Input Vector|QgsProcessing.TypeVectorPolygon'
  592. param = getParameterFromString(desc)
  593. self.assertIsNotNone(param)
  594. self.assertEqual(param.type(), 'vector')
  595. self.assertEqual(param.name(), 'in_vector')
  596. self.assertEqual(param.description(), 'Input Vector')
  597. self.assertListEqual(param.dataTypes(), [QgsProcessing.TypeVectorPolygon])
  598. self.assertIsNone(param.defaultValue())
  599. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  600. desc = 'QgsProcessingParameterVectorLayer|in_vector|Input Vector|5'
  601. param = getParameterFromString(desc)
  602. self.assertIsNotNone(param)
  603. self.assertEqual(param.type(), 'vector')
  604. self.assertEqual(param.name(), 'in_vector')
  605. self.assertEqual(param.description(), 'Input Vector')
  606. self.assertListEqual(param.dataTypes(), [QgsProcessing.TypeVector])
  607. self.assertIsNone(param.defaultValue())
  608. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  609. desc = 'QgsProcessingParameterVectorLayer|in_vector|Input Vector|QgsProcessing.TypeVector'
  610. param = getParameterFromString(desc)
  611. self.assertIsNotNone(param)
  612. self.assertEqual(param.type(), 'vector')
  613. self.assertEqual(param.name(), 'in_vector')
  614. self.assertEqual(param.description(), 'Input Vector')
  615. self.assertListEqual(param.dataTypes(), [QgsProcessing.TypeVector])
  616. self.assertIsNone(param.defaultValue())
  617. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  618. desc = 'QgsProcessingParameterVectorLayer|in_vector|Input Vector|1;2'
  619. param = getParameterFromString(desc)
  620. self.assertIsNotNone(param)
  621. self.assertEqual(param.type(), 'vector')
  622. self.assertEqual(param.name(), 'in_vector')
  623. self.assertEqual(param.description(), 'Input Vector')
  624. self.assertListEqual(param.dataTypes(), [QgsProcessing.TypeVectorLine, QgsProcessing.TypeVectorPolygon])
  625. self.assertIsNone(param.defaultValue())
  626. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  627. desc = 'QgsProcessingParameterVectorLayer|in_vector|Input Vector|QgsProcessing.TypeVectorLine;QgsProcessing.TypeVectorPolygon'
  628. param = getParameterFromString(desc)
  629. self.assertIsNotNone(param)
  630. self.assertEqual(param.type(), 'vector')
  631. self.assertEqual(param.name(), 'in_vector')
  632. self.assertEqual(param.description(), 'Input Vector')
  633. self.assertListEqual(param.dataTypes(), [QgsProcessing.TypeVectorLine, QgsProcessing.TypeVectorPolygon])
  634. self.assertIsNone(param.defaultValue())
  635. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  636. desc = 'QgsProcessingParameterVectorLayer|in_vector|Input Vector|-1|None|True'
  637. param = getParameterFromString(desc)
  638. self.assertIsNotNone(param)
  639. self.assertEqual(param.type(), 'vector')
  640. self.assertEqual(param.name(), 'in_vector')
  641. self.assertEqual(param.description(), 'Input Vector')
  642. self.assertListEqual(param.dataTypes(), [QgsProcessing.TypeVectorAnyGeometry])
  643. self.assertIsNone(param.defaultValue())
  644. self.assertTrue(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  645. def testParameterRasterLayerDesc(self):
  646. desc = 'QgsProcessingParameterRasterLayer|in_raster|Input Raster'
  647. param = getParameterFromString(desc)
  648. self.assertIsNotNone(param)
  649. self.assertEqual(param.type(), 'raster')
  650. self.assertEqual(param.name(), 'in_raster')
  651. self.assertEqual(param.description(), 'Input Raster')
  652. self.assertIsNone(param.defaultValue())
  653. self.assertFalse(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  654. desc = 'QgsProcessingParameterRasterLayer|in_raster|Input Raster|None|True'
  655. param = getParameterFromString(desc)
  656. self.assertIsNotNone(param)
  657. self.assertEqual(param.type(), 'raster')
  658. self.assertEqual(param.name(), 'in_raster')
  659. self.assertEqual(param.description(), 'Input Raster')
  660. self.assertIsNone(param.defaultValue())
  661. self.assertTrue(param.flags() & QgsProcessingParameterDefinition.FlagOptional)
  662. if __name__ == '__main__':
  663. unittest.main()