Beispiel #1
0
 def test_constructor_with_list(self):
     self.h = ResponseHeaders([('Foo', 'bar')])
     self.asserth([('Foo', 'bar')])
Beispiel #2
0
class TestResponseHeaders(unittest.TestCase):
    def setUp(self):
        self.h = ResponseHeaders()
        self.h['Foo'] = 'bar'
        self.e = ResponseHeaders()

    def asserth(self, val):
        self.assertEqual(sorted(list(self.h.iteritems())), sorted(val))

    def asserte(self, val):
        self.assertEqual(sorted(list(self.e.iteritems())), sorted(val))

    def test_constructor(self):
        self.asserte([])

    def test_constructor_with_list(self):
        self.h = ResponseHeaders([('Foo', 'bar')])
        self.asserth([('Foo', 'bar')])

    def test_getting_and_setting(self):
        # Test with str (default, set above)
        self.assertEqual(self.h['foo'], b'bar')
        self.asserth([('Foo', 'bar')])

        # Test with bytes (really only useful on Py3)
        self.h['foo'] = b'bar'
        self.assertEqual(self.h['foo'], b'bar')
        self.asserth([('Foo', 'bar')])

    def test_normalizing(self):
        self.e['A-header-NAME'] = 'foo'

        for n in ['A-Header-Name', 'a-header-name', 'A-HEADER-NAME']:
            self.assertIn(n, self.e)

    def test_will_check_invalid_name(self):
        with self.assertRaises(ValueError):
            self.h['Invalid\r\nName'] = 'foo'

    def test_will_check_invalid_value(self):
        with self.assertRaises(ValueError):
            self.h['Header'] = 'Invalid\r\nVal'

    def test_multiple_headers(self):
        self.e.add('Foo', 'bar')
        self.e.add('Foo', 'asdf')
        self.asserte([
            ('Foo', 'bar'),
            ('Foo', 'asdf'),
        ])

        self.e['Foo'] = 'baz'
        self.asserte([('Foo', 'baz')])

    def test_deleting(self):
        del self.h['Foo']

        self.asserth([])

        with self.assertRaises(KeyError):
            del self.h['Foo']

    def test_len(self):
        self.assertEqual(len(self.h), 1)

    def test_iter(self):
        self.assertEqual(list(iter(self.h)), [
            ('Foo', 'bar')
        ])

    def test_contains(self):
        self.assertTrue('Foo' in self.h)
        self.assertFalse('Foo' in self.e)

    def test_clear(self):
        self.asserth([('Foo', 'bar')])
        self.h.clear()
        self.asserth([])

    def test_copy(self):
        self.assertEqual(self.h.copy(), self.h)

    def test_copy_module(self):
        c = copy.copy(self.h)
        self.assertTrue(isinstance(c, ResponseHeaders))
        self.assertEqual(c, self.h)
        self.assertIsNot(c, self.h)

    def test_iteration(self):
        self.assertEqual(list(self.h.iteritems()),
                         [('Foo', 'bar')]
                         )

        self.assertEqual(list(self.h.iterkeys()), ['Foo'])
        self.assertEqual(list(self.h.itervalues()), ['bar'])

    def test_get_all(self):
        self.h.add('Foo', 'baz')
        self.h.add('Foo', 'asdf')

        self.assertEqual(self.h.get_all('Foo'), [
            ('Foo', 'bar'),
            ('Foo', 'baz'),
            ('Foo', 'asdf'),
        ])

    def test_extend(self):
        self.e.extend({'Foo': 'bar', 'Header': ['one', 'two']})
        self.asserte([
            ('Foo', 'bar'),
            ('Header', 'one'),
            ('Header', 'two'),
        ])

    def test_extend_with_other_iterable(self):
        def foo():
            for i in range(3):
                yield "Header%s" % i, str(i)

        self.e.extend(foo())
        self.asserte([
            ('Header0', '0'),
            ('Header1', '1'),
            ('Header2', '2'),
        ])

    def test_remove(self):
        self.assertTrue(self.h.remove('Foo'))
        self.assertFalse(self.h.remove('Qqqq'))
Beispiel #3
0
 def setUp(self):
     self.h = ResponseHeaders()
     self.h['Foo'] = 'bar'
     self.e = ResponseHeaders()
Beispiel #4
0
 def _headers_getter(self):
     if self._headers is None:
         self._headers = ResponseHeaders()
     return self._headers
Beispiel #5
0
 def test_constructor_with_list(self):
     self.h = ResponseHeaders([('Foo', 'bar')])
     self.asserth([('Foo', 'bar')])
Beispiel #6
0
 def setUp(self):
     self.h = ResponseHeaders()
     self.h['Foo'] = 'bar'
     self.e = ResponseHeaders()
Beispiel #7
0
class TestResponseHeaders(unittest.TestCase):
    def setUp(self):
        self.h = ResponseHeaders()
        self.h['Foo'] = 'bar'
        self.e = ResponseHeaders()

    def asserth(self, val):
        self.assertEqual(sorted(list(self.h.iteritems())), sorted(val))

    def asserte(self, val):
        self.assertEqual(sorted(list(self.e.iteritems())), sorted(val))

    def test_constructor(self):
        self.asserte([])

    def test_constructor_with_list(self):
        self.h = ResponseHeaders([('Foo', 'bar')])
        self.asserth([('Foo', 'bar')])

    def test_getting_and_setting(self):
        # Test with str (default, set above)
        self.assertEqual(self.h['foo'], b'bar')
        self.asserth([('Foo', 'bar')])

        # Test with bytes (really only useful on Py3)
        self.h['foo'] = b'bar'
        self.assertEqual(self.h['foo'], b'bar')
        self.asserth([('Foo', 'bar')])

    def test_normalizing(self):
        self.e['A-header-NAME'] = 'foo'

        for n in ['A-Header-Name', 'a-header-name', 'A-HEADER-NAME']:
            self.assertIn(n, self.e)

    def test_will_check_invalid_name(self):
        with self.assertRaises(ValueError):
            self.h['Invalid\r\nName'] = 'foo'

    def test_will_check_invalid_value(self):
        with self.assertRaises(ValueError):
            self.h['Header'] = 'Invalid\r\nVal'

    def test_multiple_headers(self):
        self.e.add('Foo', 'bar')
        self.e.add('Foo', 'asdf')
        self.asserte([
            ('Foo', 'bar'),
            ('Foo', 'asdf'),
        ])

        self.e['Foo'] = 'baz'
        self.asserte([('Foo', 'baz')])

    def test_deleting(self):
        del self.h['Foo']

        self.asserth([])

        with self.assertRaises(KeyError):
            del self.h['Foo']

    def test_len(self):
        self.assertEqual(len(self.h), 1)

    def test_iter(self):
        self.assertEqual(list(iter(self.h)), [('Foo', 'bar')])

    def test_contains(self):
        self.assertTrue('Foo' in self.h)
        self.assertFalse('Foo' in self.e)

    def test_clear(self):
        self.asserth([('Foo', 'bar')])
        self.h.clear()
        self.asserth([])

    def test_copy(self):
        self.assertEqual(self.h.copy(), self.h)

    def test_copy_module(self):
        c = copy.copy(self.h)
        self.assertTrue(isinstance(c, ResponseHeaders))
        self.assertEqual(c, self.h)
        self.assertIsNot(c, self.h)

    def test_iteration(self):
        self.assertEqual(list(self.h.iteritems()), [('Foo', 'bar')])

        self.assertEqual(list(self.h.iterkeys()), ['Foo'])
        self.assertEqual(list(self.h.itervalues()), ['bar'])

    def test_get_all(self):
        self.h.add('Foo', 'baz')
        self.h.add('Foo', 'asdf')

        self.assertEqual(self.h.get_all('Foo'), [
            ('Foo', 'bar'),
            ('Foo', 'baz'),
            ('Foo', 'asdf'),
        ])

    def test_extend(self):
        self.e.extend({'Foo': 'bar', 'Header': ['one', 'two']})
        self.asserte([
            ('Foo', 'bar'),
            ('Header', 'one'),
            ('Header', 'two'),
        ])

    def test_extend_with_other_iterable(self):
        def foo():
            for i in range(3):
                yield "Header%s" % i, str(i)

        self.e.extend(foo())
        self.asserte([
            ('Header0', '0'),
            ('Header1', '1'),
            ('Header2', '2'),
        ])

    def test_remove(self):
        self.assertTrue(self.h.remove('Foo'))
        self.assertFalse(self.h.remove('Qqqq'))
Beispiel #8
0
 def __init__(self):
     self.headers = ResponseHeaders()
     super(MixedIn, self).__init__()