diff options
| author | Jason Madden <jamadden@gmail.com> | 2013-03-04 08:33:43 -0600 |
|---|---|---|
| committer | Jason Madden <jamadden@gmail.com> | 2013-03-04 08:33:43 -0600 |
| commit | 17922c1981ccab2faeea88ac430b64890f6dd3f7 (patch) | |
| tree | 3c479b4540f47120909d58bbc4c4433e93f10fd1 /src | |
| parent | 744faf96af436521388341fcafc95270ecdb51ed (diff) | |
| download | zope-component-17922c1981ccab2faeea88ac430b64890f6dd3f7.tar.gz | |
Reset the cached adapter_hooks at zope.testing.cleanup.cleanUp time (LP1100501).
Diffstat (limited to 'src')
| -rw-r--r-- | src/zope/component/hooks.py | 6 | ||||
| -rw-r--r-- | src/zope/component/tests/test_hooks.py | 10 |
2 files changed, 15 insertions, 1 deletions
diff --git a/src/zope/component/hooks.py b/src/zope/component/hooks.py index 32bb641..5f588c1 100644 --- a/src/zope/component/hooks.py +++ b/src/zope/component/hooks.py @@ -131,6 +131,12 @@ def resetHooks(): from zope.component import _api _api.adapter_hook.reset() _api.getSiteManager.reset() + # be sure the old adapter hook isn't cached, since + # it is derived from the SiteManager + try: + del siteinfo.adapter_hook + except AttributeError: + pass # Clear the site thread global clearSite = setSite diff --git a/src/zope/component/tests/test_hooks.py b/src/zope/component/tests/test_hooks.py index b52b1c7..54699da 100644 --- a/src/zope/component/tests/test_hooks.py +++ b/src/zope/component/tests/test_hooks.py @@ -293,6 +293,7 @@ class Test_resetHooks(unittest.TestCase): def test_it(self): import zope.component._api + from zope.component import hooks class _Hook(object): def __init__(self): self._reset = False @@ -303,9 +304,17 @@ class Test_resetHooks(unittest.TestCase): with _Monkey(zope.component._api, adapter_hook=adapter_hook, getSiteManager=getSiteManager): + # Access the adapter_hook of the site info to be + # sure it caches + getattr(hooks.siteinfo, 'adapter_hook') + self.assertTrue('adapter_hook' in hooks.siteinfo.__dict__) + self._callFUT() + self.assertTrue(adapter_hook._reset) self.assertTrue(getSiteManager._reset) + # adapter_hook cache also reset + self.assertFalse('adapter_hook' in hooks.siteinfo.__dict__) _SM = object() @@ -341,4 +350,3 @@ def test_suite(): unittest.makeSuite(Test_setHooks), unittest.makeSuite(Test_resetHooks), )) - |
