summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorsushma-alethea <52454757+sushma-alethea@users.noreply.github.com>2019-07-31 20:01:41 +0530
committerGanesh Nalawade <ganesh634@gmail.com>2019-07-31 20:01:41 +0530
commitf2cb44633aad25e8668997e088139ed5354c6f3d (patch)
tree90fe2f3eb842415fb3bc0a94358836ca0310dc17 /test
parent58a53fe0ebc80e2c663010729e634a8ad1e16495 (diff)
downloadansible-f2cb44633aad25e8668997e088139ed5354c6f3d.tar.gz
Modules to manage ICX devices (#58969)
* new module * new terminal * new terminal * new cliconf * cliconf * icx cliconf * icx_cliconf * icx test units module * icx units module * icx banner unit test * PR changes resolved * changes resolved * Changes Resolved * check_running_config changes resolved * added notes * removed icx rst * new commit * new changes * deleted icx rst * icx .rst * modified platform_index.rst * modified platform_index.rst * changes resolved * PR comments resolved * Update platform_index.rst PR comment resolved
Diffstat (limited to 'test')
-rw-r--r--test/units/modules/network/icx/__init__.py0
-rw-r--r--test/units/modules/network/icx/fixtures/icx_banner_show_banner.txt16
-rw-r--r--test/units/modules/network/icx/icx_module.py93
-rw-r--r--test/units/modules/network/icx/test_icx_banner.py96
4 files changed, 205 insertions, 0 deletions
diff --git a/test/units/modules/network/icx/__init__.py b/test/units/modules/network/icx/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/test/units/modules/network/icx/__init__.py
diff --git a/test/units/modules/network/icx/fixtures/icx_banner_show_banner.txt b/test/units/modules/network/icx/fixtures/icx_banner_show_banner.txt
new file mode 100644
index 0000000000..4847885148
--- /dev/null
+++ b/test/units/modules/network/icx/fixtures/icx_banner_show_banner.txt
@@ -0,0 +1,16 @@
+banner motd require-enter-key
+banner motd $
+welcome
+new user
+$
+!
+interface ethernet 1/1/1
+ port-name port name
+ disable
+ speed-duplex 10-full
+ inline power power-limit 7000
+!
+interface ethernet 1/1/2
+ speed-duplex 10-full
+ inline power power-limit 3000
+! \ No newline at end of file
diff --git a/test/units/modules/network/icx/icx_module.py b/test/units/modules/network/icx/icx_module.py
new file mode 100644
index 0000000000..f3f9e92f2a
--- /dev/null
+++ b/test/units/modules/network/icx/icx_module.py
@@ -0,0 +1,93 @@
+# 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
+
+import os
+import json
+
+from units.modules.utils import AnsibleExitJson, AnsibleFailJson, ModuleTestCase
+
+
+fixture_path = os.path.join(os.path.dirname(__file__), 'fixtures')
+fixture_data = {}
+
+
+def load_fixture(name):
+ path = os.path.join(fixture_path, name)
+
+ if path in fixture_data:
+ return fixture_data[path]
+
+ with open(path) as f:
+ data = f.read()
+
+ try:
+ data = json.loads(data)
+ except Exception:
+ pass
+
+ fixture_data[path] = data
+ return data
+
+
+class TestICXModule(ModuleTestCase):
+ ENV_ICX_USE_DIFF = True
+
+ def set_running_config(self):
+ self.ENV_ICX_USE_DIFF = self.get_running_config()
+
+ def get_running_config(self, compare=None):
+ if compare is not None:
+ diff = compare
+ elif os.environ.get('ANSIBLE_CHECK_ICX_RUNNING_CONFIG') is not None:
+ if os.environ.get('ANSIBLE_CHECK_ICX_RUNNING_CONFIG') == 'False':
+ diff = False
+ else:
+ diff = True
+ else:
+ diff = True
+ return diff
+
+ def execute_module(self, failed=False, changed=False, commands=None, sort=True, defaults=False, fields=None):
+
+ self.load_fixtures(commands)
+
+ if failed:
+ result = self.failed()
+ self.assertTrue(result['failed'], result)
+ else:
+ result = self.changed(changed)
+ self.assertEqual(result['changed'], changed, result)
+
+ if commands is not None:
+ if sort:
+ self.assertEqual(sorted(commands), sorted(result['commands']))
+ else:
+ self.assertEqual(commands, result['commands'], result['commands'])
+
+ if fields is not None:
+ for key in fields:
+ if fields.get(key) is not None:
+ self.assertEqual(fields.get(key), result.get(key))
+
+ return result
+
+ def failed(self):
+ with self.assertRaises(AnsibleFailJson) as exc:
+ self.module.main()
+
+ result = exc.exception.args[0]
+ self.assertTrue(result['failed'], result)
+ return result
+
+ def changed(self, changed=False):
+ with self.assertRaises(AnsibleExitJson) as exc:
+ self.module.main()
+
+ result = exc.exception.args[0]
+ self.assertEqual(result['changed'], changed, result)
+ return result
+
+ def load_fixtures(self, commands=None):
+ pass
diff --git a/test/units/modules/network/icx/test_icx_banner.py b/test/units/modules/network/icx/test_icx_banner.py
new file mode 100644
index 0000000000..4217410725
--- /dev/null
+++ b/test/units/modules/network/icx/test_icx_banner.py
@@ -0,0 +1,96 @@
+# 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 units.compat.mock import patch
+from ansible.modules.network.icx import icx_banner
+from units.modules.utils import set_module_args
+from .icx_module import TestICXModule, load_fixture
+
+
+class TestICXBannerModule(TestICXModule):
+
+ module = icx_banner
+
+ def setUp(self):
+ super(TestICXBannerModule, self).setUp()
+ self.mock_exec_command = patch('ansible.modules.network.icx.icx_banner.exec_command')
+ self.exec_command = self.mock_exec_command.start()
+
+ self.mock_load_config = patch('ansible.modules.network.icx.icx_banner.load_config')
+ self.load_config = self.mock_load_config.start()
+
+ self.mock_get_config = patch('ansible.modules.network.icx.icx_banner.get_config')
+ self.get_config = self.mock_get_config.start()
+
+ self.set_running_config()
+
+ def tearDown(self):
+ super(TestICXBannerModule, self).tearDown()
+ self.mock_exec_command.stop()
+ self.mock_load_config.stop()
+ self.mock_get_config.stop()
+
+ def load_fixtures(self, commands=None):
+ compares = None
+
+ def load_file(*args, **kwargs):
+ module = args
+ for arg in args:
+ if arg.params['check_running_config'] is True:
+ return load_fixture('icx_banner_show_banner.txt').strip()
+ else:
+ return ''
+
+ self.exec_command.return_value = (0, '', None)
+ self.get_config.side_effect = load_file
+ self.load_config.return_value = dict(diff=None, session='session')
+
+ def test_icx_banner_create(self):
+ if not self.ENV_ICX_USE_DIFF:
+ set_module_args(dict(banner='motd', text='welcome\nnew user'))
+ commands = ['banner motd $\nwelcome\nnew user\n$']
+ self.execute_module(changed=True, commands=commands)
+ else:
+ for banner_type in ('motd', 'exec', 'incoming'):
+ set_module_args(dict(banner=banner_type, text='test\nbanner\nstring'))
+ commands = ['banner {0} $\ntest\nbanner\nstring\n$'.format(banner_type)]
+ self.execute_module(changed=True, commands=commands)
+
+ def test_icx_banner_remove(self):
+ set_module_args(dict(banner='motd', state='absent'))
+ if not self.ENV_ICX_USE_DIFF:
+ commands = ['no banner motd']
+ self.execute_module(changed=True, commands=commands)
+ else:
+ commands = ['no banner motd']
+ self.execute_module(changed=True, commands=commands)
+
+ def test_icx_banner_motd_enter_set(self):
+ set_module_args(dict(banner='motd', enterkey=True))
+
+ if not self.ENV_ICX_USE_DIFF:
+ commands = ['banner motd require-enter-key']
+ self.execute_module(changed=True, commands=commands)
+ else:
+ self.execute_module(changed=False)
+
+ def test_icx_banner_motd_enter_remove(self):
+ set_module_args(dict(banner='motd', state='absent', enterkey=False))
+ if not self.ENV_ICX_USE_DIFF:
+ commands = ['no banner motd', 'no banner motd require-enter-key']
+ self.execute_module(changed=True, commands=commands)
+
+ else:
+ commands = ['no banner motd', 'no banner motd require-enter-key']
+ self.execute_module(changed=True, commands=commands)
+
+ def test_icx_banner_remove_compare(self):
+ set_module_args(dict(banner='incoming', state='absent', check_running_config='True'))
+ if self.get_running_config(compare=True):
+ if not self.ENV_ICX_USE_DIFF:
+ commands = []
+ self.execute_module(changed=False, commands=commands)
+ else:
+ commands = []
+ self.execute_module()