[Web-SIG] wsgiref.validate allows wsgi.input.read() with no argument
Ian Bicking
ianb at colorstudy.com
Fri Dec 12 18:58:48 CET 2008
Graham Dumpleton wrote:
> Just noticed that although WSGI PEP doesn't specifically mention that
> argument to read() on wsgi.input is optional, wsgiref.validate allows
> calling read() with no argument.
>
>>From wsgiref.validate:
>
> """
> * That wsgi.input is used properly:
>
> - .read() is called with zero or one argument
>
> class InputWrapper:
>
> def read(self, *args):
> assert_(len(args) <= 1)
> v = self.input.read(*args)
> assert_(type(v) is type(""))
> return v
> """
>
> Of course, the issue is still that WSGI PEP says:
>
> """The server is not required to read past the client's specified
> Content-Length, and ***is allowed to simulate an end-of-file condition
> if the application attempts to read past that point***."""
An application that relies on the server to simulate end-of-file will be
a broken application on some servers. This is not an uncommon problem.
Therefore the validator tests for this case; if you want an
application that actually works consistently, you shouldn't do
environ['wsgi.input'].read().
--
Ian Bicking : ianb at colorstudy.com : http://blog.ianbicking.org
More information about the Web-SIG
mailing list