2020-03-09 10:11:07 +01:00
|
|
|
# Copyright: (c) 2019, Ansible Project
|
|
|
|
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
|
|
|
from __future__ import (absolute_import, division, print_function)
|
|
|
|
__metaclass__ = type
|
|
|
|
|
|
|
|
from ansible_collections.community.general.tests.unit.compat.mock import patch
|
|
|
|
from ansible_collections.community.general.plugins.modules.network.icx import icx_copy
|
|
|
|
from ansible_collections.community.general.tests.unit.modules.utils import set_module_args
|
2020-03-24 09:27:28 +01:00
|
|
|
from .icx_module import TestICXModule, load_fixture
|
2020-03-09 10:11:07 +01:00
|
|
|
|
|
|
|
|
|
|
|
class TestICXSCPModule(TestICXModule):
|
|
|
|
|
|
|
|
module = icx_copy
|
|
|
|
|
|
|
|
def setUp(self):
|
|
|
|
super(TestICXSCPModule, self).setUp()
|
|
|
|
self.mock_exec_scp = patch('ansible_collections.community.general.plugins.modules.network.icx.icx_copy.exec_scp')
|
|
|
|
self.mock_run_commands = patch('ansible_collections.community.general.plugins.modules.network.icx.icx_copy.run_commands')
|
|
|
|
self.exec_command = self.mock_exec_scp.start()
|
|
|
|
self.run_commands = self.mock_run_commands.start()
|
|
|
|
self.mock_exec_command = patch('ansible_collections.community.general.plugins.modules.network.icx.icx_copy.exec_command')
|
|
|
|
self.exec_commands = self.mock_exec_command.start()
|
|
|
|
|
|
|
|
def tearDown(self):
|
|
|
|
super(TestICXSCPModule, self).tearDown()
|
|
|
|
self.mock_exec_scp.stop()
|
|
|
|
self.mock_run_commands.stop()
|
|
|
|
self.mock_exec_command.stop()
|
|
|
|
|
|
|
|
def load_fixtures(self, commands=None):
|
|
|
|
self.exec_commands.return_value = (0, load_fixture('icx_copy.txt').strip(), None)
|
|
|
|
# self.exec_command.return_value = (0, load_fixture('icx_banner_show_banner.txt').strip(), None)
|
|
|
|
if(commands is not None):
|
|
|
|
fixtureName = commands[0].replace(" ", "_") + ".txt"
|
|
|
|
# print("loading fixture: ",load_fixture(fixtureName).strip())
|
|
|
|
self.mock_exec_scp.return_value = load_fixture("icx_copy.txt").strip()
|
|
|
|
self.mock_run_commands.return_value = load_fixture("icx_copy.txt").strip()
|
|
|
|
else:
|
|
|
|
self.exec_command.return_value = ""
|
|
|
|
|
|
|
|
def test_icx_scp_upload_running(self):
|
|
|
|
set_module_args(
|
|
|
|
dict(
|
|
|
|
upload='running-config',
|
|
|
|
protocol='scp',
|
|
|
|
remote_server='172.16.10.49',
|
|
|
|
remote_filename='running.conf',
|
|
|
|
remote_user='alethea',
|
|
|
|
remote_pass='alethea123'))
|
|
|
|
commands = ['copy running-config scp 172.16.10.49 running.conf']
|
|
|
|
self.execute_module(commands=commands)
|
|
|
|
|
|
|
|
def test_icx_scp_download_running(self):
|
|
|
|
set_module_args(
|
|
|
|
dict(
|
|
|
|
download='running-config',
|
|
|
|
protocol='scp',
|
|
|
|
remote_server='172.16.10.49',
|
|
|
|
remote_filename='running.conf',
|
|
|
|
remote_user='alethea',
|
|
|
|
remote_pass='alethea123'))
|
|
|
|
commands = ['copy scp running-config 172.16.10.49 running.conf']
|
|
|
|
self.execute_module(commands=commands, changed=True)
|
|
|
|
|
|
|
|
def test_icx_scp_upload_startup(self):
|
|
|
|
set_module_args(
|
|
|
|
dict(
|
|
|
|
upload='startup-config',
|
|
|
|
protocol='scp',
|
|
|
|
remote_server='172.16.10.49',
|
|
|
|
remote_filename='running.conf',
|
|
|
|
remote_user='alethea',
|
|
|
|
remote_pass='alethea123'))
|
|
|
|
commands = ['copy startup-config scp 172.16.10.49 running.conf']
|
|
|
|
self.execute_module(commands=commands, changed=False)
|
|
|
|
|
|
|
|
def test_icx_scp_download_startup(self):
|
|
|
|
set_module_args(
|
|
|
|
dict(
|
|
|
|
download='startup-config',
|
|
|
|
protocol='scp',
|
|
|
|
remote_server='172.16.10.49',
|
|
|
|
remote_filename='running.conf',
|
|
|
|
remote_user='alethea',
|
|
|
|
remote_pass='alethea123'))
|
|
|
|
commands = ['copy scp startup-config 172.16.10.49 running.conf']
|
|
|
|
self.execute_module(commands=commands, changed=True)
|
|
|
|
|
|
|
|
def test_icx_scp_upload_primary(self):
|
|
|
|
set_module_args(
|
|
|
|
dict(
|
|
|
|
upload='flash_primary',
|
|
|
|
protocol='scp',
|
|
|
|
remote_server='172.16.10.49',
|
|
|
|
remote_filename='SPS08080b.bin',
|
|
|
|
remote_user='alethea',
|
|
|
|
remote_pass='alethea123'))
|
|
|
|
commands = ['copy flash scp 172.16.10.49 SPS08080b.bin primary']
|
|
|
|
self.execute_module(commands=commands, changed=False)
|
|
|
|
|
|
|
|
def test_icx_scp_download_primary(self):
|
|
|
|
set_module_args(
|
|
|
|
dict(
|
|
|
|
download='flash_primary',
|
|
|
|
protocol='scp',
|
|
|
|
remote_server='172.16.10.49',
|
|
|
|
remote_filename='SPS08080b.bin',
|
|
|
|
remote_user='alethea',
|
|
|
|
remote_pass='alethea123'))
|
|
|
|
commands = ['copy scp flash 172.16.10.49 SPS08080b.bin primary']
|
|
|
|
self.execute_module(commands=commands, changed=True)
|
|
|
|
|
|
|
|
# HTTPS tests
|
|
|
|
|
|
|
|
def test_icx_https_upload_running(self):
|
|
|
|
set_module_args(
|
|
|
|
dict(
|
|
|
|
upload='running-config',
|
|
|
|
protocol='https',
|
|
|
|
remote_server='fileserver.alethea.in',
|
|
|
|
remote_filename='filestorage/test/upload_running'))
|
|
|
|
commands = ['copy running-config https fileserver.alethea.in filestorage/test/upload_running']
|
|
|
|
self.execute_module(commands=commands)
|
|
|
|
|
|
|
|
def test_icx_https_download_running(self):
|
|
|
|
set_module_args(
|
|
|
|
dict(
|
|
|
|
download='running-config',
|
|
|
|
protocol='https',
|
|
|
|
remote_server='fileserver.alethea.in',
|
|
|
|
remote_filename='filestorage/test/running.conf'))
|
|
|
|
commands = ['copy https running-config fileserver.alethea.in filestorage/test/running.conf']
|
|
|
|
self.execute_module(failed=True)
|
|
|
|
|
|
|
|
def test_icx_https_upload_startup(self):
|
|
|
|
set_module_args(
|
|
|
|
dict(
|
|
|
|
upload='startup-config',
|
|
|
|
protocol='https',
|
|
|
|
remote_server='fileserver.alethea.in',
|
|
|
|
remote_filename='filestorage/test/upload_startup'))
|
|
|
|
commands = ['copy startup-config https fileserver.alethea.in filestorage/test/upload_startup']
|
|
|
|
self.execute_module(commands=commands)
|
|
|
|
|
|
|
|
def test_icx_https_download_startup(self):
|
|
|
|
set_module_args(
|
|
|
|
dict(
|
|
|
|
download='startup-config',
|
|
|
|
protocol='https',
|
|
|
|
remote_server='fileserver.alethea.in',
|
|
|
|
remote_filename='filestorage/test/startup.conf'))
|
|
|
|
commands = ['copy https startup-config fileserver.alethea.in filestorage/test/startup.conf']
|
|
|
|
self.execute_module(commands=commands, changed=True)
|
|
|
|
|
|
|
|
def test_icx_https_upload_primary(self):
|
|
|
|
set_module_args(
|
|
|
|
dict(
|
|
|
|
upload='flash_primary',
|
|
|
|
protocol='https',
|
|
|
|
remote_server='fileserver.alethea.in',
|
|
|
|
remote_filename='filestorage/test/upload_primary'))
|
|
|
|
commands = ['copy startup-config https fileserver.alethea.in filestorage/test/upload_primary']
|
|
|
|
self.execute_module(failed=True)
|
|
|
|
|
|
|
|
def test_icx_https_download_primary(self):
|
|
|
|
set_module_args(dict(download='flash_primary', protocol='https', remote_server='fileserver.alethea.in', remote_filename='filestorage/test/primary.bin'))
|
|
|
|
commands = ['copy https flash fileserver.alethea.in filestorage/test/primary.bin primary']
|
|
|
|
self.execute_module(commands=commands, changed=True)
|
|
|
|
|
|
|
|
def test_icx_https_upload_secondary(self):
|
|
|
|
set_module_args(
|
|
|
|
dict(
|
|
|
|
upload='flash_secondary',
|
|
|
|
protocol='https',
|
|
|
|
remote_server='fileserver.alethea.in',
|
|
|
|
remote_filename='filestorage/test/upload_secondary'))
|
|
|
|
commands = ['copy flash https fileserver.alethea.in filestorage/test/upload_secondary secondary']
|
|
|
|
self.execute_module(failed=True)
|
|
|
|
|
|
|
|
def test_icx_https_download_secondary(self):
|
|
|
|
set_module_args(
|
|
|
|
dict(
|
|
|
|
download='flash_secondary',
|
|
|
|
protocol='https',
|
|
|
|
remote_server='fileserver.alethea.in',
|
|
|
|
remote_filename='filestorage/test/secondary.bin'))
|
|
|
|
commands = ['copy https flash fileserver.alethea.in filestorage/test/secondary.bin secondary']
|
|
|
|
self.execute_module(commands=commands, changed=True)
|
|
|
|
|
|
|
|
def test_icx_https_upload_download(self):
|
|
|
|
set_module_args(
|
|
|
|
dict(
|
|
|
|
upload='flash_secondary',
|
|
|
|
download='flash_secondary',
|
|
|
|
protocol='https',
|
|
|
|
remote_server='fileserver.alethea.in',
|
|
|
|
remote_filename='filestorage/test/secondary.bin'))
|
|
|
|
self.execute_module(failed=True)
|
|
|
|
|
|
|
|
def test_icx_scp_no_user(self):
|
|
|
|
set_module_args(dict(upload='running-config', protocol='scp', remote_server='172.16.10.49', remote_filename='running.conf'))
|
|
|
|
self.execute_module(failed=True)
|