diff options
| author | Chris McDonough <chrism@agendaless.com> | 2009-01-12 00:30:12 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2009-01-12 00:30:12 +0000 |
| commit | ec2941b96a8f961438f9a341c936dfa660439a95 (patch) | |
| tree | 648aa834b6c661a93a0947f6968024e89fd1c9fd /repoze/bfg/tests | |
| parent | 74f67dcdc4c672b3e85d674c5eaebb8d435564a3 (diff) | |
| download | pyramid-ec2941b96a8f961438f9a341c936dfa660439a95.tar.gz pyramid-ec2941b96a8f961438f9a341c936dfa660439a95.tar.bz2 pyramid-ec2941b96a8f961438f9a341c936dfa660439a95.zip | |
- Make the (internal) thread local registry manager maintain a stack
of registries in order to make it possible to call one BFG
application from inside another.
Diffstat (limited to 'repoze/bfg/tests')
| -rw-r--r-- | repoze/bfg/tests/test_registry.py | 27 | ||||
| -rw-r--r-- | repoze/bfg/tests/test_router.py | 13 |
2 files changed, 27 insertions, 13 deletions
diff --git a/repoze/bfg/tests/test_registry.py b/repoze/bfg/tests/test_registry.py index 0d051c131..51883b196 100644 --- a/repoze/bfg/tests/test_registry.py +++ b/repoze/bfg/tests/test_registry.py @@ -49,16 +49,28 @@ class TestThreadLocalRegistryManager(unittest.TestCase, PlacelessSetup): def test_init(self): local = self._makeOne() from zope.component import getGlobalSiteManager - self.assertEqual(local.registry, getGlobalSiteManager()) + self.assertEqual(local.stack, []) + self.assertEqual(local.get(), getGlobalSiteManager()) + + def test_push_and_pop(self): + local = self._makeOne() + from zope.component import getGlobalSiteManager + local.push(True) + self.assertEqual(local.get(), True) + self.assertEqual(local.pop(), True) + self.assertEqual(local.pop(), None) + self.assertEqual(local.get(), getGlobalSiteManager()) def test_set_get_and_clear(self): local = self._makeOne() from zope.component import getGlobalSiteManager local.set(None) - self.failIfEqual(local.registry, getGlobalSiteManager()) + self.assertEqual(local.stack, [None]) self.assertEqual(local.get(), None) local.clear() - self.assertEqual(local.registry, getGlobalSiteManager()) + self.assertEqual(local.get(), getGlobalSiteManager()) + local.clear() + self.assertEqual(local.get(), getGlobalSiteManager()) class GetSiteManagerTests(unittest.TestCase): def _getFUT(self): @@ -76,16 +88,15 @@ class GetSiteManagerTests(unittest.TestCase): self.assertRaises(ComponentLookupError, gsm, object) class DummyRegistrationManager: - registry = None - def set(self, registry): + def push(self, registry): self.registry = registry + def pop(self): + self.popped = True + def get(self): return self.registry - def clear(self): - self.cleared = True - class DummyLock: def acquire(self): self.acquired = True diff --git a/repoze/bfg/tests/test_router.py b/repoze/bfg/tests/test_router.py index 3f52bd9cd..35ab21f9c 100644 --- a/repoze/bfg/tests/test_router.py +++ b/repoze/bfg/tests/test_router.py @@ -483,7 +483,8 @@ class MakeAppTests(unittest.TestCase, PlacelessSetup): 'debug_authorization':True} import repoze.bfg.router old_registry_manager = repoze.bfg.router.registry_manager - repoze.bfg.router.registry_manager = DummyRegistryManager() + dummy_registry_manager = DummyRegistryManager() + repoze.bfg.router.registry_manager = dummy_registry_manager try: from repoze.bfg.tests import fixtureapp rootpolicy = make_rootfactory(None) @@ -498,15 +499,17 @@ class MakeAppTests(unittest.TestCase, PlacelessSetup): self.assertEqual(settings.reload_templates, True) self.assertEqual(settings.debug_authorization, True) self.assertEqual(rootfactory, rootpolicy) + self.assertEqual(dummy_registry_manager.pushed, True) + self.assertEqual(dummy_registry_manager.popped, True) finally: repoze.bfg.router.registry_manager = old_registry_manager class DummyRegistryManager: - def set(self, registry): - pass + def push(self, registry): + self.pushed = True - def clear(self): - pass + def pop(self): + self.popped = True class DummyContext: pass |
