def test_merge_dict(self): """ Утилита merge_dict корректно объединяет словари """ # Случай когда у словарей нет общих ключей self.assertDictEqual( { "a": 1, "b": 2 }, merge_dict({"a": 1}, {"b": 2}) ) # Случай когда у словарей есть общий ключ. Обновляется лишь часть данных self.assertDictEqual( { "a": { "c": 3, "b": 2 } }, merge_dict({"a": {"c": 3}}, {"a": {"b": 2}}) ) # merge_dict() на вход принимает один словарь приёмник и неограниченное количество словарей источников self.assertDictEqual( { "a": 1, "b": 2, "c": 3 }, merge_dict({}, {"a": 1}, {"b": 2}, {"c": 3}) )
def test_merge_dict(self): """ Утилита merge_dict корректно объединяет словари """ # Случай когда у словарей нет общих ключей self.assertDictEqual({"a": 1, "b": 2}, merge_dict({"a": 1}, {"b": 2})) # Случай когда у словарей есть общий ключ. Обновляется лишь часть данных self.assertDictEqual({"a": { "c": 3, "b": 2 }}, merge_dict({"a": { "c": 3 }}, {"a": { "b": 2 }})) # merge_dict() на вход принимает один словарь приёмник и неограниченное количество словарей источников self.assertDictEqual({ "a": 1, "b": 2, "c": 3 }, merge_dict({}, {"a": 1}, {"b": 2}, {"c": 3}))
def settings(self): if not hasattr(self, "_settings"): self._settings = flexdict() for setting in self.settings_raw: self._settings = merge_dict(self._settings, do_dict(setting.name, setting.value, cls=flexdict), cls=flexdict) return self._settings