diff options
Diffstat (limited to 'docs/tutorials/bfgwiki/src')
12 files changed, 78 insertions, 200 deletions
diff --git a/docs/tutorials/bfgwiki/src/authorization/tutorial/login.py b/docs/tutorials/bfgwiki/src/authorization/tutorial/login.py index 70697ec2e..d9d65bdca 100644 --- a/docs/tutorials/bfgwiki/src/authorization/tutorial/login.py +++ b/docs/tutorials/bfgwiki/src/authorization/tutorial/login.py @@ -1,6 +1,5 @@ from webob.exc import HTTPFound -from repoze.bfg.chameleon_zpt import render_template_to_response from repoze.bfg.view import bfg_view from repoze.bfg.url import model_url @@ -10,7 +9,7 @@ from repoze.bfg.security import forget from tutorial.models import Wiki from tutorial.security import USERS -@bfg_view(for_=Wiki, name='login') +@bfg_view(for_=Wiki, name='login', renderer='templates/login.pt') def login(context, request): login_url = model_url(context, request, 'login') referrer = request.url @@ -29,14 +28,12 @@ def login(context, request): headers = headers) message = 'Failed login' - return render_template_to_response( - 'templates/login.pt', + return dict( message = message, url = request.application_url + '/login', came_from = came_from, login = login, password = password, - request =request, ) @bfg_view(for_=Wiki, name='logout') diff --git a/docs/tutorials/bfgwiki/src/authorization/tutorial/tests.py b/docs/tutorials/bfgwiki/src/authorization/tutorial/tests.py index 84a3a0f37..cd29d6ff4 100644 --- a/docs/tutorials/bfgwiki/src/authorization/tutorial/tests.py +++ b/docs/tutorials/bfgwiki/src/authorization/tutorial/tests.py @@ -72,18 +72,17 @@ class ViewPageTests(unittest.TestCase): context.__parent__ = wiki context.__name__ = 'thepage' request = testing.DummyRequest() - renderer = testing.registerDummyRenderer('templates/view.pt') - response = self._callFUT(context, request) - self.assertEqual(renderer.request, request) + info = self._callFUT(context, request) + self.assertEqual(info['page'], context) self.assertEqual( - renderer.content, + info['content'], '<div class="document">\n' '<p>Hello <a href="http://example.com/add_page/CruelWorld">' 'CruelWorld</a> ' '<a href="http://example.com/IDoExist/">' 'IDoExist</a>' '</p>\n</div>\n') - self.assertEqual(renderer.edit_url, + self.assertEqual(info['edit_url'], 'http://example.com/thepage/edit_page') @@ -99,13 +98,14 @@ class AddPageTests(unittest.TestCase): return add_page(context, request) def test_it_notsubmitted(self): + from repoze.bfg.url import model_url context = testing.DummyModel() request = testing.DummyRequest() request.subpath = ['AnotherPage'] - renderer = testing.registerDummyRenderer('templates/edit.pt') - response = self._callFUT(context, request) - self.assertEqual(renderer.request, request) - self.assertEqual(renderer.page.data, '') + info = self._callFUT(context, request) + self.assertEqual(info['page'].data,'') + self.assertEqual(info['save_url'], + model_url(context, request, 'add_page', 'AnotherPage')) def test_it_submitted(self): context = testing.DummyModel() @@ -130,12 +130,13 @@ class EditPageTests(unittest.TestCase): return edit_page(context, request) def test_it_notsubmitted(self): + from repoze.bfg.url import model_url context = testing.DummyModel() request = testing.DummyRequest() - renderer = testing.registerDummyRenderer('templates/edit.pt') - response = self._callFUT(context, request) - self.assertEqual(renderer.request, request) - self.assertEqual(renderer.page, context) + info = self._callFUT(context, request) + self.assertEqual(info['page'], context) + self.assertEqual(info['save_url'], + model_url(context, request, 'edit_page')) def test_it_submitted(self): context = testing.DummyModel() @@ -145,6 +146,3 @@ class EditPageTests(unittest.TestCase): response = self._callFUT(context, request) self.assertEqual(response.location, 'http://example.com/') self.assertEqual(context.data, 'Hello yo!') - - - diff --git a/docs/tutorials/bfgwiki/src/authorization/tutorial/views.py b/docs/tutorials/bfgwiki/src/authorization/tutorial/views.py index beb52e1b7..26a44fcda 100644 --- a/docs/tutorials/bfgwiki/src/authorization/tutorial/views.py +++ b/docs/tutorials/bfgwiki/src/authorization/tutorial/views.py @@ -3,7 +3,6 @@ import re from webob.exc import HTTPFound from repoze.bfg.url import model_url -from repoze.bfg.chameleon_zpt import render_template_to_response from repoze.bfg.security import authenticated_userid @@ -19,7 +18,7 @@ wikiwords = re.compile(r"\b([A-Z]\w+[A-Z]+\w+)") def view_wiki(context, request): return HTTPFound(location = model_url(context, request, 'FrontPage')) -@bfg_view(for_=Page, permission='view') +@bfg_view(for_=Page, renderer='templates/view.pt', permission='view') def view_page(context, request): wiki = context.__parent__ @@ -39,14 +38,11 @@ def view_page(context, request): logged_in = authenticated_userid(request) - return render_template_to_response('templates/view.pt', - request = request, - page = context, - content = content, - logged_in = logged_in, - edit_url = edit_url) + return dict(page = context, content = content, edit_url = edit_url, + logged_in = logged_in) -@bfg_view(for_=Wiki, name='add_page', permission='edit') +@bfg_view(for_=Wiki, name='add_page', renderer='templates/edit.pt', + permission='edit') def add_page(context, request): name = request.subpath[0] if 'form.submitted' in request.params: @@ -63,13 +59,10 @@ def add_page(context, request): logged_in = authenticated_userid(request) - return render_template_to_response('templates/edit.pt', - request = request, - page = page, - logged_in = logged_in, - save_url = save_url) + return dict(page = page, save_url = save_url, logged_in = logged_in) -@bfg_view(for_=Page, name='edit_page', permission='edit') +@bfg_view(for_=Page, name='edit_page', renderer='templates/edit.pt', + permission='edit') def edit_page(context, request): if 'form.submitted' in request.params: context.data = request.params['body'] @@ -77,11 +70,7 @@ def edit_page(context, request): logged_in = authenticated_userid(request) - return render_template_to_response('templates/edit.pt', - request = request, - page = context, - logged_in = logged_in, - save_url = model_url(context, request, - 'edit_page') - ) - + return dict(page = context, + save_url = model_url(context, request, 'edit_page'), + logged_in = logged_in) + diff --git a/docs/tutorials/bfgwiki/src/basiclayout/tutorial/configure.zcml b/docs/tutorials/bfgwiki/src/basiclayout/tutorial/configure.zcml index f990298c5..e15d3a65d 100644 --- a/docs/tutorials/bfgwiki/src/basiclayout/tutorial/configure.zcml +++ b/docs/tutorials/bfgwiki/src/basiclayout/tutorial/configure.zcml @@ -6,6 +6,7 @@ <view for=".models.MyModel" view=".views.my_view" + renderer="templates/mytemplate.pt" /> <static diff --git a/docs/tutorials/bfgwiki/src/basiclayout/tutorial/tests.py b/docs/tutorials/bfgwiki/src/basiclayout/tutorial/tests.py index 408645fcb..f8c0ceb20 100644 --- a/docs/tutorials/bfgwiki/src/basiclayout/tutorial/tests.py +++ b/docs/tutorials/bfgwiki/src/basiclayout/tutorial/tests.py @@ -3,71 +3,9 @@ import unittest from repoze.bfg import testing class ViewTests(unittest.TestCase): - - """ These tests are unit tests for the view. They test the - functionality of *only* the view. They register and use dummy - implementations of repoze.bfg functionality to allow you to avoid - testing 'too much'""" - - def setUp(self): - """ cleanUp() is required to clear out the application registry - between tests (done in setUp for good measure too) - """ - testing.cleanUp() - - def tearDown(self): - """ cleanUp() is required to clear out the application registry - between tests - """ - testing.cleanUp() - def test_my_view(self): from tutorial.views import my_view context = testing.DummyModel() request = testing.DummyRequest() - renderer = testing.registerDummyRenderer('templates/mytemplate.pt') - response = my_view(context, request) - renderer.assert_(project='tutorial') - -class ViewIntegrationTests(unittest.TestCase): - """ These tests are integration tests for the view. These test - the functionality the view *and* its integration with the rest of - the repoze.bfg framework. They cause the entire environment to be - set up and torn down as if your application was running 'for - real'. This is a heavy-hammer way of making sure that your tests - have enough context to run properly, and it tests your view's - integration with the rest of BFG. You should not use this style - of test to perform 'true' unit testing as tests will run faster - and will be easier to write if you use the testing facilities - provided by bfg and only the registrations you need, as in the - above ViewTests. - """ - def setUp(self): - """ This sets up the application registry with the - registrations your application declares in its configure.zcml - (including dependent registrations for repoze.bfg itself). - """ - testing.cleanUp() - import tutorial - import zope.configuration.xmlconfig - zope.configuration.xmlconfig.file('configure.zcml', - package=tutorial) - - def tearDown(self): - """ Clear out the application registry """ - testing.cleanUp() - - def test_my_view(self): - from tutorial.views import my_view - context = testing.DummyModel() - request = testing.DummyRequest() - result = my_view(context, request) - self.assertEqual(result.status, '200 OK') - body = result.app_iter[0] - self.failUnless('Welcome to' in body) - self.assertEqual(len(result.headerlist), 2) - self.assertEqual(result.headerlist[0], - ('Content-Type', 'text/html; charset=UTF-8')) - self.assertEqual(result.headerlist[1], ('Content-Length', - str(len(body)))) - + info = my_view(context, request) + self.assertEqual(info['project'], 'tutorial') diff --git a/docs/tutorials/bfgwiki/src/basiclayout/tutorial/views.py b/docs/tutorials/bfgwiki/src/basiclayout/tutorial/views.py index 923c1fffa..9a2c37bc3 100644 --- a/docs/tutorials/bfgwiki/src/basiclayout/tutorial/views.py +++ b/docs/tutorials/bfgwiki/src/basiclayout/tutorial/views.py @@ -1,6 +1,2 @@ -from repoze.bfg.chameleon_zpt import render_template_to_response - def my_view(context, request): - return render_template_to_response('templates/mytemplate.pt', - request = request, - project = 'tutorial') + return {'project':'tutorial'} diff --git a/docs/tutorials/bfgwiki/src/models/tutorial/tests.py b/docs/tutorials/bfgwiki/src/models/tutorial/tests.py index f367b7da0..1b540a60c 100644 --- a/docs/tutorials/bfgwiki/src/models/tutorial/tests.py +++ b/docs/tutorials/bfgwiki/src/models/tutorial/tests.py @@ -48,28 +48,9 @@ class AppmakerTests(unittest.TestCase): self.failUnless(root['app_root'] is app_root) class ViewTests(unittest.TestCase): - - """ These tests are unit tests for the view. They test the - functionality of *only* the view. They register and use dummy - implementations of repoze.bfg functionality to allow you to avoid - testing 'too much'""" - - def setUp(self): - """ cleanUp() is required to clear out the application registry - between tests (done in setUp for good measure too) - """ - testing.cleanUp() - - def tearDown(self): - """ cleanUp() is required to clear out the application registry - between tests - """ - testing.cleanUp() - def test_my_view(self): from tutorial.views import my_view context = testing.DummyModel() request = testing.DummyRequest() - renderer = testing.registerDummyRenderer('templates/mytemplate.pt') - response = my_view(context, request) - renderer.assert_(project='tutorial') + info = my_view(context, request) + self.assertEqual(info['project'], 'tutorial') diff --git a/docs/tutorials/bfgwiki/src/viewdecorators/tutorial/tests.py b/docs/tutorials/bfgwiki/src/viewdecorators/tutorial/tests.py index 84a3a0f37..cd29d6ff4 100644 --- a/docs/tutorials/bfgwiki/src/viewdecorators/tutorial/tests.py +++ b/docs/tutorials/bfgwiki/src/viewdecorators/tutorial/tests.py @@ -72,18 +72,17 @@ class ViewPageTests(unittest.TestCase): context.__parent__ = wiki context.__name__ = 'thepage' request = testing.DummyRequest() - renderer = testing.registerDummyRenderer('templates/view.pt') - response = self._callFUT(context, request) - self.assertEqual(renderer.request, request) + info = self._callFUT(context, request) + self.assertEqual(info['page'], context) self.assertEqual( - renderer.content, + info['content'], '<div class="document">\n' '<p>Hello <a href="http://example.com/add_page/CruelWorld">' 'CruelWorld</a> ' '<a href="http://example.com/IDoExist/">' 'IDoExist</a>' '</p>\n</div>\n') - self.assertEqual(renderer.edit_url, + self.assertEqual(info['edit_url'], 'http://example.com/thepage/edit_page') @@ -99,13 +98,14 @@ class AddPageTests(unittest.TestCase): return add_page(context, request) def test_it_notsubmitted(self): + from repoze.bfg.url import model_url context = testing.DummyModel() request = testing.DummyRequest() request.subpath = ['AnotherPage'] - renderer = testing.registerDummyRenderer('templates/edit.pt') - response = self._callFUT(context, request) - self.assertEqual(renderer.request, request) - self.assertEqual(renderer.page.data, '') + info = self._callFUT(context, request) + self.assertEqual(info['page'].data,'') + self.assertEqual(info['save_url'], + model_url(context, request, 'add_page', 'AnotherPage')) def test_it_submitted(self): context = testing.DummyModel() @@ -130,12 +130,13 @@ class EditPageTests(unittest.TestCase): return edit_page(context, request) def test_it_notsubmitted(self): + from repoze.bfg.url import model_url context = testing.DummyModel() request = testing.DummyRequest() - renderer = testing.registerDummyRenderer('templates/edit.pt') - response = self._callFUT(context, request) - self.assertEqual(renderer.request, request) - self.assertEqual(renderer.page, context) + info = self._callFUT(context, request) + self.assertEqual(info['page'], context) + self.assertEqual(info['save_url'], + model_url(context, request, 'edit_page')) def test_it_submitted(self): context = testing.DummyModel() @@ -145,6 +146,3 @@ class EditPageTests(unittest.TestCase): response = self._callFUT(context, request) self.assertEqual(response.location, 'http://example.com/') self.assertEqual(context.data, 'Hello yo!') - - - diff --git a/docs/tutorials/bfgwiki/src/viewdecorators/tutorial/views.py b/docs/tutorials/bfgwiki/src/viewdecorators/tutorial/views.py index 0725ffe28..a5d8f6b6a 100644 --- a/docs/tutorials/bfgwiki/src/viewdecorators/tutorial/views.py +++ b/docs/tutorials/bfgwiki/src/viewdecorators/tutorial/views.py @@ -3,7 +3,6 @@ import re from webob.exc import HTTPFound from repoze.bfg.url import model_url -from repoze.bfg.chameleon_zpt import render_template_to_response from repoze.bfg.view import bfg_view from tutorial.models import Page @@ -16,7 +15,7 @@ wikiwords = re.compile(r"\b([A-Z]\w+[A-Z]+\w+)") def view_wiki(context, request): return HTTPFound(location = model_url(context, request, 'FrontPage')) -@bfg_view(for_=Page) +@bfg_view(for_=Page, renderer='templates/view.pt') def view_page(context, request): wiki = context.__parent__ @@ -33,13 +32,9 @@ def view_page(context, request): content = publish_parts(context.data, writer_name='html')['html_body'] content = wikiwords.sub(check, content) edit_url = model_url(context, request, 'edit_page') - return render_template_to_response('templates/view.pt', - request = request, - page = context, - content = content, - edit_url = edit_url) - -@bfg_view(for_=Wiki, name='add_page') + return dict(page = context, content = content, edit_url = edit_url) + +@bfg_view(for_=Wiki, name='add_page', renderer='templates/edit.pt') def add_page(context, request): name = request.subpath[0] if 'form.submitted' in request.params: @@ -53,22 +48,15 @@ def add_page(context, request): page = Page('') page.__name__ = name page.__parent__ = context - return render_template_to_response('templates/edit.pt', - request = request, - page = page, - save_url = save_url) - -@bfg_view(for_=Page, name='edit_page') + return dict(page = page, save_url = save_url) + +@bfg_view(for_=Page, name='edit_page', renderer='templates/edit.pt') def edit_page(context, request): if 'form.submitted' in request.params: context.data = request.params['body'] return HTTPFound(location = model_url(context, request)) - return render_template_to_response('templates/edit.pt', - request = request, - page = context, - save_url = model_url(context, request, - 'edit_page') - ) + return dict(page = context, + save_url = model_url(context, request, 'edit_page')) diff --git a/docs/tutorials/bfgwiki/src/views/tutorial/configure.zcml b/docs/tutorials/bfgwiki/src/views/tutorial/configure.zcml index 8fa1a10c9..038677bfc 100644 --- a/docs/tutorials/bfgwiki/src/views/tutorial/configure.zcml +++ b/docs/tutorials/bfgwiki/src/views/tutorial/configure.zcml @@ -17,17 +17,20 @@ for=".models.Wiki" name="add_page" view=".views.add_page" + renderer="templates/edit.pt" /> <view for=".models.Page" view=".views.view_page" + renderer="templates/view.pt" /> <view for=".models.Page" name="edit_page" view=".views.edit_page" + renderer="templates/edit.pt" /> </configure> diff --git a/docs/tutorials/bfgwiki/src/views/tutorial/tests.py b/docs/tutorials/bfgwiki/src/views/tutorial/tests.py index 84a3a0f37..888618842 100644 --- a/docs/tutorials/bfgwiki/src/views/tutorial/tests.py +++ b/docs/tutorials/bfgwiki/src/views/tutorial/tests.py @@ -72,18 +72,17 @@ class ViewPageTests(unittest.TestCase): context.__parent__ = wiki context.__name__ = 'thepage' request = testing.DummyRequest() - renderer = testing.registerDummyRenderer('templates/view.pt') - response = self._callFUT(context, request) - self.assertEqual(renderer.request, request) + info = self._callFUT(context, request) + self.assertEqual(info['page'], context) self.assertEqual( - renderer.content, + info['content'], '<div class="document">\n' '<p>Hello <a href="http://example.com/add_page/CruelWorld">' 'CruelWorld</a> ' '<a href="http://example.com/IDoExist/">' 'IDoExist</a>' '</p>\n</div>\n') - self.assertEqual(renderer.edit_url, + self.assertEqual(info['edit_url'], 'http://example.com/thepage/edit_page') @@ -99,13 +98,14 @@ class AddPageTests(unittest.TestCase): return add_page(context, request) def test_it_notsubmitted(self): + from repoze.bfg.url import model_url context = testing.DummyModel() request = testing.DummyRequest() request.subpath = ['AnotherPage'] - renderer = testing.registerDummyRenderer('templates/edit.pt') - response = self._callFUT(context, request) - self.assertEqual(renderer.request, request) - self.assertEqual(renderer.page.data, '') + info = self._callFUT(context, request) + self.assertEqual(info['page'].data,'') + self.assertEqual(info['save_url'], + model_url(context, request, 'add_page', 'AnotherPage')) def test_it_submitted(self): context = testing.DummyModel() @@ -130,12 +130,13 @@ class EditPageTests(unittest.TestCase): return edit_page(context, request) def test_it_notsubmitted(self): + from repoze.bfg.url import model_url context = testing.DummyModel() request = testing.DummyRequest() - renderer = testing.registerDummyRenderer('templates/edit.pt') - response = self._callFUT(context, request) - self.assertEqual(renderer.request, request) - self.assertEqual(renderer.page, context) + info = self._callFUT(context, request) + self.assertEqual(info['page'], context) + self.assertEqual(info['save_url'], + model_url(context, request, 'edit_page')) def test_it_submitted(self): context = testing.DummyModel() diff --git a/docs/tutorials/bfgwiki/src/views/tutorial/views.py b/docs/tutorials/bfgwiki/src/views/tutorial/views.py index e99864550..57ca24d1b 100644 --- a/docs/tutorials/bfgwiki/src/views/tutorial/views.py +++ b/docs/tutorials/bfgwiki/src/views/tutorial/views.py @@ -3,7 +3,6 @@ import re from webob.exc import HTTPFound from repoze.bfg.url import model_url -from repoze.bfg.chameleon_zpt import render_template_to_response from tutorial.models import Page @@ -29,11 +28,7 @@ def view_page(context, request): content = publish_parts(context.data, writer_name='html')['html_body'] content = wikiwords.sub(check, content) edit_url = model_url(context, request, 'edit_page') - return render_template_to_response('templates/view.pt', - request = request, - page = context, - content = content, - edit_url = edit_url) + return dict(page = context, content = content, edit_url = edit_url) def add_page(context, request): name = request.subpath[0] @@ -48,21 +43,14 @@ def add_page(context, request): page = Page('') page.__name__ = name page.__parent__ = context - return render_template_to_response('templates/edit.pt', - request = request, - page = page, - save_url = save_url) + return dict(page = page, save_url = save_url) def edit_page(context, request): if 'form.submitted' in request.params: context.data = request.params['body'] return HTTPFound(location = model_url(context, request)) - return render_template_to_response('templates/edit.pt', - request = request, - page = context, - save_url = model_url(context, request, - 'edit_page') - ) + return dict(page = context, + save_url = model_url(context, request, 'edit_page')) |
