예제 #1
0
    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})
        )
예제 #2
0
    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}))
예제 #3
0
파일: models.py 프로젝트: verteen/z9
 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