/usr/lib/python3/dist-packages/klein/test/py3_test_resource.py is in python3-klein 17.2.0-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | import twisted
from klein import Klein
from klein.resource import KleinResource
from klein.test.util import TestCase
from .test_resource import LeafResource, requestMock, _render
class PY3KleinResourceTests(TestCase):
def assertFired(self, deferred, result=None):
"""
Assert that the given deferred has fired with the given result.
"""
self.assertEqual(self.successResultOf(deferred), result)
def test_asyncResourceRendering(self):
app = Klein()
resource = KleinResource(app)
request = requestMock(b"/resource/leaf")
@app.route("/resource/leaf")
async def leaf(request):
return LeafResource()
if (twisted.version.major, twisted.version.minor) >= (16, 6):
expected = b"I am a leaf in the wind."
d = _render(resource, request)
else:
expected = b"** Twisted>=16.6 is required **"
# Twisted version in use does not have ensureDeferred, so
# attempting to use an async resource will raise
# NotImplementedError.
# resource.render(), and therefore _render(), does not return the
# deferred object that does the rendering, so we need to check for
# errors indirectly via handle_errors().
@app.handle_errors(NotImplementedError)
def notImplementedError(request, failure):
return expected
d = _render(resource, request)
def assertResult(_):
self.assertEqual(request.getWrittenData(), expected)
d.addCallback(assertResult)
return d
|