diff options
author | ?ukasz Langa <lukasz@langa.pl> | 2013-05-31 12:48:16 +0200 |
---|---|---|
committer | ?ukasz Langa <lukasz@langa.pl> | 2013-05-31 12:48:16 +0200 |
commit | 070c478c0c768a1cf94a0964c594a03a4e520f8d (patch) | |
tree | cfaaf52e8908f37cd7ed82c064ad16de7bc2ee6e /test_singledispatch.py | |
parent | 166a442bd7fc983ecb5cb49aa68dce2a17855d1b (diff) | |
download | singledispatch-070c478c0c768a1cf94a0964c594a03a4e520f8d.tar.gz |
update to the ref implementation as of 31-May-2013
* calls to `dispatch()` also cached
* dispatching algorithm now now a module-level routine called `_find_impl()`
with a simplified implementation and proper documentation
* `dispatch()` now handles all caching-related activities
* terminology more consisntent: "overload" -> "implementation"
Diffstat (limited to 'test_singledispatch.py')
-rw-r--r-- | test_singledispatch.py | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/test_singledispatch.py b/test_singledispatch.py index 0234de3..3f243a9 100644 --- a/test_singledispatch.py +++ b/test_singledispatch.py @@ -307,12 +307,14 @@ class TestSingleDispatch(unittest.TestCase): self.assertEqual(len(td), 1) self.assertEqual(td.get_ops, [list, dict]) self.assertEqual(td.set_ops, [dict, list, dict]) - self.assertEqual(td.data[dict], g.dispatch(dict)) + self.assertEqual(td.data[dict], + functools._find_impl(dict, g.registry)) self.assertEqual(g(l), "list") self.assertEqual(len(td), 2) self.assertEqual(td.get_ops, [list, dict]) self.assertEqual(td.set_ops, [dict, list, dict, list]) - self.assertEqual(td.data[list], g.dispatch(list)) + self.assertEqual(td.data[list], + functools._find_impl(list, g.registry)) class X: pass c.MutableMapping.register(X) # Will not invalidate the cache, @@ -335,6 +337,11 @@ class TestSingleDispatch(unittest.TestCase): self.assertEqual(g(d), "sized") self.assertEqual(td.get_ops, [list, dict, dict, list, list, dict]) self.assertEqual(td.set_ops, [dict, list, dict, list, dict, list]) + g.dispatch(list) + g.dispatch(dict) + self.assertEqual(td.get_ops, [list, dict, dict, list, list, dict, + list, dict]) + self.assertEqual(td.set_ops, [dict, list, dict, list, dict, list]) c.MutableSet.register(X) # Will invalidate the cache. self.assertEqual(len(td), 2) # Stale cache. self.assertEqual(g(l), "list") @@ -348,6 +355,8 @@ class TestSingleDispatch(unittest.TestCase): g.register(dict, lambda arg: "dict") self.assertEqual(g(d), "dict") self.assertEqual(g(l), "list") + g._clear_cache() + self.assertEqual(len(td), 0) functools.WeakKeyDictionary = _orig_wkd |