@@ -196,6 +196,116 @@ def onSignal(signalName):
196
196
self .assertEqual (emittedSignals , expectedOutput )
197
197
emittedSignals = []
198
198
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
+
199
309
200
310
if __name__ == "__main__" :
201
311
unittest .main ()
0 commit comments