def test_run_single_command(self, *args): set_module_args(dict( commands=[ "tmsh show sys version" ], provider=dict( server='localhost', password='******', user='******' ) )) module = AnsibleModule( argument_spec=self.spec.argument_spec, supports_check_mode=self.spec.supports_check_mode ) m1 = V2Manager(module=module) m1.execute_on_device = Mock(return_value=['resp1', 'resp2']) mm = ModuleManager(module=module) mm._run_commands = Mock(return_value=[]) mm.get_manager = Mock(return_value=m1) results = mm.exec_module() assert results['changed'] is False assert mm._run_commands.call_count == 0 assert m1.execute_on_device.call_count == 2
def test_cli_command(self, *args): set_module_args( dict(commands=["show sys version"], provider=dict(server='localhost', password='******', user='******', transport='cli'))) module = AnsibleModule( argument_spec=self.spec.argument_spec, supports_check_mode=self.spec.supports_check_mode) m1 = V1Manager(module=module) m1.execute_on_device = Mock(return_value=['resp1', 'resp2', 'resp3']) mm = ModuleManager(module=module) mm._run_commands = Mock(return_value=[]) mm.get_manager = Mock(return_value=m1) results = mm.exec_module() assert results['changed'] is False # call count is two on CLI transport because we must first # determine if the remote CLI is in tmsh mode or advanced shell # (bash) mode. # # 1 call for the shell check # 1 call for the command in the "commands" list above # # Can we change this in the future by making the terminal plugin # find this out ahead of time? assert m1.execute_on_device.call_count == 3
def test_command_with_commas(self, *args): set_module_args(dict( commands=""" tmsh create /auth ldap system-auth {bind-dn uid=binduser, cn=users,dc=domain,dc=com bind-pw $ENCRYPTEDPW check-roles-group enabled search-base-dn cn=users,dc=domain,dc=com servers add { ldap.server.com } } """, provider=dict( server='localhost', password='******', user='******' ) )) module = AnsibleModule( argument_spec=self.spec.argument_spec, supports_check_mode=self.spec.supports_check_mode ) m1 = V2Manager(module=module) m1.execute_on_device = Mock(return_value=['resp1', 'resp2']) mm = ModuleManager(module=module) mm.get_manager = Mock(return_value=m1) results = mm.exec_module() assert results['changed'] is True assert m1.execute_on_device.call_count == 2
def test_run_single_modification_command(self, *args): set_module_args( dict(commands=["tmsh create ltm virtual foo"], server='localhost', user='******', password='******')) module = AnsibleModule( argument_spec=self.spec.argument_spec, supports_check_mode=self.spec.supports_check_mode) m1 = V2Manager(module=module) m1.execute_on_device = Mock(return_value=[True, False]) mm = ModuleManager(module=module) mm._run_commands = Mock(return_value=[]) mm.get_manager = Mock(return_value=m1) results = mm.exec_module() assert results['changed'] is True assert mm._run_commands.call_count == 0 assert m1.execute_on_device.call_count == 2