Skip to content

Commit

Permalink
Merge hide-request-transport-8191-5: Hide the transport backing the H…
Browse files Browse the repository at this point in the history
…TTPChannel object from twisted.web Resource objects.

Author: lukasa
Reviewers: glyph, adiroiban, hawkowl
Fixes: #8191

git-svn-id: svn://svn.twistedmatrix.com/svn/Twisted/trunk@47104 bbbe8e31-12d6-0310-92fd-ac37d47ddeeb
  • Loading branch information
hawkowl committed Mar 29, 2016
1 parent 0a92a68 commit 4f9e36d
Show file tree
Hide file tree
Showing 8 changed files with 635 additions and 84 deletions.
347 changes: 297 additions & 50 deletions twisted/web/http.py

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions twisted/web/server.py
Expand Up @@ -110,10 +110,10 @@ def __init__(self, *args, **kw):

def getStateToCopyFor(self, issuer):
x = self.__dict__.copy()
del x['transport']
del x['_transport']
# XXX refactor this attribute out; it's from protocol
# del x['server']
del x['channel']
del x['_channel']
del x['content']
del x['site']
self.content.seek(0, 0)
Expand Down Expand Up @@ -164,7 +164,7 @@ def process(self):
"""

# get site from channel
self.site = self.channel.site
self.site = self._channel.site

# set various default headers
self.setHeader(b'server', version)
Expand Down
53 changes: 53 additions & 0 deletions twisted/web/test/requesthelper.py
Expand Up @@ -53,6 +53,9 @@ def getHost(self):
def registerProducer(self, producer, streaming):
self.producers.append((producer, streaming))

def unregisterProducer(self):
pass

def loseConnection(self):
self.disconnected = True

Expand All @@ -71,6 +74,56 @@ def requestDone(self, request):
pass


def writeHeaders(self, version, code, reason, headers):
response_line = version + b" " + code + b" " + reason + b"\r\n"
headerSequence = [response_line]
headerSequence.extend(
name + b': ' + value + b"\r\n" for name, value in headers
)
headerSequence.append(b"\r\n")
self.transport.writeSequence(headerSequence)


def getPeer(self):
return self.transport.getPeer()


def getHost(self):
return self.transport.getHost()


def registerProducer(self, producer, streaming):
self.transport.registerProducer(producer, streaming)


def unregisterProducer(self):
self.transport.unregisterProducer()


def write(self, data):
self.transport.write(data)


def writeSequence(self, iovec):
self.transport.writeSequence(iovec)


def loseConnection(self):
self.transport.loseConnection()


def endRequest(self):
pass


@property
def producers(self):
return self.transport.producers

def _send100Continue(self):
self.transport.write(b"HTTP/1.1 100 Continue\r\n\r\n")



class DummyRequest(object):
"""
Expand Down

0 comments on commit 4f9e36d

Please sign in to comment.