コード例 #1
0
    def test_override_dict(self):
        d1 = {'a': {'x': 10}}
        d2 = {'a': 1}

        d = UnionDict(d1, d2)
        self.assertEqual(d['a'], 1)

        d = UnionDict(d2, d1)
        self.assertEqual(d['a'], {'x': 10})
コード例 #2
0
    def test_override(self):
        d1 = {'a': 1, 'b': 1}
        d2 = {'a': 2, 'b': 2}
        d3 = {'a': 3}

        d = UnionDict(d1, d2, d3)
        self.assertEqual(d['a'], 3)
        self.assertEqual(d['b'], 2)

        d = UnionDict(d3, d2, d1)
        self.assertEqual(d['a'], 1)
        self.assertEqual(d['b'], 1)
コード例 #3
0
    def test_merge(self):
        d1 = {'a': {'x': 10}}
        d2 = {'a': {'y': 20}}
        d3 = {'a': {'z': 30}}

        d = UnionDict(d1, d2, d3)
        self.assertIsInstance(d['a'], UnionDict)
        self.assertEqual(d['a']['x'], 10)
        self.assertEqual(d['a']['y'], 20)
        self.assertEqual(d['a']['z'], 30)
コード例 #4
0
    def test_base(self):
        d1 = {'a': 1, 'b': 2}
        d2 = {'c': 3, 'd': 4}
        d3 = {'e': 5, 'f': 6}

        d = UnionDict(d1, d2, d3)
        self.assertEqual(d['a'], 1)
        self.assertEqual(d['b'], 2)
        self.assertEqual(d['c'], 3)
        self.assertEqual(d['d'], 4)
        self.assertEqual(d['e'], 5)
        self.assertEqual(d['f'], 6)
        self.assertRaises(KeyError, lambda: d[0])
コード例 #5
0
 def test_repr(self):
     d = UnionDict(self.D1, self.D2, self.D3)
     self.assertEquals(eval(repr(d)), self.D)
コード例 #6
0
 def test_json_dump(self):
     d = UnionDict(self.D1, self.D2, self.D3)
     json_str = jsonutils.dumps(d).strip()
     self.assertEqual(jsonutils.loads(json_str),
                      jsonutils.loads(self.JSON_STR_EXPECTED))
コード例 #7
0
 def test_yaml_dump(self):
     d = UnionDict(self.D1, self.D2, self.D3)
     yaml_str = yaml.dump(d, default_flow_style=False).strip()
     self.assertEqual(yaml_str, self.YAML_STR_EXPECTED)
コード例 #8
0
 def test_keys(self):
     ud = UnionDict({'a': 1, 'b': 2, 'c': 3},
                    {'b': 2, 'c': 3, 'd': 4},
                    {'e': 5})
     self.assertEquals(ud.keys(), {'a', 'b', 'c', 'd', 'e'})
コード例 #9
0
 def get_old_data(self, node_id, task_id):
     node_info = utils.get_in(self.old, task_id, 'nodes', node_id)
     if not node_info:
         return {}
     return UnionDict(self.old[task_id]['common'], node_info)
コード例 #10
0
 def get_new_data(self, node_id):
     return UnionDict(self.new['common'], self.new['nodes'][node_id])