[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