예제 #1
0
 def test_exports_with_refs(self):
     inventory = {'node1': {'a': 1, 'b': 2}, 'node2': {'a': 3, 'b': 4}}
     node3_exports = Exports({'a': '${a}', 'b': '${b}'}, SETTINGS, '')
     node3_parameters = Parameters({
         'name': 'node3',
         'a': '${c}',
         'b': 5
     }, SETTINGS, '')
     node3_parameters.merge({'c': 3})
     node3_entity = Entity(SETTINGS,
                           classes=None,
                           applications=None,
                           parameters=node3_parameters,
                           exports=node3_exports)
     node3_entity.interpolate_exports()
     inventory['node3'] = node3_entity.exports.as_dict()
     r = {
         'node1': {
             'a': 1,
             'b': 2
         },
         'node2': {
             'a': 3,
             'b': 4
         },
         'node3': {
             'a': 3,
             'b': 5
         }
     }
     self.assertDictEqual(inventory, r)
예제 #2
0
 def test_reference_to_an_export(self):
     inventory = {'node1': {'a': 1, 'b': 2}, 'node2': {'a': 3, 'b': 4}}
     node3_exports = Exports({'a': '${a}', 'b': '${b}'}, SETTINGS, '')
     node3_parameters = Parameters(
         {
             'name': 'node3',
             'ref': '${exp}',
             'a': '${c}',
             'b': 5
         }, SETTINGS, '')
     node3_parameters.merge({'c': 3, 'exp': '$[ exports:a ]'})
     node3_entity = Entity(SETTINGS,
                           classes=None,
                           applications=None,
                           parameters=node3_parameters,
                           exports=node3_exports)
     node3_entity.interpolate_exports()
     inventory['node3'] = node3_entity.exports.as_dict()
     node3_entity.interpolate(inventory)
     res_inv = {
         'node1': {
             'a': 1,
             'b': 2
         },
         'node2': {
             'a': 3,
             'b': 4
         },
         'node3': {
             'a': 3,
             'b': 5
         }
     }
     res_params = {
         'a': 3,
         'c': 3,
         'b': 5,
         'name': 'node3',
         'exp': {
             'node1': 1,
             'node3': 3,
             'node2': 3
         },
         'ref': {
             'node1': 1,
             'node3': 3,
             'node2': 3
         }
     }
     self.assertDictEqual(node3_parameters.as_dict(), res_params)
     self.assertDictEqual(inventory, res_inv)
예제 #3
0
 def test_exports_with_nested_references(self):
     inventory = {
         'node1': {
             'alpha': {
                 'a': 1,
                 'b': 2
             }
         },
         'node2': {
             'alpha': {
                 'a': 3,
                 'b': 4
             }
         }
     }
     node3_exports = Exports({'alpha': '${alpha}'})
     node3_parameters = Parameters({
         'name': 'node3',
         'alpha': {
             'a': '${one}',
             'b': '${two}'
         },
         'beta': '$[ exports:alpha ]',
         'one': '111',
         'two': '${three}',
         'three': '123'
     })
     node3_entity = Entity(None, None, node3_parameters, node3_exports)
     res_params = {
         'beta': {
             'node1': {
                 'a': 1,
                 'b': 2
             },
             'node3': {
                 'a': '111',
                 'b': '123'
             },
             'node2': {
                 'a': 3,
                 'b': 4
             }
         },
         'name': 'node3',
         'alpha': {
             'a': '111',
             'b': '123'
         },
         'three': '123',
         'two': '123',
         'one': '111'
     }
     res_inv = {
         'node1': {
             'alpha': {
                 'a': 1,
                 'b': 2
             }
         },
         'node2': {
             'alpha': {
                 'a': 3,
                 'b': 4
             }
         },
         'node3': {
             'alpha': {
                 'a': '111',
                 'b': '123'
             }
         }
     }
     node3_entity.interpolate_exports()
     inventory['node3'] = node3_entity.exports.as_dict()
     node3_entity.interpolate('node3', inventory)
     self.assertDictEqual(node3_parameters.as_dict(), res_params)
     self.assertDictEqual(inventory, res_inv)
예제 #4
0
 def test_exports_with_nested_references(self):
     inventory = self._make_inventory({
         'node1': {
             'alpha': {
                 'a': 1,
                 'b': 2
             }
         },
         'node2': {
             'alpha': {
                 'a': 3,
                 'b': 4
             }
         }
     })
     node3_exports = Exports({'alpha': '${alpha}'}, SETTINGS, '')
     node3_parameters = Parameters(
         {
             'name': 'node3',
             'alpha': {
                 'a': '${one}',
                 'b': '${two}'
             },
             'beta': '$[ exports:alpha ]',
             'one': '111',
             'two': '${three}',
             'three': '123'
         }, SETTINGS, '')
     node3_entity = Entity(SETTINGS,
                           classes=None,
                           applications=None,
                           parameters=node3_parameters,
                           exports=node3_exports)
     res_params = {
         'name': 'node3',
         'alpha': {
             'a': '111',
             'b': '123'
         },
         'beta': {
             'node1': {
                 'a': 1,
                 'b': 2
             },
             'node2': {
                 'a': 3,
                 'b': 4
             },
             'node3': {
                 'a': '111',
                 'b': '123'
             }
         },
         'one': '111',
         'two': '123',
         'three': '123'
     }
     res_inv = {
         'node1': NodeInventory({'alpha': {
             'a': 1,
             'b': 2
         }}, True),
         'node2': NodeInventory({'alpha': {
             'a': 3,
             'b': 4
         }}, True),
         'node3': NodeInventory({'alpha': {
             'a': '111',
             'b': '123'
         }}, True)
     }
     node3_entity.interpolate_exports()
     inventory['node3'] = NodeInventory(node3_entity.exports.as_dict(),
                                        True)
     node3_entity.interpolate(inventory)
     self.assertDictEqual(node3_parameters.as_dict(), res_params)
     self.assertDictEqual(inventory, res_inv)