twisted.web.test.test_newclient.HTTPClientParserTests(TestCase) class documentationtwisted.web.test.test_newclient
(View In Hierarchy)
Tests for HTTPClientParser
which is responsible for parsing HTTP response messages.
| Method | test_parseVersion | HTTPClientParser.parseVersionparses a status line into its three components. | 
| Method | test_parseBadVersion | HTTPClientParser.parseVersionraisesValueErrorwhen passed an unparsable version. | 
| Method | test_responseStatusParsing | HTTPClientParser.statusReceivedparses the version, code, and phrase from the status line and stores them 
on the response object. | 
| Method | test_responseStatusWithoutPhrase | HTTPClientParser.statusReceivedcan parse a status line without a phrase (though such lines are a violation
of RFC 7230, section 3.1.2; nevertheless some broken servers omit the 
phrase). | 
| Method | test_badResponseStatus | HTTPClientParser.statusReceivedraisesParseErrorif it is called with a status line which cannot be parsed. | 
| Method | test_headResponse | If the response is to a HEAD request, no body is expected, the body callback is not invoked, and the Content-Length header is passed to the header callback. | 
| Method | test_noContentResponse | If the response code is NO CONTENT (204), no body is expected and the body callback is not invoked. | 
| Method | test_notModifiedResponse | If the response code is NOT MODIFIED (304), no body is expected and the body callback is not invoked. | 
| Method | test_responseHeaders | The response headers are added to the response object's headersHeadersinstance. | 
| Method | test_responseHeadersMultiline | The multi-line response headers are folded and added to the response 
object's headersHeadersinstance. | 
| Method | test_connectionHeaders | The connection control headers are added to the parser's connHeadersHeadersinstance. | 
| Method | test_headResponseContentLengthEntityHeader | If a HEAD request is made, the Content-Length header in the response is added to the response headers, not the connection control headers. | 
| Method | test_contentLength | If a response includes a body with a length given by the 
Content-Length header, the bytes which make up the body are passed 
to the _bodyDataReceivedcallback on theHTTPParser. | 
| Method | test_zeroContentLength | If a response includes a Content-Length header indicating zero 
bytes in the response, Response.lengthis set accordingly and 
no data is delivered toResponse._bodyDataReceived. | 
| Method | test_multipleContentLengthHeaders | If a response includes multiple Content-Length headers, HTTPClientParser.dataReceivedraisesValueErrorto indicate that the response is invalid and the transport is now 
unusable. | 
| Method | test_extraBytesPassedBack | If extra bytes are received past the end of a response, they are passed to the finish callback. | 
| Method | test_extraBytesPassedBackHEAD | If extra bytes are received past the end of the headers of a response to a HEAD request, they are passed to the finish callback. | 
| Method | test_chunkedResponseBody | If the response headers indicate the response body is encoded with the 
chunked transfer encoding, the body is decoded according to that 
transfer encoding before being passed to Response._bodyDataReceived. | 
| Method | test_unknownContentLength | If a response does not include a Transfer-Encoding or a Content-Length, the end of response body is indicated by the connection being closed. | 
| Method | test_contentLengthAndTransferEncoding | According to RFC 2616, section 4.4, point 3, if Content-Length and Transfer-Encoding: chunked are present, Content-Length MUST be ignored | 
| Method | test_connectionLostBeforeBody | If HTTPClientParser.connectionLostis called before the headers are finished, the_responseDeferredis fired with theFailurepassed 
toconnectionLost. | 
| Method | test_connectionLostWithError | If one of the Responsemethods 
called byHTTPClientParser.connectionLostraises an exception, the exception is logged and not re-raised. | 
| Method | test_noResponseAtAll | If no response at all was received and the connection is lost, the 
resulting error is ResponseNeverReceived. | 
| Method | test_someResponseButNotAll | If a partial response was received and the connection is lost, the 
resulting error is ResponseFailed,
but notResponseNeverReceived. | 
| Method | test_1XXResponseIsSwallowed | If a response in the 1XX range is received it just gets swallowed and the parser resets itself. | 
| Method | test_1XXFollowedByFinalResponseOnlyEmitsFinal | When a 1XX response is swallowed, the final response that follows it is the only one that gets sent to the application. | 
| Method | test_multiple1XXResponsesAreIgnored | It is acceptable for multiple 1XX responses to come through, all of which get ignored. | 
| Method | test_ignored1XXResponseCausesLog | When a 1XX response is ignored, Twisted emits a log. | 
| Method | _noBodyTest | Assert that HTTPClientParserparses the givenresponsetorequest, resulting 
in a response with no body and no extra bytes and leaving the transport in 
the producing state. | 
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. | 
HTTPClientParser.parseVersion
parses a status line into its three components.
HTTPClientParser.parseVersion
raises ValueError
when passed an unparsable version.
HTTPClientParser.statusReceived
parses the version, code, and phrase from the status line and stores them 
on the response object.
HTTPClientParser.statusReceived
can parse a status line without a phrase (though such lines are a violation
of RFC 7230, section 3.1.2; nevertheless some broken servers omit the 
phrase).
HTTPClientParser.statusReceived
raises ParseError 
if it is called with a status line which cannot be parsed.
Assert that HTTPClientParser
parses the given response to request, resulting 
in a response with no body and no extra bytes and leaving the transport in 
the producing state.
| Parameters | request | A Requestinstance which might have caused a server to return the given response. | 
| status | A string giving the status line of the response to be parsed. | |
| response | A string giving the response to be parsed. | |
| Returns | A dictof headers from the response. | |
If the response is to a HEAD request, no body is expected, the body callback is not invoked, and the Content-Length header is passed to the header callback.
If the response code is NO CONTENT (204), no body is expected and the body callback is not invoked.
If the response code is NOT MODIFIED (304), no body is expected and the body callback is not invoked.
The response headers are added to the response object's 
headers Headers 
instance.
The multi-line response headers are folded and added to the response 
object's headers Headers 
instance.
The connection control headers are added to the parser's 
connHeaders Headers 
instance.
If a HEAD request is made, the Content-Length header in the response is added to the response headers, not the connection control headers.
If a response includes a body with a length given by the 
Content-Length header, the bytes which make up the body are passed 
to the _bodyDataReceived callback on the HTTPParser.
If a response includes a Content-Length header indicating zero 
bytes in the response, Response.length is set accordingly and 
no data is delivered to Response._bodyDataReceived.
If a response includes multiple Content-Length headers, HTTPClientParser.dataReceived
raises ValueError
to indicate that the response is invalid and the transport is now 
unusable.
If extra bytes are received past the end of a response, they are passed to the finish callback.
If extra bytes are received past the end of the headers of a response to a HEAD request, they are passed to the finish callback.
If the response headers indicate the response body is encoded with the 
chunked transfer encoding, the body is decoded according to that 
transfer encoding before being passed to Response._bodyDataReceived.
If a response does not include a Transfer-Encoding or a Content-Length, the end of response body is indicated by the connection being closed.
According to RFC 2616, section 4.4, point 3, if Content-Length and Transfer-Encoding: chunked are present, Content-Length MUST be ignored
If HTTPClientParser.connectionLost
is called before the headers are finished, the 
_responseDeferred is fired with the Failure passed 
to connectionLost.
If one of the Response methods 
called by HTTPClientParser.connectionLost
raises an exception, the exception is logged and not re-raised.
If no response at all was received and the connection is lost, the 
resulting error is ResponseNeverReceived.
If a partial response was received and the connection is lost, the 
resulting error is ResponseFailed,
but not ResponseNeverReceived.
If a response in the 1XX range is received it just gets swallowed and the parser resets itself.
When a 1XX response is swallowed, the final response that follows it is the only one that gets sent to the application.