|
8 | 8 | import numpy as np
|
9 | 9 | from numpy.testing.utils import (assert_array_equal, assert_approx_equal,
|
10 | 10 | assert_array_almost_equal)
|
11 |
| -from nose.tools import assert_equal, raises, assert_true |
| 11 | +from nose.tools import assert_equal, assert_not_equal, raises, assert_true |
12 | 12 |
|
13 | 13 | import matplotlib.cbook as cbook
|
14 | 14 | import matplotlib.colors as mcolors
|
@@ -243,3 +243,47 @@ def test_label_error(self):
|
243 | 243 | def test_bad_dims(self):
|
244 | 244 | data = np.random.normal(size=(34, 34, 34))
|
245 | 245 | results = cbook.boxplot_stats(data)
|
| 246 | + |
| 247 | + |
| 248 | +class Test_callback_registry(object): |
| 249 | + def setup(self): |
| 250 | + self.signal = 'test' |
| 251 | + self.callbacks = cbook.CallbackRegistry() |
| 252 | + |
| 253 | + def connect(self, s, func): |
| 254 | + return self.callbacks.connect(s, func) |
| 255 | + |
| 256 | + def is_empty(self): |
| 257 | + assert_equal(self.callbacks._func_cid_map, {}) |
| 258 | + assert_equal(self.callbacks.callbacks, {}) |
| 259 | + |
| 260 | + def is_not_empty(self): |
| 261 | + assert_not_equal(self.callbacks._func_cid_map, {}) |
| 262 | + assert_not_equal(self.callbacks.callbacks, {}) |
| 263 | + |
| 264 | + def test_callback_complete(self): |
| 265 | + # ensure we start with an empty registry |
| 266 | + self.is_empty() |
| 267 | + |
| 268 | + # create a class for testing |
| 269 | + mini_me = Test_callback_registry() |
| 270 | + |
| 271 | + # test that we can add a callback |
| 272 | + cid1 = self.connect(self.signal, mini_me.dummy) |
| 273 | + assert_equal(type(cid1), int) |
| 274 | + self.is_not_empty() |
| 275 | + |
| 276 | + # test that we don't add a second callback |
| 277 | + cid2 = self.connect(self.signal, mini_me.dummy) |
| 278 | + assert_equal(cid1, cid2) |
| 279 | + self.is_not_empty() |
| 280 | + assert_equal(len(self.callbacks._func_cid_map), 1) |
| 281 | + assert_equal(len(self.callbacks.callbacks), 1) |
| 282 | + |
| 283 | + del mini_me |
| 284 | + |
| 285 | + # check we now have no callbacks registered |
| 286 | + self.is_empty() |
| 287 | + |
| 288 | + def dummy(self): |
| 289 | + pass |
0 commit comments