twisted.web.test.test_newclient.HTTP11ClientProtocolTests(TestCase) class documentationtwisted.web.test.test_newclient
(View In Hierarchy)
Tests for the HTTP 1.1 client protocol implementation, HTTP11ClientProtocol.
| Method | setUp | Create an HTTP11ClientProtocolconnected to a fake transport. | 
| Method | test_request | HTTP11ClientProtocol.requestaccepts aRequestand 
calls itswriteTomethod with its own transport. | 
| Method | test_secondRequest | The second time HTTP11ClientProtocol.requestis called, it returns aDeferredwhich
immediately fires with aFailurewrapping aRequestNotSentexception. | 
| Method | test_requestAfterConnectionLost | HTTP11ClientProtocol.requestreturns aDeferredwhich
immediately fires with aFailurewrapping aRequestNotSentif called after the protocol has been disconnected. | 
| Method | test_failedWriteTo | No summary | 
| Method | test_synchronousWriteToError | If Request.writeToraises an exception,HTTP11ClientProtocol.requestreturns aDeferredwhich
fires with aFailureofRequestGenerationFailedwrapping that exception. | 
| Method | test_connectionLostDuringRequestGeneration | No summary | 
| Method | test_connectionLostBeforeGenerationFinished | If the request passed to HTTP11ClientProtocolfinishes generation successfully after theHTTP11ClientProtocol's
connection has been lost, nothing happens. | 
| Method | test_connectionLostBeforeGenerationFailed | If the request passed to HTTP11ClientProtocolfinished generation with an error after theHTTP11ClientProtocol's
connection has been lost, nothing happens. | 
| Method | test_errorMessageOnConnectionLostBeforeGenerationFailedDoesNotConfuse | No summary | 
| Method | test_receiveSimplestResponse | When a response is delivered to HTTP11ClientProtocol,
theDeferredpreviously returned by therequestmethod is called back with 
aResponseinstance and the connection is closed. | 
| Method | test_receiveResponseHeaders | The headers included in a response delivered to HTTP11ClientProtocolare included on theResponseinstance 
passed to the callback returned by therequestmethod. | 
| Method | test_receiveResponseBeforeRequestGenerationDone | If response bytes are delivered to HTTP11ClientProtocolbefore theDeferredreturned byRequest.writeTofires, those response bytes are parsed as part of the response. | 
| Method | test_receiveResponseHeadersTooLong | The connection is closed when the server respond with a header which is above the maximum line. | 
| Method | test_connectionLostAfterReceivingResponseBeforeRequestGenerationDone | If response bytes are delivered to HTTP11ClientProtocolbefore the request completes, callingconnectionLoston the 
protocol will result in protocol being moved to'CONNECTION_LOST'state. | 
| Method | test_receiveResponseBody | The deliverBodymethod of the response object with which 
theDeferredreturned byHTTP11ClientProtocol.requestfires can be used to get the body of the response. | 
| Method | test_responseBodyFinishedWhenConnectionLostWhenContentLengthIsUnknown | No summary | 
| Method | test_chunkedResponseBodyUnfinishedWhenConnectionLost | No summary | 
| Method | test_parserDataReceivedException | No summary | 
| Method | test_proxyStopped | When the HTTP response parser is disconnected, the TransportProxyProducerwhich was connected to it as a transport is stopped. | 
| Method | test_abortClosesConnection | HTTP11ClientProtocol.abortwill tell the transport to close its connection when it is invoked, and 
returns aDeferredthat fires when the connection is lost. | 
| Method | test_abortAfterConnectionLost | HTTP11ClientProtocol.abortcalled after the connection is lost returns aDeferredthat 
fires immediately. | 
| Method | test_abortBeforeResponseBody | No summary | 
| Method | test_abortAfterResponseHeaders | No summary | 
| Method | test_quiescentCallbackCalled | If after a response is done the {HTTP11ClientProtocol} stays open and 
returns to QUIESCENT state, all per-request state is reset and the quiescentCallbackis called with the protocol instance. | 
| Method | test_transportProducingWhenQuiescentAfterFullBody | No summary | 
| Method | test_quiescentCallbackCalledEmptyResponse | The quiescentCallback is called before the request Deferredfires, in cases where the response has no body. | 
| Method | test_quiescentCallbackNotCalled | If after a response is done the {HTTP11ClientProtocol} returns a Connection: closeheader in the response, thequiescentCallbackis not called and the connection is 
lost. | 
| Method | test_quiescentCallbackNotCalledNonPersistentQuery | If the request was non-persistent (i.e. sent Connection: 
close), thequiescentCallbackis not called and the 
connection is lost. | 
| Method | test_quiescentCallbackThrows | If quiescentCallbackthrows an exception, the error is 
logged and protocol is disconnected. | 
| Method | test_cancelBeforeResponse | No summary | 
| Method | test_cancelDuringResponse | No summary | 
| Method | assertCancelDuringBodyProduction | No summary | 
| Method | test_cancelDuringBodyProduction | No summary | 
| Method | test_cancelDuringChunkedBodyProduction | No summary | 
Inherited from TestCase:
| Instance Variable | timeout | A real number of seconds. If set, the test will raise an error if it takes 
longer than timeoutseconds. If not set, 
util.DEFAULT_TIMEOUT_DURATION is used. | 
| Method | __init__ | Construct an asynchronous test case for methodName. | 
| Method | assertFailure | Fail if deferreddoes not errback with one ofexpectedFailures. Returns the original Deferred with callbacks
added. You will need to return this Deferred from your test case. | 
| Method | __call__ | Run the test. Should always do exactly the same thing as run(). | 
| Method | deferSetUp | Undocumented | 
| Method | deferTestMethod | Undocumented | 
| Method | deferTearDown | Undocumented | 
| Method | deferRunCleanups | Run any scheduled cleanups and report errors (if any to the result object. | 
| Method | addCleanup | Extend the base cleanup feature with support for cleanup functions which return Deferreds. | 
| Method | getSuppress | Undocumented | 
| Method | getTimeout | No summary | 
| Method | _run | Run a single method, either a test method or fixture. | 
| Method | _ebDeferSetUp | Undocumented | 
| Method | _cbDeferTestMethod | Undocumented | 
| Method | _ebDeferTestMethod | Undocumented | 
| Method | _ebDeferTearDown | Undocumented | 
| Method | _cbDeferRunCleanups | Undocumented | 
| Method | _cleanUp | Undocumented | 
| Method | _classCleanUp | Undocumented | 
| Method | _makeReactorMethod | Create a method which wraps the reactor method name. The 
new method issues a deprecation warning and calls the original. | 
| Method | _deprecateReactor | Deprecate iterate,crashandstoponreactor. That is, each method is wrapped in a function that
issues a deprecation warning, then calls the original. | 
| Method | _undeprecateReactor | Restore the deprecated reactor methods. Undoes what _deprecateReactordid. | 
| Method | _runCleanups | Run the cleanups added with addCleanupin order. | 
| Method | _runFixturesAndTest | Really run setUp, the test method, andtearDown.  Any of these may returndefer.Deferreds.
After they complete, do some reactor cleanup. | 
| Method | _wait | Take a Deferred that only ever callbacks. Block until it happens. | 
Inherited from SynchronousTestCase (via TestCase):
| Instance Variable | failureException | An exception class, defaulting to FailTest. If the test method
raises this exception, it will be reported as a failure, rather than an 
exception. All of the assertion methods raise this if the assertion fails. | 
| Instance Variable | skip | Noneor a string explaining why this test is to be skipped. If defined, the test
will not be run. Instead, it will be reported to the result object as 
'skipped' (if theTestResultsupports skipping). | 
| Instance Variable | todo | None,
a string or a tuple of(errors, reason)whereerrorsis either an exception class or an iterable of 
exception classes, andreasonis a string. SeeTodoormakeTodofor 
more information. | 
| Instance Variable | suppress | Noneor a list of tuples of(args, kwargs)to be passed towarnings.filterwarnings. Use these to suppress warnings raised
in a test. Useful for testing deprecated code. See alsoutil.suppress. | 
| Method | __eq__ | No summary | 
| Method | __ne__ | Undocumented | 
| Method | __hash__ | Undocumented | 
| Method | shortDescription | Undocumented | 
| Method | getSkip | No summary | 
| Method | getTodo | No summary | 
| Method | runTest | If no methodNameargument is passed to the constructor,runwill treat this method as the thing with the actual test inside. | 
| Method | run | Run the test case, storing the results in result. | 
| Method | patch | Monkey patch an object for the duration of the test. | 
| Method | flushLoggedErrors | Remove stored errors received from the log. | 
| Method | flushWarnings | Remove stored warnings from the list of captured warnings and return them. | 
| Method | callDeprecated | Call a function that should have been deprecated at a specific version and in favor of a specific alternative, and assert that it was thusly deprecated. | 
| Method | mktemp | Create a new path name which can be used for a new file or directory. | 
| Method | _getSuppress | No summary | 
| Method | _getSkipReason | Return the reason to use for skipping a test method. | 
| Method | _installObserver | Undocumented | 
| Method | _removeObserver | Undocumented | 
Inherited from _Assertions (via TestCase, SynchronousTestCase):
| Method | fail | Absolutely fail the test. Do not pass go, do not collect $200. | 
| Method | assertFalse | Fail the test if conditionevaluates to True. | 
| Method | assertTrue | Fail the test if conditionevaluates to False. | 
| Method | assertRaises | Fail the test unless calling the function fwith the givenargsandkwargsraisesexception. 
The failure will report the traceback and call stack of the unexpected 
exception. | 
| Method | assertEqual | Fail the test if firstandsecondare not 
equal. | 
| Method | assertIs | Fail the test if firstis notsecond.  This is
an obect-identity-equality test, not an object equality (i.e.__eq__) test. | 
| Method | assertIsNot | Fail the test if firstissecond.  This is an 
obect-identity-equality test, not an object equality (i.e.__eq__) test. | 
| Method | assertNotEqual | Fail the test if first==second. | 
| Method | assertIn | Fail the test if containeeis not found incontainer. | 
| Method | assertNotIn | Fail the test if containeeis found incontainer. | 
| Method | assertNotAlmostEqual | Fail if the two objects are equal as determined by their difference rounded to the given number of decimal places (default 7) and comparing to zero. | 
| Method | assertAlmostEqual | Fail if the two objects are unequal as determined by their difference rounded to the given number of decimal places (default 7) and comparing to zero. | 
| Method | assertApproximates | Fail if first-second>tolerance | 
| Method | assertSubstring | Fail if substringdoes not exist withinastring. | 
| Method | assertNotSubstring | Fail if astringcontainssubstring. | 
| Method | assertWarns | Fail if the given function doesn't generate the specified warning when called. It calls the function, checks the warning, and forwards the result of the function if everything is fine. | 
| Method | assertIsInstance | Fail if instanceis not an instance of the given class or 
of one of the given classes. | 
| Method | assertNotIsInstance | Fail if instanceis an instance of the given class or of 
one of the given classes. | 
| Method | successResultOf | Return the current success result of deferredor raiseself.failureException. | 
| Method | failureResultOf | Return the current failure result of deferredor raiseself.failureException. | 
| Method | assertNoResult | Assert that deferreddoes not have a result at this 
point. | 
| Method | assertRegex | Fail the test if a regexpsearch oftextfails. | 
HTTP11ClientProtocol.request
accepts a Request and 
calls its writeTo method with its own transport.
The second time HTTP11ClientProtocol.request
is called, it returns a Deferred which
immediately fires with a Failure 
wrapping a RequestNotSent
exception.
HTTP11ClientProtocol.request
returns a Deferred which
immediately fires with a Failure 
wrapping a RequestNotSent
if called after the protocol has been disconnected.
If the Deferred 
returned by Request.writeTo
fires with a Failure, HTTP11ClientProtocol.request
disconnects its transport and returns a Deferred which
fires with a Failure of RequestGenerationFailed
wrapping the underlying failure.
If Request.writeTo
raises an exception, HTTP11ClientProtocol.request
returns a Deferred which
fires with a Failure of RequestGenerationFailed
wrapping that exception.
If HTTP11ClientProtocol's
transport is disconnected before the Deferred 
returned by Request.writeTo
fires, the Deferred 
returned by HTTP11ClientProtocol.request
fires with a Failure of RequestTransmissionFailed
wrapping the underlying failure.
If the request passed to HTTP11ClientProtocol
finishes generation successfully after the HTTP11ClientProtocol's
connection has been lost, nothing happens.
If the request passed to HTTP11ClientProtocol
finished generation with an error after the HTTP11ClientProtocol's
connection has been lost, nothing happens.
If the request passed to HTTP11ClientProtocol
finished generation with an error after the HTTP11ClientProtocol's
connection has been lost, an error is logged that gives a non-confusing 
hint to user on what went wrong.
When a response is delivered to HTTP11ClientProtocol,
the Deferred 
previously returned by the request method is called back with 
a Response 
instance and the connection is closed.
The headers included in a response delivered to HTTP11ClientProtocol
are included on the Response instance 
passed to the callback returned by the request method.
If response bytes are delivered to HTTP11ClientProtocol
before the Deferred 
returned by Request.writeTo
fires, those response bytes are parsed as part of the response.
The connection is also closed, because we're in a confusing state, and 
therefore the quiescentCallback isn't called.
The connection is closed when the server respond with a header which is above the maximum line.
If response bytes are delivered to HTTP11ClientProtocol
before the request completes, calling connectionLost on the 
protocol will result in protocol being moved to 
'CONNECTION_LOST' state.
The deliverBody method of the response object with which 
the Deferred 
returned by HTTP11ClientProtocol.request
fires can be used to get the body of the response.
If the length of the response body is unknown, the protocol passed to 
the response's deliverBody method has its 
connectionLost method called with a Failure 
wrapping a PotentialDataLoss
exception.
If the final chunk has not been received when the connection is lost 
(for any reason), the protocol passed to deliverBody has its 
connectionLost method called with a Failure 
wrapping the exception for that reason.
If the parser HTTP11ClientProtocol
delivers bytes to in dataReceived raises an exception, the 
exception is wrapped in a Failure and 
passed to the parser's connectionLost and then the HTTP11ClientProtocol's
transport is disconnected.
When the HTTP response parser is disconnected, the TransportProxyProducer
which was connected to it as a transport is stopped.
HTTP11ClientProtocol.abort
will tell the transport to close its connection when it is invoked, and 
returns a Deferred that fires when the connection is lost.
HTTP11ClientProtocol.abort
called after the connection is lost returns a Deferred that 
fires immediately.
The Deferred returned by HTTP11ClientProtocol.request
will fire with a ResponseFailed
failure containing a ConnectionAborted
exception, if the connection was aborted before all response headers have 
been received.
When the connection is aborted after the response headers have been 
received and the Response has been 
made available to application code, the response body protocol's 
connectionLost method will be invoked with a ResponseFailed
failure containing a ConnectionAborted
exception.
If after a response is done the {HTTP11ClientProtocol} stays open and 
returns to QUIESCENT state, all per-request state is reset and the 
quiescentCallback is called with the protocol instance.
This is useful for implementing a persistent connection pool.
The quiescentCallback is called *before* the 
response-receiving protocol's connectionLost, so that new 
requests triggered by end of first request can re-use a persistent 
connection.
The quiescentCallback passed to HTTP11ClientProtocol
will only be invoked once that protocol is in a state similar to its 
initial state. One of the aspects of this initial state is the 
producer-state of its transport; an HTTP11ClientProtocol
begins with a transport that is producing, i.e. not 
pauseProducing'd.
Therefore, when quiescentCallback is invoked the protocol 
will still be producing.
The quiescentCallback is called before the request Deferred
fires, in cases where the response has no body.
If after a response is done the {HTTP11ClientProtocol} returns a 
Connection: close header in the response, the 
quiescentCallback is not called and the connection is 
lost.
If the request was non-persistent (i.e. sent Connection: 
close), the quiescentCallback is not called and the 
connection is lost.
If quiescentCallback throws an exception, the error is 
logged and protocol is disconnected.
The Deferred 
returned by HTTP11ClientProtocol.request
will fire with a ResponseNeverReceived
failure containing a CancelledError
exception if the request was cancelled before any response headers were 
received.
The Deferred 
returned by HTTP11ClientProtocol.request
will fire with a ResponseFailed
failure containing a CancelledError
exception if the request was cancelled before all response headers were 
received.
The Deferred 
returned by HTTP11ClientProtocol.request
will fire with a RequestGenerationFailed
failure containing a CancelledError
exception if the request was cancelled before a bodyProducer 
has finished producing.
The Deferred 
returned by HTTP11ClientProtocol.request
will fire with a RequestGenerationFailed
failure containing a CancelledError
exception if the request was cancelled before a bodyProducer 
with an explicit length has finished producing.
The Deferred 
returned by HTTP11ClientProtocol.request
will fire with a RequestGenerationFailed
failure containing a CancelledError
exception if the request was cancelled before a bodyProducer 
with UNKNOWN_LENGTH has finished producing.