def test_generated_items(self, get_all_attrs_from_file): def my_item_generator(node, bundle, item): generated_items = {'files': {}} if item.ITEM_TYPE_NAME == 'user': file_path = "/home/{}/.screenrc".format(item.name) generated_items['files'][file_path] = { 'content': "foo", } return generated_items get_all_attrs_from_file.return_value = { 'item_generators': [ 'test.generator', ], 'users': { 'jdoe': {}, }, } repo = Repository() repo.bundle_names = ["generatingbundle"] repo.libs = MagicMock() repo.libs.test.generator = my_item_generator node = Node("node1", {'bundles': ["generatingbundle"]}) repo.add_node(node) self.assertEqual(len(node.bundles[0]._generated_items), 1) generated_item = node.bundles[0]._generated_items[0] self.assertEqual(generated_item.id, "file:/home/jdoe/.screenrc")
def test_bundles(self): repo = Repository() repo.bundle_names = ("bundle1", "bundle2", "bundle3") n = Node("node1", {}) repo.add_node(n) g1 = Group("group1", {'bundles': ("bundle1", "bundle2")}) repo.add_group(g1) g2 = Group("group2", {'bundles': ("bundle3",)}) repo.add_group(g2) with patch('tests.unit.node_tests.Node.groups', new=(g1, g2)): self.assertEqual( tuple(names(n.bundles)), ("bundle1", "bundle2", "bundle3"), )