mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-05-02 23:31:25 -07:00
Refactor junos modules to Use netconf and cliconf plugins (#32621)
* Fix junos integration test fixes as per connection refactor (#33050) Refactor netconf connection plugin to work with netconf plugin * Fix junos integration test fixes as per connection refactor (#33050) Refactor netconf connection plugin to work with netconf plugin Fix CI failure Fix unit test failure Fix review comments
This commit is contained in:
parent
0c75f00248
commit
3d63ecb6f3
37 changed files with 543 additions and 320 deletions
|
@ -19,6 +19,11 @@
|
|||
from __future__ import (absolute_import, division, print_function)
|
||||
__metaclass__ = type
|
||||
|
||||
try:
|
||||
from lxml.etree import fromstring
|
||||
except ImportError:
|
||||
from xml.etree.ElementTree import fromstring
|
||||
|
||||
from ansible.compat.tests.mock import patch
|
||||
from ansible.modules.network.junos import junos_command
|
||||
from units.modules.utils import set_module_args
|
||||
|
@ -36,18 +41,37 @@ class TestJunosCommandModule(TestJunosModule):
|
|||
def setUp(self):
|
||||
super(TestJunosCommandModule, self).setUp()
|
||||
|
||||
self.mock_send_request = patch('ansible.modules.network.junos.junos_command.send_request')
|
||||
self.send_request = self.mock_send_request.start()
|
||||
self.mock_conn = patch('ansible.module_utils.junos.Connection')
|
||||
self.conn = self.mock_conn.start()
|
||||
|
||||
self.mock_netconf = patch('ansible.module_utils.junos.NetconfConnection')
|
||||
self.netconf_conn = self.mock_netconf.start()
|
||||
|
||||
self.mock_exec_rpc = patch('ansible.modules.network.junos.junos_command.exec_rpc')
|
||||
self.exec_rpc = self.mock_exec_rpc.start()
|
||||
|
||||
self.mock_netconf_rpc = patch('ansible.module_utils.netconf.NetconfConnection')
|
||||
self.netconf_rpc = self.mock_netconf_rpc.start()
|
||||
|
||||
self.mock_get_connection = patch('ansible.modules.network.junos.junos_command.get_connection')
|
||||
self.get_connection = self.mock_get_connection.start()
|
||||
|
||||
self.mock_get_capabilities = patch('ansible.modules.network.junos.junos_command.get_capabilities')
|
||||
self.get_capabilities = self.mock_get_capabilities.start()
|
||||
self.get_capabilities.return_value = {'network_api': 'netconf'}
|
||||
|
||||
def tearDown(self):
|
||||
super(TestJunosCommandModule, self).tearDown()
|
||||
|
||||
self.mock_send_request.stop()
|
||||
self.mock_conn.stop()
|
||||
self.mock_netconf.stop()
|
||||
self.mock_get_capabilities.stop()
|
||||
self.mock_netconf_rpc.stop()
|
||||
self.mock_exec_rpc.stop()
|
||||
self.mock_get_connection.stop()
|
||||
|
||||
def load_fixtures(self, commands=None, format='text', changed=False):
|
||||
def load_from_file(*args, **kwargs):
|
||||
module, element = args
|
||||
|
||||
element = fromstring(args[1])
|
||||
if element.text:
|
||||
path = str(element.text)
|
||||
else:
|
||||
|
@ -57,7 +81,7 @@ class TestJunosCommandModule(TestJunosModule):
|
|||
filename = '%s_%s.txt' % (filename, format)
|
||||
return load_fixture(filename)
|
||||
|
||||
self.send_request.side_effect = load_from_file
|
||||
self.exec_rpc.side_effect = load_from_file
|
||||
|
||||
def test_junos_command_simple(self):
|
||||
set_module_args(dict(commands=['show version']))
|
||||
|
@ -80,13 +104,13 @@ class TestJunosCommandModule(TestJunosModule):
|
|||
wait_for = 'result[0] contains "test string"'
|
||||
set_module_args(dict(commands=['show version'], wait_for=wait_for))
|
||||
self.execute_module(failed=True)
|
||||
self.assertEqual(self.send_request.call_count, 10)
|
||||
self.assertEqual(self.exec_rpc.call_count, 10)
|
||||
|
||||
def test_junos_command_retries(self):
|
||||
wait_for = 'result[0] contains "test string"'
|
||||
set_module_args(dict(commands=['show version'], wait_for=wait_for, retries=2))
|
||||
self.execute_module(failed=True)
|
||||
self.assertEqual(self.send_request.call_count, 2)
|
||||
self.assertEqual(self.exec_rpc.call_count, 2)
|
||||
|
||||
def test_junos_command_match_any(self):
|
||||
wait_for = ['result[0] contains "Junos:"',
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue