'According to PEP-3333, each header passed to the I{start_response}
callable should be a tuple:
The response_headers argument is a list of (header_name,
header_value) tuples
However, for bug-compatibility, any 2 element sequence is also
accepted. In both Python 2 and Python 3, only a warning is issued when
a sequence other than a tuple is encountered.'

def test_headersShouldEachBeTuple(self):

    def application(environ, startResponse):
        startResponse('200    OK', [['not', 'tuple']])
        return iter(())
    (request, result) = self.prepareRequest(application)
    with warnings.catch_warnings(record=True) as caught:
        request.requestReceived()
        result = self.successResultOf(result)
    self.assertEqual(1, len(caught))
    self.assertEqual(RuntimeWarning, caught[0].category)
    self.assertEqual("header    should    be    a    (str,    str)    tuple,    not    ['not',    'tuple']    (list)", str(caught[0].message))
