Skip to content

Commit

Permalink
Fix bug and add test for it
Browse files Browse the repository at this point in the history
  • Loading branch information
Javex committed Apr 7, 2014
1 parent 6411b92 commit c45af4f
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 8 deletions.
2 changes: 1 addition & 1 deletion pyramid_crud/views.py
Expand Up @@ -804,7 +804,7 @@ def edit(self):
else:
is_new = True
form = self.Form(self.request.POST, csrf_context=self.request)
form.session = self.request.dbsession
form.session = self.dbsession

# Prepare return values
retparams = {'form': form, 'is_new': is_new}
Expand Down
23 changes: 16 additions & 7 deletions tests/test_views.py
Expand Up @@ -32,9 +32,11 @@ def csrf_token(session, pyramid_request):

class TestCRUDView(object):

@pytest.fixture(autouse=True)
def _prepare_view(self, pyramid_request, DBSession, form_factory,
@pytest.fixture(autouse=True, params=[True, False])
def _prepare_view(self, pyramid_request, DBSession, form_factory, request,
model_factory):

request_dbsession = request.param
self.request = pyramid_request
self.request.POST = MultiDict(self.request.POST)
self.Model = model_factory([Column('test_text', String),
Expand All @@ -44,13 +46,20 @@ def _prepare_view(self, pyramid_request, DBSession, form_factory,
self.Model.id.info["label"] = "ID"
self.Model.__str__ = lambda self: 'ModelStr'
self.Form = form_factory(model=self.Model, base=forms.CSRFModelForm)
self.request.dbsession = DBSession

self.session = DBSession

class MyView(CRUDView):
Form = self.Form
url_path = '/test'
self.View = MyView
# Create view
view_attrs = {
'Form': self.Form,
'url_path': '/test',
}
if request_dbsession:
self.request.dbsession = DBSession
else:
view_attrs["dbsession"] = DBSession

self.View = type('MyView', (CRUDView,), view_attrs)
self.View.routes = {
'list': 'tests.test_views.MyView.list',
'delete': 'tests.test_views.MyView.delete',
Expand Down

0 comments on commit c45af4f

Please sign in to comment.