An exception on commit can return 200 OK #5
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
If you get an exception on the commit() call the
browser may see an OK message. This is because the
result is already passed to the WSGI server by the
time commit() is called. What actually happens
depends on the server.
It is a very bas idea to return a "Your changes
have been saved" message when, in fact, they have not.
This can happen if you have work happen on commit().
For example, SQLAlchemy will often only flush on commit
or a DEFERRED PostgreSQL constraint.
This is just a test as the solution is non-trivial.
Simply keeping the WSGI result in memory until the
commit() is called is not workable for large responses
or streaming (see 4b68c7d)
Neither does the WSGI spec provide any solace:
http://www.python.org/dev/peps/pep-3333/#error-handling