summaryrefslogtreecommitdiff
path: root/tests/test_headers.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_headers.py')
-rw-r--r--tests/test_headers.py100
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')