Fixed some type checks in the development server. Fixed #6063.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@6780 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
8de4ed9c8c
commit
4262765649
|
@ -8,7 +8,6 @@ been reviewed for security issues. Don't use it for production use.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
|
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
|
||||||
from types import ListType, StringType
|
|
||||||
import mimetypes
|
import mimetypes
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
|
@ -72,7 +71,7 @@ def _formatparam(param, value=None, quote=1):
|
||||||
class Headers(object):
|
class Headers(object):
|
||||||
"""Manage a collection of HTTP response headers"""
|
"""Manage a collection of HTTP response headers"""
|
||||||
def __init__(self,headers):
|
def __init__(self,headers):
|
||||||
if type(headers) is not ListType:
|
if not isinstance(headers, list):
|
||||||
raise TypeError("Headers must be a list of name/value tuples")
|
raise TypeError("Headers must be a list of name/value tuples")
|
||||||
self._headers = headers
|
self._headers = headers
|
||||||
|
|
||||||
|
@ -327,7 +326,7 @@ class ServerHandler(object):
|
||||||
"""Compute Content-Length or switch to chunked encoding if possible"""
|
"""Compute Content-Length or switch to chunked encoding if possible"""
|
||||||
try:
|
try:
|
||||||
blocks = len(self.result)
|
blocks = len(self.result)
|
||||||
except (TypeError,AttributeError,NotImplementedError):
|
except (TypeError, AttributeError, NotImplementedError):
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
if blocks==1:
|
if blocks==1:
|
||||||
|
@ -356,14 +355,14 @@ class ServerHandler(object):
|
||||||
elif self.headers is not None:
|
elif self.headers is not None:
|
||||||
raise AssertionError("Headers already set!")
|
raise AssertionError("Headers already set!")
|
||||||
|
|
||||||
assert type(status) is StringType,"Status must be a string"
|
assert isinstance(status, str),"Status must be a string"
|
||||||
assert len(status)>=4,"Status must be at least 4 characters"
|
assert len(status)>=4,"Status must be at least 4 characters"
|
||||||
assert int(status[:3]),"Status message must begin w/3-digit code"
|
assert int(status[:3]),"Status message must begin w/3-digit code"
|
||||||
assert status[3]==" ", "Status message must have a space after code"
|
assert status[3]==" ", "Status message must have a space after code"
|
||||||
if __debug__:
|
if __debug__:
|
||||||
for name,val in headers:
|
for name,val in headers:
|
||||||
assert type(name) is StringType,"Header names must be strings"
|
assert isinstance(name, str),"Header names must be strings"
|
||||||
assert type(val) is StringType,"Header values must be strings"
|
assert isinstance(val, str),"Header values must be strings"
|
||||||
assert not is_hop_by_hop(name),"Hop-by-hop headers not allowed"
|
assert not is_hop_by_hop(name),"Hop-by-hop headers not allowed"
|
||||||
self.status = status
|
self.status = status
|
||||||
self.headers = self.headers_class(headers)
|
self.headers = self.headers_class(headers)
|
||||||
|
@ -386,7 +385,7 @@ class ServerHandler(object):
|
||||||
def write(self, data):
|
def write(self, data):
|
||||||
"""'write()' callable as specified by PEP 333"""
|
"""'write()' callable as specified by PEP 333"""
|
||||||
|
|
||||||
assert type(data) is StringType,"write() argument must be string"
|
assert isinstance(data, str), "write() argument must be string"
|
||||||
|
|
||||||
if not self.status:
|
if not self.status:
|
||||||
raise AssertionError("write() before start_response()")
|
raise AssertionError("write() before start_response()")
|
||||||
|
|
Loading…
Reference in New Issue