def test_network_gather_facts_fqcn(self, mock_collection_metadata):
        self.fqcn_task_vars = {'ansible_network_os': 'cisco.ios.ios'}
        self.task.action = 'gather_facts'
        self.task.async_val = False
        self.task.args = {'gather_subset': 'min'}
        self.task.module_defaults = [{
            'cisco.ios.ios_facts': {
                'gather_subset': 'min'
            }
        }]

        plugin = GatherFactsAction(self.task,
                                   self.connection,
                                   self.play_context,
                                   loader=None,
                                   templar=self.templar,
                                   shared_loader_obj=plugin_loader)
        plugin._execute_module = MagicMock()

        res = plugin.run(task_vars=self.fqcn_task_vars)
        self.assertEqual(res['ansible_facts']['_ansible_facts_gathered'], True)

        mod_args = plugin._get_module_args('cisco.ios.ios_facts',
                                           task_vars=self.fqcn_task_vars)
        self.assertEqual(mod_args['gather_subset'], 'min')
    def test_network_gather_facts_smart_facts_module_fqcn(
            self, mock_collection_metadata):
        self.fqcn_task_vars = {'ansible_network_os': 'cisco.ios.ios'}
        self.task.action = 'gather_facts'
        self.task.async_val = False
        self.task.args = {}

        plugin = GatherFactsAction(self.task,
                                   self.connection,
                                   self.play_context,
                                   loader=None,
                                   templar=self.templar,
                                   shared_loader_obj=None)
        get_module_args = MagicMock()
        plugin._get_module_args = get_module_args
        plugin._execute_module = MagicMock()

        res = plugin.run(task_vars=self.fqcn_task_vars)

        # assert the gather_facts config is 'smart'
        facts_modules = C.config.get_config_value(
            'FACTS_MODULES', variables=self.fqcn_task_vars)
        self.assertEqual(facts_modules, ['smart'])

        # assert the correct module was found
        self.assertEqual(get_module_args.call_count, 1)

        self.assertEqual(get_module_args.call_args.args, (
            'cisco.ios.ios_facts',
            {
                'ansible_network_os': 'cisco.ios.ios'
            },
        ))
Exemple #3
0
    def test_network_gather_facts_fqcn(self, mock_collection_metadata):
        self.fqcn_task_vars = {'ansible_network_os': 'cisco.ios.ios'}
        self.task.action = 'gather_facts'
        self.task._ansible_internal_redirect_list = ['cisco.ios.ios_facts']
        self.task.async_val = False
        self.task.args = {'gather_subset': 'min'}
        self.task.module_defaults = [{
            'cisco.ios.ios_facts': {
                'gather_subset': 'min'
            }
        }]

        plugin = ActionModule(self.task,
                              self.connection,
                              self.play_context,
                              loader=None,
                              templar=self.templar,
                              shared_loader_obj=None)
        plugin._execute_module = MagicMock()

        res = plugin.run(task_vars=self.fqcn_task_vars)
        self.assertEqual(res['ansible_facts']['_ansible_facts_gathered'], True)

        mod_args = plugin._get_module_args('cisco.ios.ios_facts',
                                           task_vars=self.fqcn_task_vars)
        self.assertEqual(mod_args['gather_subset'], 'min')

        facts_modules = C.config.get_config_value(
            'FACTS_MODULES', variables=self.fqcn_task_vars)
        self.assertEqual(facts_modules, ['cisco.ios.ios_facts'])