3939 ParameterPoint ,
4040 ParameterString ,
4141 ParameterVector ,
42- ParameterTableField )
42+ ParameterTableField ,
43+ ParameterSelection )
4344from processing .tools import dataobjects
4445from 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+
193241class ParameterFileTest (unittest .TestCase ):
194242
195243 def testSetValue (self ):
0 commit comments