#27301: Better handling of errors that are not pickleable when testing in 
parallel
----------------------------------+----------------------------------------
     Reporter:  Adam Wróbel       |      Owner:  Tim Graham
         Type:  Uncategorized     |     Status:  assigned
    Component:  Testing           |    Version:  1.10
  framework                       |
     Severity:  Normal            |   Keywords:  testrunner parallel pickle
 Triage Stage:  Unreviewed        |  Has patch:  0
Easy pickings:  0                 |      UI/UX:  0
----------------------------------+----------------------------------------
 When running test in parallel the tests results are communicated between
 processes in serialized form. Unfortunately not all test errors are
 serializable using `pickle` module.

 Django currently detects errors that fail `pickle.dumps`, reports them to
 `STDERR` and raises exception that interrupts test runner.

 This ticket has two parts:

 The first is a minor enhancement. In addition to detecting `pickle.dumps`
 errors also detect `pickle.loads` errors. I've implemented it in a
 [https://github.com/django/django/pull/7325 Github PR #7325].

 The second is a proposal to instead of raising pickling exception that
 interrupts tests and displays useless
 `multiprocessing.pool.RemoteTraceback` wrap the error type and message in
 some kind of `UnpickleableError` container and pass it to parent process
 with the usual `addError`/`addFailure`/`addSubTest`/`addExpectedFailure`
 methods. This will let the test suite continue, display final error
 statistics and perform teardown. This is especially important for
 `addExpectedFailure` which currently stops the entire suite if the
 expected error is unpickleable (my actual use case).

--
Ticket URL: <https://code.djangoproject.com/ticket/27301>
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 [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/046.762476e0a3ced0e9a43ce32666880f06%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to