Django

Code

Show
Ignore:
Timestamp:
12/17/07 02:05:51 (1 year ago)
Author:
mtredinnick
Message:

Fixed #5956 -- Added a better error description for non-ASCII HTTP headers. Patch from jvloothuis.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/tests/regressiontests/httpwrappers/tests.py

    r6396 r6927  
    392392[u'bar', u'\ufffd'] 
    393393 
     394 
     395######################################  
     396# HttpResponse with Unicode headers  #  
     397######################################  
     398  
     399>>> r = HttpResponse()  
     400  
     401If we insert a unicode value it will be converted to an ascii 
     402string. This makes sure we comply with the HTTP specifications. 
     403  
     404>>> r['value'] = u'test value'  
     405>>> isinstance(r['value'], str)  
     406True 
     407 
     408An error is raised When a unicode object with non-ascii is assigned. 
     409 
     410>>> r['value'] = u't\xebst value' # doctest:+ELLIPSIS 
     411Traceback (most recent call last): 
     412... 
     413UnicodeEncodeError: ..., HTTP response headers must be in US-ASCII format 
     414  
     415The response also converts unicode keys to strings.  
     416  
     417>>> r[u'test'] = 'testing key'  
     418>>> list(sorted(r.items()))[1] 
     419('test', 'testing key') 
     420 
     421It will also raise errors for keys with non-ascii data. 
     422 
     423>>> r[u't\xebst'] = 'testing key'  # doctest:+ELLIPSIS 
     424Traceback (most recent call last): 
     425... 
     426UnicodeEncodeError: ..., HTTP response headers must be in US-ASCII format 
     427  
    394428""" 
    395429 
    396 from django.http import QueryDict 
     430from django.http import QueryDict, HttpResponse 
    397431 
    398432if __name__ == "__main__":