summaryrefslogtreecommitdiff
path: root/repoze/bfg/tests
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2008-07-12 22:39:52 +0000
committerChris McDonough <chrism@agendaless.com>2008-07-12 22:39:52 +0000
commit1115939b6d4e0367386e20100a53c97c811577ad (patch)
tree5c18b671abdafc60261d8c000bf3578daf3bb43d /repoze/bfg/tests
parent09415724ee0078416199f0045920f83ab798004d (diff)
downloadpyramid-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__.py1
-rw-r--r--repoze/bfg/tests/fixtureapp/configure.zcml14
-rw-r--r--repoze/bfg/tests/fixtureapp/models.py5
-rw-r--r--repoze/bfg/tests/fixtureapp/templates/fixture.pt6
-rw-r--r--repoze/bfg/tests/fixtureapp/views.py8
-rw-r--r--repoze/bfg/tests/test_router.py35
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 = ()