Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 3204907

Browse files
committed
TST: cleanup of pickled cids
1 parent eed6906 commit 3204907

File tree

1 file changed

+21
-13
lines changed

1 file changed

+21
-13
lines changed

lib/matplotlib/tests/test_cbook.py

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)