summaryrefslogtreecommitdiff
path: root/docs/quick_tutorial/routing/tutorial
diff options
context:
space:
mode:
Diffstat (limited to 'docs/quick_tutorial/routing/tutorial')
-rw-r--r--docs/quick_tutorial/routing/tutorial/__init__.py8
-rw-r--r--docs/quick_tutorial/routing/tutorial/home.pt10
-rw-r--r--docs/quick_tutorial/routing/tutorial/tests.py36
-rw-r--r--docs/quick_tutorial/routing/tutorial/views.py20
4 files changed, 74 insertions, 0 deletions
diff --git a/docs/quick_tutorial/routing/tutorial/__init__.py b/docs/quick_tutorial/routing/tutorial/__init__.py
new file mode 100644
index 000000000..0c47b6b0b
--- /dev/null
+++ b/docs/quick_tutorial/routing/tutorial/__init__.py
@@ -0,0 +1,8 @@
+from pyramid.config import Configurator
+
+
+def main(global_config, **settings):
+ config = Configurator(settings=settings)
+ config.add_route('home', '/howdy/{first}/{last}')
+ config.scan('.views')
+ return config.make_wsgi_app() \ No newline at end of file
diff --git a/docs/quick_tutorial/routing/tutorial/home.pt b/docs/quick_tutorial/routing/tutorial/home.pt
new file mode 100644
index 000000000..f2b991059
--- /dev/null
+++ b/docs/quick_tutorial/routing/tutorial/home.pt
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <title>Quick Tour: ${name}</title>
+</head>
+<body>
+<h1>${name}</h1>
+<p>First: ${first}, Last: ${last}</p>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/quick_tutorial/routing/tutorial/tests.py b/docs/quick_tutorial/routing/tutorial/tests.py
new file mode 100644
index 000000000..572f389fb
--- /dev/null
+++ b/docs/quick_tutorial/routing/tutorial/tests.py
@@ -0,0 +1,36 @@
+import unittest
+
+from pyramid import testing
+
+
+class TutorialViewTests(unittest.TestCase):
+ def setUp(self):
+ self.config = testing.setUp()
+
+ def tearDown(self):
+ testing.tearDown()
+
+ def test_home(self):
+ from .views import TutorialViews
+
+ request = testing.DummyRequest()
+ request.matchdict['first'] = 'First'
+ request.matchdict['last'] = 'Last'
+ inst = TutorialViews(request)
+ response = inst.home()
+ self.assertEqual(response['first'], 'First')
+ self.assertEqual(response['last'], 'Last')
+
+
+class TutorialFunctionalTests(unittest.TestCase):
+ def setUp(self):
+ from tutorial import main
+ app = main({})
+ from webtest import TestApp
+
+ self.testapp = TestApp(app)
+
+ def test_home(self):
+ res = self.testapp.get('/howdy/Jane/Doe', status=200)
+ self.assertIn(b'Jane', res.body)
+ self.assertIn(b'Doe', res.body)
diff --git a/docs/quick_tutorial/routing/tutorial/views.py b/docs/quick_tutorial/routing/tutorial/views.py
new file mode 100644
index 000000000..8a9211e92
--- /dev/null
+++ b/docs/quick_tutorial/routing/tutorial/views.py
@@ -0,0 +1,20 @@
+from pyramid.view import (
+ view_config,
+ view_defaults
+ )
+
+
+@view_defaults(renderer='home.pt')
+class TutorialViews:
+ def __init__(self, request):
+ self.request = request
+
+ @view_config(route_name='home')
+ def home(self):
+ first = self.request.matchdict['first']
+ last = self.request.matchdict['last']
+ return {
+ 'name': 'Home View',
+ 'first': first,
+ 'last': last
+ }