diff options
| author | Chris McDonough <chrism@agendaless.com> | 2009-10-10 04:51:25 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2009-10-10 04:51:25 +0000 |
| commit | d3fe9b7eb36964c0cc0b21a042a1d1908c1d0181 (patch) | |
| tree | fbff758c8ef580117798baa1efcf406f549dd575 /docs/tutorials | |
| parent | 1d4c44e80f36406dd1ad1d8bf289ee92123bb208 (diff) | |
| download | pyramid-d3fe9b7eb36964c0cc0b21a042a1d1908c1d0181.tar.gz pyramid-d3fe9b7eb36964c0cc0b21a042a1d1908c1d0181.tar.bz2 pyramid-d3fe9b7eb36964c0cc0b21a042a1d1908c1d0181.zip | |
Move to renderers. Add tests.
Diffstat (limited to 'docs/tutorials')
4 files changed, 132 insertions, 49 deletions
diff --git a/docs/tutorials/bfgwiki2/src/authorization/tutorial/configure.zcml b/docs/tutorials/bfgwiki2/src/authorization/tutorial/configure.zcml index 001959bb1..d9f6ffabd 100644 --- a/docs/tutorials/bfgwiki2/src/authorization/tutorial/configure.zcml +++ b/docs/tutorials/bfgwiki2/src/authorization/tutorial/configure.zcml @@ -15,6 +15,7 @@ path="login" name="login" view=".login.login" + renderer="templates/login.pt" /> <route @@ -33,24 +34,28 @@ path=":pagename" name="view_page" view=".views.view_page" + renderer="templates/view.pt" /> <route - path=":pagename/edit_page" - name="edit_page" - view=".views.edit_page" + path="add_page/:pagename" + name="add_page" + view=".views.add_page" + renderer="templates/edit.pt" permission="edit" /> <route - path="add_page/:pagename" - name="add_page" - view=".views.add_page" + path=":pagename/edit_page" + name="edit_page" + view=".views.edit_page" + renderer="templates/edit.pt" permission="edit" /> - <forbidden - view=".login.login"/> + <forbidden + view=".login.login" + renderer="templates/login.pt"/> <authtktauthenticationpolicy secret="sosecret" diff --git a/docs/tutorials/bfgwiki2/src/authorization/tutorial/login.py b/docs/tutorials/bfgwiki2/src/authorization/tutorial/login.py index 199079691..893a07a5d 100644 --- a/docs/tutorials/bfgwiki2/src/authorization/tutorial/login.py +++ b/docs/tutorials/bfgwiki2/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.security import remember from repoze.bfg.security import forget from repoze.bfg.url import route_url @@ -25,14 +24,12 @@ def login(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, ) def logout(request): diff --git a/docs/tutorials/bfgwiki2/src/authorization/tutorial/tests.py b/docs/tutorials/bfgwiki2/src/authorization/tutorial/tests.py index 8d163ad20..2a1d43749 100644 --- a/docs/tutorials/bfgwiki2/src/authorization/tutorial/tests.py +++ b/docs/tutorials/bfgwiki2/src/authorization/tutorial/tests.py @@ -2,27 +2,120 @@ import unittest from repoze.bfg import testing def _initTestingDB(): - from tutorial.models import initialize_sql - session = initialize_sql('sqlite://') - return session + from tutorial.models import DBSession + from tutorial.models import Base + from sqlalchemy import create_engine + engine = create_engine('sqlite://') + DBSession.configure(bind=engine) + Base.metadata.bind = engine + Base.metadata.create_all(engine) + return DBSession -class TestMyView(unittest.TestCase): +def _registerRoutes(): + testing.registerRoute(':pagename', 'view_page') + testing.registerRoute(':pagename/edit_page', 'edit_page') + testing.registerRoute('add_page/:pagename', 'add_page') + +class ViewWikiTests(unittest.TestCase): + def test_it(self): + from tutorial.views import view_wiki + testing.registerRoute(':pagename', 'view_page') + request = testing.DummyRequest() + response = view_wiki(request) + self.assertEqual(response.location, 'http://example.com/FrontPage') + +class ViewPageTests(unittest.TestCase): + def setUp(self): + self.session = _initTestingDB() + + def tearDown(self): + self.session.remove() + + def _callFUT(self, request): + from tutorial.views import view_page + return view_page(request) + + def test_it(self): + from tutorial.models import Page + request = testing.DummyRequest() + request.matchdict['pagename'] = 'IDoExist' + page = Page('IDoExist', 'Hello CruelWorld IDoExist') + self.session.add(page) + _registerRoutes() + info = self._callFUT(request) + self.assertEqual(info['page'], page) + self.assertEqual( + 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(info['edit_url'], + 'http://example.com/IDoExist/edit_page') + + +class AddPageTests(unittest.TestCase): def setUp(self): - testing.cleanUp() - _initTestingDB() + self.session = _initTestingDB() + + def tearDown(self): + self.session.remove() + + def _callFUT(self, request): + from tutorial.views import add_page + return add_page(request) + + def test_it_notsubmitted(self): + _registerRoutes() + request = testing.DummyRequest() + request.matchdict = {'pagename':'AnotherPage'} + info = self._callFUT(request) + self.assertEqual(info['page'].data,'') + self.assertEqual(info['save_url'], + 'http://example.com/add_page/AnotherPage') + def test_it_submitted(self): + from tutorial.models import Page + _registerRoutes() + request = testing.DummyRequest({'form.submitted':True, + 'body':'Hello yo!'}) + request.matchdict = {'pagename':'AnotherPage'} + response = self._callFUT(request) + page = self.session.query(Page).filter_by(name='AnotherPage').one() + self.assertEqual(page.data, 'Hello yo!') + +class EditPageTests(unittest.TestCase): + def setUp(self): + self.session = _initTestingDB() + def tearDown(self): - testing.cleanUp() + self.session.remove() - def _callFUT(self, context, request): - from tutorial.views import my_view - return my_view(context, request) + def _callFUT(self, request): + from tutorial.views import edit_page + return edit_page(request) - def test_it(self): + def test_it_notsubmitted(self): + from tutorial.models import Page + _registerRoutes() request = testing.DummyRequest() - context = testing.DummyModel() - renderer = testing.registerDummyRenderer('templates/mytemplate.pt') - response = self._callFUT(context, request) - self.assertEqual(renderer.root.name, 'root') - self.assertEqual(renderer.request, request) - self.assertEqual(renderer.project, 'tutorial') + request.matchdict = {'pagename':'abc'} + page = Page('abc', 'hello') + self.session.add(page) + info = self._callFUT(request) + self.assertEqual(info['page'], page) + self.assertEqual(info['save_url'], 'http://example.com/abc/edit_page') + + def test_it_submitted(self): + from tutorial.models import Page + _registerRoutes() + request = testing.DummyRequest({'form.submitted':True, + 'body':'Hello yo!'}) + request.matchdict = {'pagename':'abc'} + page = Page('abc', 'hello') + self.session.add(page) + response = self._callFUT(request) + self.assertEqual(response.location, 'http://example.com/abc') + self.assertEqual(page.data, 'Hello yo!') diff --git a/docs/tutorials/bfgwiki2/src/authorization/tutorial/views.py b/docs/tutorials/bfgwiki2/src/authorization/tutorial/views.py index cb54d0577..49167a629 100644 --- a/docs/tutorials/bfgwiki2/src/authorization/tutorial/views.py +++ b/docs/tutorials/bfgwiki2/src/authorization/tutorial/views.py @@ -4,7 +4,6 @@ from docutils.core import publish_parts from webob.exc import HTTPFound -from repoze.bfg.chameleon_zpt import render_template_to_response from repoze.bfg.security import authenticated_userid from repoze.bfg.url import route_url @@ -37,12 +36,8 @@ def view_page(request): content = wikiwords.sub(check, content) edit_url = route_url('edit_page', request, pagename=pagename) logged_in = authenticated_userid(request) - return render_template_to_response('templates/view.pt', - request = request, - page = page, - content = content, - logged_in = logged_in, - edit_url = edit_url) + return dict(page=page, content=content, edit_url=edit_url, + logged_in=logged_in) def add_page(request): name = request.matchdict['pagename'] @@ -56,11 +51,7 @@ def add_page(request): save_url = route_url('add_page', request, pagename=name) page = Page('', '') 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) def edit_page(request): name = request.matchdict['pagename'] @@ -73,11 +64,8 @@ def edit_page(request): pagename=name)) logged_in = authenticated_userid(request) - return render_template_to_response('templates/edit.pt', - request = request, - page = page, - logged_in = logged_in, - save_url = route_url('edit_page', - request, - pagename=name), - ) + return dict( + page=page, + save_url = route_url('edit_page', request, pagename=name), + logged_in = logged_in, + ) |
