Skip to content

Commit a3ebc7b

Browse files
committed
[processing] add test for ParameterSelection
1 parent 8f7183b commit a3ebc7b

File tree

1 file changed

+50
-2
lines changed

1 file changed

+50
-2
lines changed

python/plugins/processing/tests/ParametersTest.py

Lines changed: 50 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@
3939
ParameterPoint,
4040
ParameterString,
4141
ParameterVector,
42-
ParameterTableField)
42+
ParameterTableField,
43+
ParameterSelection)
4344
from processing.tools import dataobjects
4445
from processing.tests.TestData import points2
4546

@@ -178,7 +179,7 @@ def testOptional(self):
178179
optionalParameter.setValue('1,2')
179180
self.assertEqual(optionalParameter.value, '1,2')
180181
self.assertTrue(optionalParameter.setValue(None))
181-
# Extent is unique in that it will let you set `None`, whereas other
182+
# Point like Extent is unique in that it will let you set `None`, whereas other
182183
# optional parameters become "default" when assigning None.
183184
self.assertEqual(optionalParameter.value, None)
184185

@@ -190,6 +191,53 @@ def testOptional(self):
190191
self.assertEqual(requiredParameter.value, '1,2')
191192

192193

194+
class ParameterSelectionTest(unittest.TestCase):
195+
196+
def testSetValue(self):
197+
parameter = ParameterSelection('myName', 'myDesc', ['option1', 'option2', 'option3'])
198+
self.assertIsNone(parameter.value)
199+
self.assertEqual(parameter.setValue(1), True)
200+
self.assertEqual(parameter.value, 1)
201+
self.assertEqual(parameter.setValue('1'), True)
202+
self.assertEqual(parameter.value, 1)
203+
self.assertEqual(parameter.setValue(1.0), True)
204+
self.assertEqual(parameter.value, 1)
205+
self.assertEqual(parameter.setValue('1a'), False)
206+
self.assertEqual(parameter.setValue([1]), False)
207+
208+
def testMultiple(self):
209+
parameter = ParameterSelection('myName', 'myDesc', ['option1', 'option2', 'option3'], multiple=True)
210+
self.assertEqual(parameter.setValue(1), True)
211+
self.assertEqual(parameter.value, 1)
212+
self.assertEqual(parameter.setValue([0, 1]), True)
213+
self.assertEqual(parameter.value, [0, 1])
214+
self.assertEqual(parameter.setValue(['0', '1']), True)
215+
self.assertEqual(parameter.value, [0, 1])
216+
217+
def testDefault(self):
218+
parameter = ParameterSelection('myName', 'myDesc', ['option1', 'option2', 'option3'], default=0)
219+
self.assertEqual(parameter.value, 0)
220+
parameter = ParameterSelection('myName', 'myDesc', ['option1', 'option2', 'option3'], default=0.0)
221+
self.assertEqual(parameter.value, 0)
222+
parameter = ParameterSelection('myName', 'myDesc', ['option1', 'option2', 'option3'], default='a')
223+
self.assertEqual(parameter.value, 0)
224+
225+
def testOptional(self):
226+
optionalParameter = ParameterSelection('myName', 'myDesc', ['option1', 'option2', 'option3'], default=0, optional=True)
227+
self.assertEqual(optionalParameter.value, 0)
228+
optionalParameter.setValue(1)
229+
self.assertEqual(optionalParameter.value, 1)
230+
self.assertTrue(optionalParameter.setValue(None))
231+
self.assertEqual(optionalParameter.value, 0)
232+
233+
requiredParameter = ParameterSelection('myName', 'myDesc', ['option1', 'option2', 'option3'], default=0, optional=False)
234+
self.assertEqual(requiredParameter.value, 0)
235+
requiredParameter.setValue(1)
236+
self.assertEqual(requiredParameter.value, 1)
237+
self.assertFalse(requiredParameter.setValue(None))
238+
self.assertEqual(requiredParameter.value, 1)
239+
240+
193241
class ParameterFileTest(unittest.TestCase):
194242

195243
def testSetValue(self):

0 commit comments

Comments
 (0)