@@ -196,6 +196,116 @@ def onSignal(signalName):
196196 self .assertEqual (emittedSignals , expectedOutput )
197197 emittedSignals = []
198198
199+ def testServiceSignalsConnectAndEmit5 (self ):
200+ # ignorable arguments
201+ emittedSignals : list [str ] = []
202+ expectedOutput = [
203+ "int-signal" ,
204+ "str-signal" ,
205+ "bool-signal" ,
206+ "boxed-signal" ,
207+ "complex-signal" ,
208+ ]
209+
210+ def onSignal (signalName ):
211+ emittedSignals .append (signalName )
212+
213+ service = self .ServiceWithSignals (
214+ on_int_signal = lambda : onSignal ("int-signal" ),
215+ on_str_signal = lambda : onSignal ("str-signal" ),
216+ on_bool_signal = lambda : onSignal ("bool-signal" ),
217+ on_boxed_signal = lambda : onSignal ("boxed-signal" ),
218+ on_complex_signal = lambda : onSignal ("complex-signal" ),
219+ )
220+
221+ service .emit ("int-signal" , 42 )
222+ service .emit ("str-signal" , "42" )
223+ service .emit ("bool-signal" , True )
224+ service .emit ("boxed-signal" , object )
225+ service .emit ("complex-signal" , 42 , "42" , True , object )
226+
227+ self .assertEqual (emittedSignals , expectedOutput )
228+ emittedSignals = []
229+
230+ def testServiceSignalsConnectAndEmit6 (self ):
231+ # ignorable arguments
232+ emittedSignals : list [str ] = []
233+ expectedOutput = [
234+ "int-signal" ,
235+ "str-signal" ,
236+ "bool-signal" ,
237+ "boxed-signal" ,
238+ "complex-signal" ,
239+ ]
240+
241+ def onSignal (signalName ):
242+ emittedSignals .append (signalName )
243+
244+ service = self .ServiceWithSignals (
245+ on_int_signal = lambda s : self .assertEqual (s , service )
246+ or onSignal ("int-signal" ),
247+ on_str_signal = lambda s : self .assertEqual (s , service )
248+ or onSignal ("str-signal" ),
249+ on_bool_signal = lambda s : self .assertEqual (s , service )
250+ or onSignal ("bool-signal" ),
251+ on_boxed_signal = lambda s : self .assertEqual (s , service )
252+ or onSignal ("boxed-signal" ),
253+ on_complex_signal = lambda s : self .assertEqual (s , service )
254+ or onSignal ("complex-signal" ),
255+ )
256+
257+ service .emit ("int-signal" , 42 )
258+ service .emit ("str-signal" , "42" )
259+ service .emit ("bool-signal" , True )
260+ service .emit ("boxed-signal" , object )
261+ service .emit ("complex-signal" , 42 , "42" , True , object )
262+
263+ self .assertEqual (emittedSignals , expectedOutput )
264+ emittedSignals = []
265+
266+ def testServiceSignalsConnectAndEmit7 (self ):
267+ # ignorable arguments
268+ emittedSignals : list [str ] = []
269+ expectedOutput = [
270+ "int-signal" ,
271+ "str-signal" ,
272+ "bool-signal" ,
273+ "boxed-signal" ,
274+ "complex-signal" ,
275+ ]
276+
277+ def onSignal (signalName ):
278+ emittedSignals .append (signalName )
279+
280+ service = self .ServiceWithSignals (
281+ on_int_signal = lambda s , i : self .assertEqual (i , 42 )
282+ or self .assertEqual (s , service )
283+ or onSignal ("int-signal" ),
284+ on_str_signal = lambda s , i : self .assertEqual (i , "42" )
285+ or self .assertEqual (s , service )
286+ or onSignal ("str-signal" ),
287+ on_bool_signal = lambda s , i : self .assertEqual (i , True )
288+ or self .assertEqual (s , service )
289+ or onSignal ("bool-signal" ),
290+ on_boxed_signal = lambda s , i : self .assertEqual (i , object )
291+ or self .assertEqual (s , service )
292+ or onSignal ("boxed-signal" ),
293+ on_complex_signal = lambda s , i1 , i2 , i3 , i4 : self .assertEqual (
294+ (i1 , i2 , i3 , i4 ), (42 , "42" , True , object )
295+ )
296+ or self .assertEqual (s , service )
297+ or onSignal ("complex-signal" ),
298+ )
299+
300+ service .emit ("int-signal" , 42 )
301+ service .emit ("str-signal" , "42" )
302+ service .emit ("bool-signal" , True )
303+ service .emit ("boxed-signal" , object )
304+ service .emit ("complex-signal" , 42 , "42" , True , object )
305+
306+ self .assertEqual (emittedSignals , expectedOutput )
307+ emittedSignals = []
308+
199309
200310if __name__ == "__main__" :
201311 unittest .main ()
0 commit comments