def test_set(self): """Set CaseInsensitiveDict values""" d = web.CaseInsensitiveDictionary() for k, v in self.data_list: self.assertFalse(k in d) for k, v in self.data_list: d[k.upper()] = v for k, v in self.data_list: self.assertTrue(k in d) self.assertEqual(d[k], v) self.assertEqual(d[k.lower()], v) d2 = {'Dogs': 'd', 'Elephants': 'e'} for k, v in d2.items(): self.assertFalse(k in d) self.assertTrue(d.get(k) is None) d.update(d2) for k, v in d2.items(): self.assertTrue(k in d) self.assertTrue(k.upper() in d) self.assertEqual(d.get(k), v)
def test_iterators(self): """Iterate CaseInsensitiveDict""" d = web.CaseInsensitiveDictionary(self.data_dict) self.assertEqual(sorted(d.keys()), sorted(self.data_dict.keys())) self.assertEqual(sorted(d.values()), sorted(self.data_dict.values())) for k in d.iterkeys(): self.assertTrue(k in self.data_dict) values = self.data_dict.values() for v in d.itervalues(): self.assertTrue(v in values) for t in d.iteritems(): self.assertTrue(t in self.data_list)
def test_retrieve(self): """Retrieve CaseInsensitiveDict values""" d = web.CaseInsensitiveDictionary(self.data_list) for k, v in self.data_list: self.assertEqual(v, d[k]) self.assertEqual(v, d[k.lower()]) self.assertEqual(v, d[k.upper()]) self.assertEqual(v, d[k.title()]) self.assertEqual(v, d.get(k)) self.assertEqual(v, d.get(k.lower())) self.assertEqual(v, d.get(k.upper())) self.assertEqual(v, d.get(k.title())) self.assertTrue(k in d) self.assertTrue(k.lower() in d) self.assertTrue(k.upper() in d) self.assertTrue(k.title() in d) self.assertTrue(d.get('This is not a key') is None) self.assertFalse('This is not a key' in d)
def test_init_dict(self): """Initialise CaseInsensitiveDict""" d1 = web.CaseInsensitiveDictionary(self.data_list) d2 = web.CaseInsensitiveDictionary(self.data_dict) self.assertEqual(d1, d2)