'The Request.headers dictionary is not a documented interface.  It
should stay that way, because the complete set of headers are only
accessible through the .get_header(), .has_header(), .header_items()
interface.  However, .headers pre-dates those methods, and so real code
will be using the dictionary.
The introduction in 2.4 of those methods was a mistake for the same
reason: code that previously saw all (urllib2 user)-provided headers in
.headers now sees only a subset.'

def test_request_headers_dict(self):

    url = 'http://example.com'
    self.assertEqual(Request(url, headers={'Spam-eggs': 'blah'}).headers['Spam-eggs'], 'blah')
    self.assertEqual(Request(url, headers={'spam-EggS': 'blah'}).headers['Spam-eggs'], 'blah')
