コード例 #1
0
ファイル: Config.py プロジェクト: psbanka/bombardier
 def check_hash(self, path):
     """
     We saved off a hash of our configuration data the last time we did some
     package maintenance. Now we're going to load that saved value and
     compare it with our current config. That will tell us what values have
     changed.
     path -- the place to find the configuration hash that was used the
             last time this package was configured or installed
     """
     old_config = {}
     difference = {}
     try:
         load_string = open(path, "r").read()
         old_config = yaml_load(load_string)
         new_config = hash_dictionary(self.data)
         difference = diff_dicts(old_config, new_config, check_values=True)
     except IOError:
         msg = "Could not load saved configuration data in %s" % path
         Logger.debug(msg)
     except IndexError:
         msg = "Could not compare configuration data in %s" % path
         Logger.debug(msg)
     except:
         Logger.warning("Bad json/yaml in file %s" % path)
     return difference
コード例 #2
0
    def test_diff_dictionaries(self):
        super = {"a": 1, "b": 2}
        sub   = {"a": 1}
        assert mini_utility.diff_dicts(sub, super) == {}, mini_utility.diff_dicts(sub, super)
        assert mini_utility.diff_dicts(super, sub) == {"b": 2}

        assert mini_utility.diff_dicts(sub, {}) == {"a": 1}
        assert mini_utility.diff_dicts({'section2': {'item1': 'foo'},
                                         'section1': {'item2': 'eggs', 'item1': 'spam'}},{}) != {}

        super["c"] = {"spam": 1, "eggs": 2}
        sub["c"] = {"spam":1}
        assert mini_utility.diff_dicts(sub, super) == {}
        diffs = mini_utility.diff_dicts(super, sub)
        assert diffs.keys() == ['c', 'b']
        assert diffs['c'] == {'eggs': 2}
        assert diffs['b'] == 2

        super = {}
        sub = {}
        super["c"] = {"spam": 1, "eggs": 2}
        sub["c"] = {"spam":2}
        assert mini_utility.diff_dicts(sub, super) == {}
        assert mini_utility.diff_dicts(super, sub) == {"c": {"eggs": 2}}, mini_utility.diff_dicts(super, sub)

        super = {}
        sub   = {}
        super["d"] = [1,2,3]
        sub["d"] = [1,2,3]
        super["c"] = {"spam":1}
        assert mini_utility.diff_dicts(sub, super) == {}, mini_utility.diff_dicts(sub, super)
        assert mini_utility.diff_dicts(super, sub) == {"c": {"spam": 1}}, mini_utility.diff_dicts(super, sub)
        
        super["c"] = {"spam": 1, "eggs": 2}
        sub["c"] = {"foo":2}
        assert mini_utility.diff_dicts(sub, super) == {"c": {"foo": 2}}
        assert mini_utility.diff_dicts(super, sub) == {"c": {"spam":1, "eggs":2}}