def test_set_nested_value_adds_new_key_val_pair(): d = {'attributes': {'some_osm_tag': 'hello'}} value = {'attributes': {'some_tag': 'bye'}} return_d = dict_support.set_nested_value(d, value) assert return_d == { 'attributes': { 'some_osm_tag': 'hello', 'some_tag': 'bye' } }
def update(self): if self.has_updates(): if isinstance(self.data, dict): for attachment in self.attachments: attachment_data = dict_support.get_nested_value(self.data, attachment) if isinstance(attachment_data, (list, set)): value = attachment_data.__class__(map(self.map.get, attachment_data)) else: value = self.map[attachment_data] self.data = dict_support.set_nested_value( self.data, dict_support.nest_at_leaf(deepcopy(attachment), value)) else: for attachment in self.attachments: if all([isinstance(x, (list, set)) for x in self.data[attachment]]): self.data[attachment] = self.data[attachment].apply( lambda x: x.__class__([self.map[i] for i in x])) else: self.data[attachment] = self.data[attachment].replace(self.map) self.build_identity_map()
def test_set_nested_value_overwrites_current_value(): d = {'attributes': {'some_osm_tag': 'hello'}} value = {'attributes': {'some_osm_tag': 'bye'}} return_d = dict_support.set_nested_value(d, value) assert return_d == {'attributes': {'some_osm_tag': 'bye'}}
def test_set_nested_value_creates_new_nest_in_place_of_single_value(): d = {'attributes': 1} value = {'attributes': {'some_tag': 'bye'}} return_d = dict_support.set_nested_value(d, value) assert return_d == {'attributes': {'some_tag': 'bye'}}