summaryrefslogtreecommitdiff
path: root/repoze/bfg/tests
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-01-12 00:30:12 +0000
committerChris McDonough <chrism@agendaless.com>2009-01-12 00:30:12 +0000
commitec2941b96a8f961438f9a341c936dfa660439a95 (patch)
tree648aa834b6c661a93a0947f6968024e89fd1c9fd /repoze/bfg/tests
parent74f67dcdc4c672b3e85d674c5eaebb8d435564a3 (diff)
downloadpyramid-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.py27
-rw-r--r--repoze/bfg/tests/test_router.py13
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