diff options
| author | Chris McDonough <chrism@agendaless.com> | 2009-05-31 23:14:28 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2009-05-31 23:14:28 +0000 |
| commit | 73db65c9d1a257e46b49643f63ff0ef96d7a5745 (patch) | |
| tree | 2ebf4362967c1bbcf9ab05bbc5d947b4c6fc2fa3 | |
| parent | b2e9bfae66a30b292bd76a287d16505a9b3ecce0 (diff) | |
| download | pyramid-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.
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] |
