@@ -182,8 +182,11 @@ def setup(self):
182182 self .signal = 'test'
183183 self .callbacks = cbook .CallbackRegistry ()
184184
185- def connect (self , s , func ):
186- return self .callbacks .connect (s , func )
185+ def connect (self , s , func , pickle ):
186+ cid = self .callbacks .connect (s , func )
187+ if pickle :
188+ self .callbacks ._pickled_cids .add (cid )
189+ return cid
187190
188191 def disconnect (self , cid ):
189192 return self .callbacks .disconnect (cid )
@@ -197,25 +200,27 @@ def count(self):
197200 def is_empty (self ):
198201 assert self .callbacks ._func_cid_map == {}
199202 assert self .callbacks .callbacks == {}
203+ assert self .callbacks ._pickled_cids == set ()
200204
201205 def is_not_empty (self ):
202206 assert self .callbacks ._func_cid_map != {}
203207 assert self .callbacks .callbacks != {}
204208
205- def test_callback_complete (self ):
209+ @pytest .mark .parametrize ('pickle' , [True , False ])
210+ def test_callback_complete (self , pickle ):
206211 # ensure we start with an empty registry
207212 self .is_empty ()
208213
209214 # create a class for testing
210215 mini_me = Test_callback_registry ()
211216
212217 # test that we can add a callback
213- cid1 = self .connect (self .signal , mini_me .dummy )
218+ cid1 = self .connect (self .signal , mini_me .dummy , pickle )
214219 assert type (cid1 ) == int
215220 self .is_not_empty ()
216221
217222 # test that we don't add a second callback
218- cid2 = self .connect (self .signal , mini_me .dummy )
223+ cid2 = self .connect (self .signal , mini_me .dummy , pickle )
219224 assert cid1 == cid2
220225 self .is_not_empty ()
221226 assert len (self .callbacks ._func_cid_map ) == 1
@@ -226,15 +231,16 @@ def test_callback_complete(self):
226231 # check we now have no callbacks registered
227232 self .is_empty ()
228233
229- def test_callback_disconnect (self ):
234+ @pytest .mark .parametrize ('pickle' , [True , False ])
235+ def test_callback_disconnect (self , pickle ):
230236 # ensure we start with an empty registry
231237 self .is_empty ()
232238
233239 # create a class for testing
234240 mini_me = Test_callback_registry ()
235241
236242 # test that we can add a callback
237- cid1 = self .connect (self .signal , mini_me .dummy )
243+ cid1 = self .connect (self .signal , mini_me .dummy , pickle )
238244 assert type (cid1 ) == int
239245 self .is_not_empty ()
240246
@@ -243,15 +249,16 @@ def test_callback_disconnect(self):
243249 # check we now have no callbacks registered
244250 self .is_empty ()
245251
246- def test_callback_wrong_disconnect (self ):
252+ @pytest .mark .parametrize ('pickle' , [True , False ])
253+ def test_callback_wrong_disconnect (self , pickle ):
247254 # ensure we start with an empty registry
248255 self .is_empty ()
249256
250257 # create a class for testing
251258 mini_me = Test_callback_registry ()
252259
253260 # test that we can add a callback
254- cid1 = self .connect (self .signal , mini_me .dummy )
261+ cid1 = self .connect (self .signal , mini_me .dummy , pickle )
255262 assert type (cid1 ) == int
256263 self .is_not_empty ()
257264
@@ -260,21 +267,22 @@ def test_callback_wrong_disconnect(self):
260267 # check we still have callbacks registered
261268 self .is_not_empty ()
262269
263- def test_registration_on_non_empty_registry (self ):
270+ @pytest .mark .parametrize ('pickle' , [True , False ])
271+ def test_registration_on_non_empty_registry (self , pickle ):
264272 # ensure we start with an empty registry
265273 self .is_empty ()
266274
267275 # setup the registry with a callback
268276 mini_me = Test_callback_registry ()
269- self .connect (self .signal , mini_me .dummy )
277+ self .connect (self .signal , mini_me .dummy , pickle )
270278
271279 # Add another callback
272280 mini_me2 = Test_callback_registry ()
273- self .connect (self .signal , mini_me2 .dummy )
281+ self .connect (self .signal , mini_me2 .dummy , pickle )
274282
275283 # Remove and add the second callback
276284 mini_me2 = Test_callback_registry ()
277- self .connect (self .signal , mini_me2 .dummy )
285+ self .connect (self .signal , mini_me2 .dummy , pickle )
278286
279287 # We still have 2 references
280288 self .is_not_empty ()
0 commit comments