Fix BytesWarning with -bb in wsgiref.headers.Headers.

This commit is contained in:
Antoine Pitrou 2009-01-03 20:28:05 +00:00
parent 35b7e837ab
commit a9ecbdade7
2 changed files with 8 additions and 3 deletions

View File

@ -426,15 +426,20 @@ class HeaderTests(TestCase):
h[b"Foo"] = bytes(b"bar") h[b"Foo"] = bytes(b"bar")
self.assertEqual("bar", h.get("Foo")) self.assertEqual("bar", h.get("Foo"))
self.assertEqual("bar", h.get(b"Foo"))
h.setdefault(b"Bar", b"foo") h.setdefault(b"Bar", b"foo")
self.assertEqual("foo", h.get("Bar")) self.assertEqual("foo", h.get("Bar"))
self.assertEqual("foo", h.get(b"Bar"))
h.add_header(b'content-disposition', b'attachment', h.add_header(b'content-disposition', b'attachment',
filename=b'bud.gif') filename=b'bud.gif')
self.assertEqual('attachment; filename="bud.gif"', self.assertEqual('attachment; filename="bud.gif"',
h.get("content-disposition")) h.get("content-disposition"))
del h['content-disposition']
self.assert_(b'content-disposition' not in h)
class ErrorHandler(BaseCGIHandler): class ErrorHandler(BaseCGIHandler):
"""Simple handler subclass for testing BaseHandler""" """Simple handler subclass for testing BaseHandler"""

View File

@ -73,7 +73,7 @@ class Headers:
Does *not* raise an exception if the header is missing. Does *not* raise an exception if the header is missing.
""" """
name = name.lower() name = self._convert_string_type(name.lower())
self._headers[:] = [kv for kv in self._headers if kv[0].lower() != name] self._headers[:] = [kv for kv in self._headers if kv[0].lower() != name]
def __getitem__(self,name): def __getitem__(self,name):
@ -104,13 +104,13 @@ class Headers:
fields deleted and re-inserted are always appended to the header list. fields deleted and re-inserted are always appended to the header list.
If no fields exist with the given name, returns an empty list. If no fields exist with the given name, returns an empty list.
""" """
name = name.lower() name = self._convert_string_type(name.lower())
return [kv[1] for kv in self._headers if kv[0].lower()==name] return [kv[1] for kv in self._headers if kv[0].lower()==name]
def get(self,name,default=None): def get(self,name,default=None):
"""Get the first header value for 'name', or return 'default'""" """Get the first header value for 'name', or return 'default'"""
name = name.lower() name = self._convert_string_type(name.lower())
for k,v in self._headers: for k,v in self._headers:
if k.lower()==name: if k.lower()==name:
return v return v