mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-02-21 10:01:54 +00:00
Update Twisted Web-based render
to use our request
Also to do one other thing Twisted Web does for resources automatically - handle UnsupportedMethod
This commit is contained in:
parent
637bb2e576
commit
538cefed3d
@ -7,13 +7,21 @@ from twisted.internet.defer import (
|
||||
from twisted.web.test.requesthelper import (
|
||||
DummyChannel,
|
||||
)
|
||||
from twisted.web.server import (
|
||||
Request,
|
||||
from twisted.web.error import (
|
||||
UnsupportedMethod,
|
||||
)
|
||||
from twisted.web.http import (
|
||||
NOT_ALLOWED,
|
||||
)
|
||||
from twisted.web.server import (
|
||||
NOT_DONE_YET,
|
||||
)
|
||||
|
||||
from ..webish import (
|
||||
TahoeLAFSRequest,
|
||||
)
|
||||
|
||||
|
||||
def render(resource, query_args):
|
||||
"""
|
||||
Render (in the manner of the Twisted Web Site) a Twisted ``Resource``
|
||||
@ -28,9 +36,15 @@ def render(resource, query_args):
|
||||
``bytes``.
|
||||
"""
|
||||
channel = DummyChannel()
|
||||
request = Request(channel)
|
||||
request = TahoeLAFSRequest(channel)
|
||||
request.method = b"GET"
|
||||
request.args = query_args
|
||||
result = resource.render(request)
|
||||
try:
|
||||
result = resource.render(request)
|
||||
except UnsupportedMethod:
|
||||
request.setResponseCode(NOT_ALLOWED)
|
||||
result = b""
|
||||
|
||||
if isinstance(result, bytes):
|
||||
request.write(result)
|
||||
done = succeed(None)
|
||||
|
Loading…
x
Reference in New Issue
Block a user