summaryrefslogtreecommitdiff
path: root/docs/tutorials
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-10-10 04:45:05 +0000
committerChris McDonough <chrism@agendaless.com>2009-10-10 04:45:05 +0000
commit1d4c44e80f36406dd1ad1d8bf289ee92123bb208 (patch)
tree0235aabbac4c54683d11803b8f2a1d2105879ccc /docs/tutorials
parentca6575ada77e08f09e2679f57ed2775be2ea066a (diff)
downloadpyramid-1d4c44e80f36406dd1ad1d8bf289ee92123bb208.tar.gz
pyramid-1d4c44e80f36406dd1ad1d8bf289ee92123bb208.tar.bz2
pyramid-1d4c44e80f36406dd1ad1d8bf289ee92123bb208.zip
Move to renderers.
Add tests.
Diffstat (limited to 'docs/tutorials')
-rw-r--r--docs/tutorials/bfgwiki2/src/views/tutorial/configure.zcml15
-rw-r--r--docs/tutorials/bfgwiki2/src/views/tutorial/tests.py127
-rw-r--r--docs/tutorials/bfgwiki2/src/views/tutorial/views.py24
3 files changed, 125 insertions, 41 deletions
diff --git a/docs/tutorials/bfgwiki2/src/views/tutorial/configure.zcml b/docs/tutorials/bfgwiki2/src/views/tutorial/configure.zcml
index 1e5207ebc..7eafe7c3c 100644
--- a/docs/tutorials/bfgwiki2/src/views/tutorial/configure.zcml
+++ b/docs/tutorials/bfgwiki2/src/views/tutorial/configure.zcml
@@ -21,18 +21,21 @@
path=":pagename"
name="view_page"
view=".views.view_page"
- />
-
- <route
- path=":pagename/edit_page"
- name="edit_page"
- view=".views.edit_page"
+ renderer="templates/view.pt"
/>
<route
path="add_page/:pagename"
name="add_page"
view=".views.add_page"
+ renderer="templates/edit.pt"
+ />
+
+ <route
+ path=":pagename/edit_page"
+ name="edit_page"
+ view=".views.edit_page"
+ renderer="templates/edit.pt"
/>
</configure>
diff --git a/docs/tutorials/bfgwiki2/src/views/tutorial/tests.py b/docs/tutorials/bfgwiki2/src/views/tutorial/tests.py
index 8d163ad20..2a1d43749 100644
--- a/docs/tutorials/bfgwiki2/src/views/tutorial/tests.py
+++ b/docs/tutorials/bfgwiki2/src/views/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/views/tutorial/views.py b/docs/tutorials/bfgwiki2/src/views/tutorial/views.py
index 9a197bd75..410d25ec0 100644
--- a/docs/tutorials/bfgwiki2/src/views/tutorial/views.py
+++ b/docs/tutorials/bfgwiki2/src/views/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.url import route_url
from tutorial.models import DBSession
@@ -35,11 +34,7 @@ def view_page(request):
content = publish_parts(page.data, writer_name='html')['html_body']
content = wikiwords.sub(check, content)
edit_url = route_url('edit_page', request, pagename=matchdict['pagename'])
- return render_template_to_response('templates/view.pt',
- request = request,
- page = page,
- content = content,
- edit_url = edit_url)
+ return dict(page=page, content=content, edit_url=edit_url)
def add_page(request):
name = request.matchdict['pagename']
@@ -52,10 +47,7 @@ def add_page(request):
pagename=name))
save_url = route_url('add_page', request, pagename=name)
page = Page('', '')
- 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(request):
name = request.matchdict['pagename']
@@ -66,11 +58,7 @@ def edit_page(request):
session.add(page)
return HTTPFound(location = route_url('view_page', request,
pagename=name))
-
- return render_template_to_response('templates/edit.pt',
- request = request,
- page = page,
- save_url = route_url('edit_page',
- request,
- pagename=name),
- )
+ return dict(
+ page=page,
+ save_url = route_url('edit_page', request, pagename=name),
+ )