def test_extract_invalid_keys(self): self.assertEqual( extract_subdict(self.test_dict, ['name', 'invalid']), {'name': 'Sherlock Holmes'} ) with self.assertRaises(KeyError) as cm: extract_subdict(self.test_dict, ['name', 'invalid'], strict=True) self.assertEqual( cm.exception.args[0] if PYTHON3 else cm.exception.message, 'invalid' )
def test_extract_valid_keys(self): self.assertEqual(extract_subdict(self.test_dict), self.test_dict) self.assertEqual( extract_subdict(self.test_dict, ['name', 'books']), { 'name': 'Sherlock Holmes', 'books': [ 'A Study in Scarlet', 'The Sign of the Four', 'The Adventures of Sherlock Holmes' ] } ) self.assertEqual( extract_subdict(self.test_dict, ['name', 'address']), { 'name': 'Sherlock Holmes', 'address': { 'street': {'type': 'Street', 'name': 'Baker'}, 'number': '221B', 'city': 'London', 'country': 'England', }, } ) self.assertEqual( extract_subdict(self.test_dict, ['name', 'address.street', 'address.country']), { 'name': 'Sherlock Holmes', 'address': { 'street': {'type': 'Street', 'name': 'Baker'}, 'country': 'England', }, } ) self.assertEqual( extract_subdict(self.test_dict, ['name', 'address.street.type', 'address.city']), { 'name': 'Sherlock Holmes', 'address': {'street': {'type': 'Street'}, 'city': 'London'}, } )