summaryrefslogtreecommitdiff
path: root/docs/tutorials
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-10-10 04:51:25 +0000
committerChris McDonough <chrism@agendaless.com>2009-10-10 04:51:25 +0000
commitd3fe9b7eb36964c0cc0b21a042a1d1908c1d0181 (patch)
treefbff758c8ef580117798baa1efcf406f549dd575 /docs/tutorials
parent1d4c44e80f36406dd1ad1d8bf289ee92123bb208 (diff)
downloadpyramid-d3fe9b7eb36964c0cc0b21a042a1d1908c1d0181.tar.gz
pyramid-d3fe9b7eb36964c0cc0b21a042a1d1908c1d0181.tar.bz2
pyramid-d3fe9b7eb36964c0cc0b21a042a1d1908c1d0181.zip
Move to renderers. Add tests.
Diffstat (limited to 'docs/tutorials')
-rw-r--r--docs/tutorials/bfgwiki2/src/authorization/tutorial/configure.zcml21
-rw-r--r--docs/tutorials/bfgwiki2/src/authorization/tutorial/login.py5
-rw-r--r--docs/tutorials/bfgwiki2/src/authorization/tutorial/tests.py127
-rw-r--r--docs/tutorials/bfgwiki2/src/authorization/tutorial/views.py28
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,
+ )