diff options
Diffstat (limited to 'tests/test_headers.py')
-rw-r--r-- | tests/test_headers.py | 100 |
1 files changed, 83 insertions, 17 deletions
diff --git a/tests/test_headers.py b/tests/test_headers.py index e7c40dd..8bcf2d6 100644 --- a/tests/test_headers.py +++ b/tests/test_headers.py @@ -1,21 +1,24 @@ -# -*- coding: UTF-8 -*- +# -*- coding: utf-8 -*- from webob import headers -from nose.tools import ok_, assert_raises, eq_ as eq +from nose.tools import ok_, assert_raises, eq_ class TestError(Exception): pass -def test_raise_keyerror(): - """Deleting a missing key from ResponseHeaders should raise a KeyError - Deleting a present key should not raise an error at all - """ +def test_ResponseHeaders_delitem_notpresent(): + """Deleting a missing key from ResponseHeaders should raise a KeyError""" d = headers.ResponseHeaders() assert_raises(KeyError, d.__delitem__, 'b') + +def test_ResponseHeaders_delitem_present(): + """ + Deleting a present key should not raise an error at all + """ d = headers.ResponseHeaders(a=1) del d['a'] ok_('a' not in d) -def test_set_default(): +def test_ResponseHeaders_setdefault(): """Testing set_default for ResponseHeaders""" d = headers.ResponseHeaders(a=1) res = d.setdefault('b', 1) @@ -25,23 +28,86 @@ def test_set_default(): res = d.setdefault('B', 10) assert res == d['b'] == d['B'] == 1 -def test_pop(): +def test_ResponseHeader_pop(): """Testing if pop return TypeError when more than len(*args)>1 plus other assorted tests""" d = headers.ResponseHeaders(a=1, b=2, c=3, d=4) assert_raises(TypeError, d.pop, 'a', 'z', 'y') - assert d.pop('a') == 1 - assert 'a' not in d - assert d.pop('B') == 2 - assert 'b' not in d - assert d.pop('c', 'u') == 3 - assert 'c' not in d - assert d.pop('e', 'u') =='u' - assert 'e' not in d + eq_(d.pop('a'), 1) + ok_('a' not in d) + eq_(d.pop('B'), 2) + ok_('b' not in d) + eq_(d.pop('c', 'u'), 3) + ok_('c' not in d) + eq_(d.pop('e', 'u'), 'u') + ok_('e' not in d) assert_raises(KeyError, d.pop, 'z') -def test_delitem_environheaders(): +def test_ResponseHeaders_getitem_miss(): + d = headers.ResponseHeaders() + assert_raises(KeyError, d.__getitem__, 'a') + +def test_ResponseHeaders_getall(): + d = headers.ResponseHeaders() + d.add('a', 1) + d.add('a', 2) + result = d.getall('a') + eq_(result, [1,2]) + +def test_ResponseHeaders_mixed(): + d = headers.ResponseHeaders() + d.add('a', 1) + d.add('a', 2) + d['b'] = 1 + result = d.mixed() + eq_(result, {'a':[1,2], 'b':1}) + +def test_ResponseHeaders_setitem_scalar_replaces_seq(): + d = headers.ResponseHeaders() + d.add('a', 2) + d['a'] = 1 + result = d.getall('a') + eq_(result, [1]) + +def test_ResponseHeaders_contains(): + d = headers.ResponseHeaders() + d['a'] = 1 + ok_('a' in d) + ok_(not 'b' in d) + +def test_EnvironHeaders_delitem(): d = headers.EnvironHeaders({'CONTENT_LENGTH': '10'}) del d['CONTENT-LENGTH'] assert not d assert_raises(KeyError, d.__delitem__, 'CONTENT-LENGTH') + +def test_EnvironHeaders_getitem(): + d = headers.EnvironHeaders({'CONTENT_LENGTH': '10'}) + eq_(d['CONTENT-LENGTH'], '10') + +def test_EnvironHeaders_setitem(): + d = headers.EnvironHeaders({}) + d['abc'] = '10' + eq_(d['abc'], '10') + +def test_EnvironHeaders_contains(): + d = headers.EnvironHeaders({}) + d['a'] = '10' + ok_('a' in d) + ok_(not 'b' in d) + +def test__trans_key_not_basestring(): + result = headers._trans_key(None) + eq_(result, None) + +def test__trans_key_not_a_header(): + result = headers._trans_key('') + eq_(result, None) + +def test__trans_key_key2header(): + result = headers._trans_key('CONTENT_TYPE') + eq_(result, 'Content-Type') + +def test__trans_key_httpheader(): + result = headers._trans_key('HTTP_FOO_BAR') + eq_(result, 'Foo-Bar') |