diff options
| author | Chris McDonough <chrism@agendaless.com> | 2008-07-12 22:39:52 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2008-07-12 22:39:52 +0000 |
| commit | 1115939b6d4e0367386e20100a53c97c811577ad (patch) | |
| tree | 5c18b671abdafc60261d8c000bf3578daf3bb43d /repoze/bfg/tests | |
| parent | 09415724ee0078416199f0045920f83ab798004d (diff) | |
| download | pyramid-1115939b6d4e0367386e20100a53c97c811577ad.tar.gz pyramid-1115939b6d4e0367386e20100a53c97c811577ad.tar.bz2 pyramid-1115939b6d4e0367386e20100a53c97c811577ad.zip | |
Speculative: cause routers to accept an app_context (the zcml configuration context), so we can later enable an app-local component registry.
Diffstat (limited to 'repoze/bfg/tests')
| -rw-r--r-- | repoze/bfg/tests/fixtureapp/__init__.py | 1 | ||||
| -rw-r--r-- | repoze/bfg/tests/fixtureapp/configure.zcml | 14 | ||||
| -rw-r--r-- | repoze/bfg/tests/fixtureapp/models.py | 5 | ||||
| -rw-r--r-- | repoze/bfg/tests/fixtureapp/templates/fixture.pt | 6 | ||||
| -rw-r--r-- | repoze/bfg/tests/fixtureapp/views.py | 8 | ||||
| -rw-r--r-- | repoze/bfg/tests/test_router.py | 35 |
6 files changed, 64 insertions, 5 deletions
diff --git a/repoze/bfg/tests/fixtureapp/__init__.py b/repoze/bfg/tests/fixtureapp/__init__.py new file mode 100644 index 000000000..546616b2c --- /dev/null +++ b/repoze/bfg/tests/fixtureapp/__init__.py @@ -0,0 +1 @@ +# fixture application diff --git a/repoze/bfg/tests/fixtureapp/configure.zcml b/repoze/bfg/tests/fixtureapp/configure.zcml new file mode 100644 index 000000000..0e91afbc0 --- /dev/null +++ b/repoze/bfg/tests/fixtureapp/configure.zcml @@ -0,0 +1,14 @@ +<configure xmlns="http://namespaces.zope.org/zope" + xmlns:browser="http://namespaces.repoze.org/browser" + i18n_domain="repoze.bfg"> + + <include package="repoze.bfg" /> + + <browser:page + for=".models.IFixture" + class=".views.FixtureView" + template="templates/fixture.pt" + permission="repoze.view" + /> + +</configure> diff --git a/repoze/bfg/tests/fixtureapp/models.py b/repoze/bfg/tests/fixtureapp/models.py new file mode 100644 index 000000000..a57b06308 --- /dev/null +++ b/repoze/bfg/tests/fixtureapp/models.py @@ -0,0 +1,5 @@ +from zope.interface import Interface + +class IFixture(Interface): + pass + diff --git a/repoze/bfg/tests/fixtureapp/templates/fixture.pt b/repoze/bfg/tests/fixtureapp/templates/fixture.pt new file mode 100644 index 000000000..06dd4e2b1 --- /dev/null +++ b/repoze/bfg/tests/fixtureapp/templates/fixture.pt @@ -0,0 +1,6 @@ +<html xmlns="http://www.w3.org/1999/xhtml" + xmlns:tal="http://xml.zope.org/namespaces/tal"> +<head></head> +<body> +</body> +</html> diff --git a/repoze/bfg/tests/fixtureapp/views.py b/repoze/bfg/tests/fixtureapp/views.py new file mode 100644 index 000000000..b9b9fc7d9 --- /dev/null +++ b/repoze/bfg/tests/fixtureapp/views.py @@ -0,0 +1,8 @@ +class FixtureView(object): + def __init__(self, context, request): + self.context = context + self.request = request + + def __call__(self): + pass + diff --git a/repoze/bfg/tests/test_router.py b/repoze/bfg/tests/test_router.py index ae0d1f5bf..d4fd159da 100644 --- a/repoze/bfg/tests/test_router.py +++ b/repoze/bfg/tests/test_router.py @@ -51,7 +51,8 @@ class RouterTests(unittest.TestCase, PlacelessSetup): context = DummyContext() traversalfactory = make_traversal_factory(context, '', []) self._registerTraverserFactory(traversalfactory, '', None, None) - router = self._makeOne(rootpolicy) + app_context = make_appcontext() + router = self._makeOne(rootpolicy, app_context) start_response = DummyStartResponse() result = router(environ, start_response) headers = start_response.headers @@ -71,7 +72,8 @@ class RouterTests(unittest.TestCase, PlacelessSetup): self._registerTraverserFactory(traversalfactory, '', None, None) self._registerViewFactory(viewfactory, '', None, None) self._registerWSGIFactory(wsgifactory, '', None, None, None) - router = self._makeOne(rootpolicy) + app_context = make_appcontext() + router = self._makeOne(rootpolicy, app_context) start_response = DummyStartResponse() result = router(environ, start_response) self.assertEqual(result, ['Hello world']) @@ -92,7 +94,8 @@ class RouterTests(unittest.TestCase, PlacelessSetup): self._registerTraverserFactory(traversalfactory, '', None, None) self._registerViewFactory(viewfactory, 'foo', None, None) self._registerWSGIFactory(wsgifactory, '', None, None, None) - router = self._makeOne(rootpolicy) + app_context = make_appcontext() + router = self._makeOne(rootpolicy, app_context) start_response = DummyStartResponse() result = router(environ, start_response) self.assertEqual(result, ['Hello world']) @@ -119,7 +122,8 @@ class RouterTests(unittest.TestCase, PlacelessSetup): self._registerTraverserFactory(traversalfactory, '', None, None) self._registerViewFactory(viewfactory, '', IContext, IRequest) self._registerWSGIFactory(wsgifactory, '', None, None, None) - router = self._makeOne(rootpolicy) + app_context = make_appcontext() + router = self._makeOne(rootpolicy, app_context) start_response = DummyStartResponse() result = router(environ, start_response) self.assertEqual(result, ['Hello world']) @@ -148,12 +152,26 @@ class RouterTests(unittest.TestCase, PlacelessSetup): self._registerTraverserFactory(traversalfactory, '', None, None) self._registerViewFactory(viewfactory, '', IContext, IRequest) self._registerWSGIFactory(wsgifactory, '', None, None, None) - router = self._makeOne(rootpolicy) + app_context = make_appcontext() + router = self._makeOne(rootpolicy, app_context) start_response = DummyStartResponse() result = router(environ, start_response) self.failUnless('404' in result[0]) self.assertEqual(start_response.status, '404 Not Found') +class MakeAppTests(unittest.TestCase, PlacelessSetup): + def _getFUT(self): + from repoze.bfg.router import make_app + return make_app + + def test_sampleapp(self): + from repoze.bfg.tests import fixtureapp + make_app = self._getFUT() + rootpolicy = make_rootpolicy(None) + app = make_app(rootpolicy, fixtureapp) + self.assertEqual(app.app_context.package, fixtureapp) + self.assertEqual(app.root_policy, rootpolicy) + class DummyContext: pass @@ -198,6 +216,13 @@ def make_rootpolicy(root): return root return rootpolicy +def make_appcontext(): + from zope.configuration.interfaces import IConfigurationContext + from zope.interface import directlyProvides + app_context = DummyContext() + directlyProvides(app_context, IConfigurationContext) + return app_context + class DummyStartResponse: status = () headers = () |
