r46836 - Merge suppress-error-8192: Suppress an unhandled error in DeferredResource.
mithrandi-TA+aISz0psMTMxyoc4vAAJOcrHinNvQL0E9HWUfgJXw@public.gmane.org
| Newsgroups | gmane.comp.python.twisted.commits |
|---|---|
| Message-ID | <[email protected]> |
Author: mithrandi
Date: Fri Feb 19 20:49:33 2016
New Revision: 46836
Added:
trunk/twisted/web/topfiles/8192.bugfix
Modified:
trunk/twisted/web/test/test_util.py
trunk/twisted/web/util.py
Log:
Merge suppress-error-8192: Suppress an unhandled error in DeferredResource.
Author: mithrandi
Reviewer: adiroiban
Fixes: #8192
Modified: trunk/twisted/web/test/test_util.py
==============================================================================
--- trunk/twisted/web/test/test_util.py (original)
+++ trunk/twisted/web/test/test_util.py Fri Feb 19 20:49:33 2016
@@ -7,8 +7,10 @@
from __future__ import absolute_import, division
+import gc
+
from twisted.python.failure import Failure
-from twisted.trial.unittest import TestCase
+from twisted.trial.unittest import SynchronousTestCase, TestCase
from twisted.internet import defer
from twisted.python.compat import _PY3, intToBytes, networkString
from twisted.web import resource, util
@@ -316,7 +318,7 @@
-class DeferredResourceTests(TestCase):
+class DeferredResourceTests(SynchronousTestCase):
"""
Tests for L{DeferredResource}.
"""
@@ -344,3 +346,21 @@
deferredResource = DeferredResource(defer.succeed(result))
deferredResource.render(request)
self.assertEqual(rendered, [result])
+
+
+ def test_renderNoFailure(self):
+ """
+ If the L{Deferred} fails, L{DeferredResource} reports the failure via
+ C{processingFailed}, and does not cause an unhandled error to be
+ logged.
+ """
+ request = DummyRequest([])
+ d = request.notifyFinish()
+ failure = Failure(RuntimeError())
+ deferredResource = DeferredResource(defer.fail(failure))
+ deferredResource.render(request)
+ self.assertEqual(self.failureResultOf(d), failure)
+ del deferredResource
+ gc.collect()
+ errors = self.flushLoggedErrors(RuntimeError)
+ self.assertEqual(errors, [])
Modified: trunk/twisted/web/util.py
==============================================================================
--- trunk/twisted/web/util.py (original)
+++ trunk/twisted/web/util.py Fri Feb 19 20:49:33 2016
@@ -145,7 +145,6 @@
def _ebChild(self, reason, request):
request.processingFailed(reason)
- return reason