#18707: Test client doesn't allow testing 500 responses content
-----------------------------------+------------------------------------
     Reporter:  ricardokirkner@…   |                    Owner:  nobody
         Type:  New feature        |                   Status:  new
    Component:  Testing framework  |                  Version:  1.6
     Severity:  Normal             |               Resolution:
     Keywords:                     |             Triage Stage:  Accepted
    Has patch:  1                  |      Needs documentation:  0
  Needs tests:  0                  |  Patch needs improvement:  0
Easy pickings:  0                  |                    UI/UX:  0
-----------------------------------+------------------------------------
Changes (by Jon Dufresne):

 * has_patch:  0 => 1


Comment:

 [https://github.com/django/django/pull/10892 PR]

 This PR takes the following approach:

 Adds a new test client argument and attribute `raise_view_exception` to
 allow controlling whether or not exceptions raised in a view should also
 be raised in the test. The value defaults to `True` for backwards
 compatibility. If it is `False` and an exception occurs in the view, the
 test client will return a 500 response with the attribute `exc_info`, a
 tuple providing information of the exception that occurred in the same
 format as Python's `sys.exc_inf()` (type, value, traceback).

 However, I would like to suggest that `raise_view_exception=False` become
 the default after a deprecation period and perhaps eventually dropping the
 old behavior (again, after a deprecation period). IMO, the test client
 should try to interact with views as close to production as possible. By
 injecting alternative code paths, such as eagerly raising exceptions, we
 drift from the real world scenario to a different one.  A default of
 `raise_view_exception=False` would better allow full stack integration
 testing with the test client. With the introduction of `exc_info`, testing
 precisely what exception occurred is still available and easy to do. This
 proposal is not included in the PR, as I'd like some agreement before
 beginning work.

-- 
Ticket URL: <https://code.djangoproject.com/ticket/18707#comment:14>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/082.4051e3268738f46d19f7795fa0464e4d%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to