summaryrefslogtreecommitdiff
path: root/src/zope/interface/tests
diff options
context:
space:
mode:
Diffstat (limited to 'src/zope/interface/tests')
-rw-r--r--src/zope/interface/tests/test_registry.py32
1 files changed, 29 insertions, 3 deletions
diff --git a/src/zope/interface/tests/test_registry.py b/src/zope/interface/tests/test_registry.py
index 3e71aff..00aea76 100644
--- a/src/zope/interface/tests/test_registry.py
+++ b/src/zope/interface/tests/test_registry.py
@@ -577,7 +577,12 @@ class ComponentsTests(unittest.TestCase):
# zope.component.testing does this
comp.__init__('base')
+
+ # And let's go ahead and destroy the cache at random times too
+ from zope.interface.registry import _UtilityRegistrations
+ _UtilityRegistrations.clear_cache()
comp.registerUtility(_to_reg, ifoo, _name2, _info)
+ _UtilityRegistrations.clear_cache()
_monkey, _events = self._wrapEvents()
with _monkey:
@@ -2645,12 +2650,21 @@ class PersistentComponents(Components):
self.adapters = PersistentAdapterRegistry()
self.utilities = PersistentAdapterRegistry()
+class PersistentDictComponents(PersistentComponents, dict):
+ # Like Pyramid's Registry, we subclass Components and dict
+ pass
class TestPersistentComponents(unittest.TestCase):
+ def _makeOne(self):
+ return PersistentComponents('test')
+
+ def _check_equality_after_pickle(self, made):
+ pass
+
def test_pickles_empty(self):
import pickle
- comp = PersistentComponents('test')
+ comp = self._makeOne()
pickle.dumps(comp)
comp2 = pickle.loads(pickle.dumps(comp))
@@ -2658,7 +2672,7 @@ class TestPersistentComponents(unittest.TestCase):
def test_pickles_with_utility_registration(self):
import pickle
- comp = PersistentComponents('test')
+ comp = self._makeOne()
comp.registerUtility(
object(),
Interface)
@@ -2666,7 +2680,19 @@ class TestPersistentComponents(unittest.TestCase):
comp2 = pickle.loads(pickle.dumps(comp))
self.assertEqual(comp2.__name__, 'test')
- self.assertNotNone(comp2.getUtility(Interface))
+ self.assertIsNotNone(comp2.getUtility(Interface))
+ self._check_equality_after_pickle(comp2)
+
+class TestPersistentDictComponents(TestPersistentComponents):
+
+ def _makeOne(self):
+ comp = PersistentDictComponents('test')
+ comp['key'] = 42
+ return comp
+
+ def _check_equality_after_pickle(self, made):
+ self.assertIn('key', made)
+ self.assertEqual(made['key'], 42)
class _Monkey(object):