From 73db65c9d1a257e46b49643f63ff0ef96d7a5745 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Sun, 31 May 2009 23:14:28 +0000 Subject: - The ``bfg_routesalchemy`` paster template now provides a unit test and actually uses the database during a view rendering. --- .../routesalchemy/+package+/tests.py_tmpl | 28 ++++++++++++++++++++++ .../routesalchemy/+package+/views.py_tmpl | 6 +++++ .../routesalchemy/+project+.ini_tmpl | 9 +++++-- .../paster_templates/routesalchemy/setup.py_tmpl | 2 ++ 4 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 repoze/bfg/paster_templates/routesalchemy/+package+/tests.py_tmpl 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] -- cgit v1.2.3