diff options
Diffstat (limited to 'src/zope/interface/tests')
| -rw-r--r-- | src/zope/interface/tests/test_registry.py | 32 |
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): |
