def test_make_key_lowercase(self): cid = CaseInsensitiveDict({ 'Accept': 'application/json', 'user-Agent': 'requests', }) keyset = frozenset(['accept', 'user-agent']) self.assertEqual(frozenset(i[0] for i in cid.items()), keyset) self.assertEqual(frozenset(cid.keys()), keyset) self.assertEqual(frozenset(cid), keyset)
def test_setitem(self): """__setitem__ should behave case-insensitively.""" cid = CaseInsensitiveDict() cid['spam'] = 'oneval' cid['Spam'] = 'twoval' cid['sPAM'] = 'redval' cid['SPAM'] = 'blueval' self.assertEqual(cid['spam'], 'blueval') self.assertEqual(cid['SPAM'], 'blueval') self.assertEqual(list(cid.keys()), ['spam'])
def test_preserve_last_key_case(self): cid = CaseInsensitiveDict({ 'Accept': 'application/json', 'user-Agent': 'requests', }) cid.update({'ACCEPT': 'application/json'}) cid['USER-AGENT'] = 'requests' keyset = frozenset(['accept', 'user-agent']) self.assertEqual(frozenset(i[0] for i in cid.items()), keyset) self.assertEqual(frozenset(cid.keys()), keyset) self.assertEqual(frozenset(cid), keyset)