summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-05-31 23:14:28 +0000
committerChris McDonough <chrism@agendaless.com>2009-05-31 23:14:28 +0000
commit73db65c9d1a257e46b49643f63ff0ef96d7a5745 (patch)
tree2ebf4362967c1bbcf9ab05bbc5d947b4c6fc2fa3
parentb2e9bfae66a30b292bd76a287d16505a9b3ecce0 (diff)
downloadpyramid-73db65c9d1a257e46b49643f63ff0ef96d7a5745.tar.gz
pyramid-73db65c9d1a257e46b49643f63ff0ef96d7a5745.tar.bz2
pyramid-73db65c9d1a257e46b49643f63ff0ef96d7a5745.zip
- The ``bfg_routesalchemy`` paster template now provides a unit test
and actually uses the database during a view rendering.
-rw-r--r--repoze/bfg/paster_templates/routesalchemy/+package+/tests.py_tmpl28
-rw-r--r--repoze/bfg/paster_templates/routesalchemy/+package+/views.py_tmpl6
-rw-r--r--repoze/bfg/paster_templates/routesalchemy/+project+.ini_tmpl9
-rw-r--r--repoze/bfg/paster_templates/routesalchemy/setup.py_tmpl2
4 files changed, 43 insertions, 2 deletions
diff --git a/repoze/bfg/paster_templates/routesalchemy/+package+/tests.py_tmpl b/repoze/bfg/paster_templates/routesalchemy/+package+/tests.py_tmpl
new file mode 100644
index 000000000..6d287f294
--- /dev/null
+++ b/repoze/bfg/paster_templates/routesalchemy/+package+/tests.py_tmpl
@@ -0,0 +1,28 @@
+import unittest
+from repoze.bfg import testing
+
+def _initTestingDB():
+ from {{package}}.models import initialize_sql
+ session = initialize_sql('sqlite://')
+ return session
+
+class TestMyView(unittest.TestCase):
+ def setUp(self):
+ testing.cleanUp()
+ _initTestingDB()
+
+ def tearDown(self):
+ testing.cleanUp()
+
+ def _callFUT(self, context, request):
+ from {{package}}.views import my_view
+ return my_view(context, request)
+
+ def test_it(self):
+ 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, '{{package}}')
diff --git a/repoze/bfg/paster_templates/routesalchemy/+package+/views.py_tmpl b/repoze/bfg/paster_templates/routesalchemy/+package+/views.py_tmpl
index 9c5fe7a67..747e1e9c6 100644
--- a/repoze/bfg/paster_templates/routesalchemy/+package+/views.py_tmpl
+++ b/repoze/bfg/paster_templates/routesalchemy/+package+/views.py_tmpl
@@ -1,9 +1,15 @@
from repoze.bfg.chameleon_zpt import render_template_to_response
from repoze.bfg.view import static
+from {{package}}.models import DBSession
+from {{package}}.models import Model
+
static_view = static('templates/static')
def my_view(context, request):
+ dbsession = DBSession()
+ root = dbsession.query(Model).filter(Model.name==u'root').first()
return render_template_to_response('templates/mytemplate.pt',
+ root = root,
request = request,
project = '{{project}}')
diff --git a/repoze/bfg/paster_templates/routesalchemy/+project+.ini_tmpl b/repoze/bfg/paster_templates/routesalchemy/+project+.ini_tmpl
index 04eaedec5..72c373fc2 100644
--- a/repoze/bfg/paster_templates/routesalchemy/+project+.ini_tmpl
+++ b/repoze/bfg/paster_templates/routesalchemy/+project+.ini_tmpl
@@ -1,13 +1,18 @@
[DEFAULT]
debug = true
-[app:main]
-use = egg:{{project}}#app
+[app:sql]
+use = egg:{{package}}#app
reload_templates = true
debug_authorization = false
debug_notfound = false
db_string = sqlite:///%(here)s/{{package}}.db
+[pipeline:main]
+pipeline =
+ egg:repoze.tm2#tm
+ sql
+
[server:main]
use = egg:Paste#http
host = 0.0.0.0
diff --git a/repoze/bfg/paster_templates/routesalchemy/setup.py_tmpl b/repoze/bfg/paster_templates/routesalchemy/setup.py_tmpl
index 43d25fb06..e3a3e0e88 100644
--- a/repoze/bfg/paster_templates/routesalchemy/setup.py_tmpl
+++ b/repoze/bfg/paster_templates/routesalchemy/setup.py_tmpl
@@ -14,6 +14,7 @@ requires = [
'repoze.bfg',
'SQLAlchemy',
'transaction',
+ 'repoze.tm2',
'zope.sqlalchemy',
]
@@ -40,6 +41,7 @@ setup(name='{{project}}',
packages=find_packages(),
include_package_data=True,
zip_safe=False,
+ test_suite='{{package}}',
install_requires = requires,
entry_points = """\
[paste.app_factory]