def test_create_arguments_for_ansible_module_define_get(self): template = { constants.REST_OBJECT: 'fileInterface', constants.ACTIONS: { 'create': {constants.ACTION_TYPE: constants.ActionType.UPDATE, constants.PARAMETER_TYPES: {}, constants.DO_ACTION: 'nnnn'}, 'modify': {constants.ACTION_TYPE: constants.ActionType.UPDATE, constants.PARAMETER_TYPES: {}}, 'delete': {constants.ACTION_TYPE: constants.ActionType.UPDATE, constants.PARAMETER_TYPES: {}}, 'get':{ constants.ACTION_TYPE: constants.ActionType.QUERY, constants.PARAMETER_TYPES:{} } } } arguments = supportive_functions.create_arguments_for_ansible_module(template) expected_args = dict(login=dict(required=True, default=None, type='dict'), get=dict(required=False, default=None, type='dict')) for action in {'create', 'modify', 'delete'}: expected_args.update({action: dict(required=False, default=None, type='dict')}) self.assertEqual(arguments, expected_args, {'expected_args': expected_args})
def test_create_create_arguments_for_ansible_module_change_type(self): arguments = supportive_functions.create_arguments_for_ansible_module([{constants.ACTION_NAME: tested_function, 'type': 'str'}]) expected_args = expexted_minimal params = standard_params params['type'] = 'str' expected_args.update(dict(tested_function=params)) self.assertEqual(arguments, expected_args)
def test_create_create_arguments_for_ansible_module_random_parameter(self): arguments = supportive_functions.create_arguments_for_ansible_module([{constants.ACTION_NAME: tested_function, 'key1': 'str'}]) expected_args = expexted_minimal params = dict(required=False, default=None, type='dict') params.update({'key1': 'str'}) expected_args.update(dict(tested_function=params)) self.assertEqual(arguments, expected_args, {'expected_args': expected_args})
def create_arguments_for_ansible_module(array_of_dictionaries): """ Use the same function from supportive_functions :param array_of_dictionaries: array of dictionaries that wrap functions and special information for AnsibleModule. Example: {'function':do_smth, 'key':value,...} :return: """ return supportive_functions.create_arguments_for_ansible_module( array_of_dictionaries)
def main(): arguments = supportive_functions.create_arguments_for_ansible_module( template) ansible_module = AnsibleModule(arguments, supports_check_mode=True) runner.run(ansible_module, template)
def test_create_arguments_for_ansible_module_only_function(self): arguments = supportive_functions.create_arguments_for_ansible_module([{'function': tested_function}]) expected_args = expexted_minimal expected_args.update(dict(tested_function=standard_params)) self.assertEqual(arguments, expected_args)