BIGIP: Bugfix.bigiqapplication (#53986)

* adds function to do version checks for bigiq

* adds version limitation to bigiq application modules
Refactors main() function and module manager in multiple modules in line with recent changes
Adds variable types to docs
Refactors unit tests to remove deprecated parameters
This commit is contained in:
Wojciech Wypior
2019-03-19 07:13:06 +01:00
committed by Tim Rupp
parent 55d2632d78
commit 1e4dab822b
12 changed files with 659 additions and 80 deletions

View File

@@ -21,6 +21,7 @@ try:
from library.modules.bigiq_application_fasthttp import ModuleParameters
from library.modules.bigiq_application_fasthttp import ModuleManager
from library.modules.bigiq_application_fasthttp import ArgumentSpec
from library.module_utils.network.f5.common import F5ModuleError
# In Ansible 2.8, Ansible changed import paths.
from test.units.compat import unittest
@@ -33,6 +34,7 @@ except ImportError:
from ansible.modules.network.f5.bigiq_application_fasthttp import ModuleParameters
from ansible.modules.network.f5.bigiq_application_fasthttp import ModuleManager
from ansible.modules.network.f5.bigiq_application_fasthttp import ArgumentSpec
from ansible.module_utils.network.f5.common import F5ModuleError
# Ansible 2.8 imports
from units.compat import unittest
@@ -111,14 +113,49 @@ class TestParameters(unittest.TestCase):
class TestManager(unittest.TestCase):
def setUp(self):
self.spec = ArgumentSpec()
self.patcher1 = patch('time.sleep')
self.patcher1.start()
try:
self.p1 = patch('library.modules.bigiq_application_fasthttp.bigiq_version')
self.p2 = patch('library.modules.bigiq_application_fasthttp.ModuleParameters.template_reference')
self.p3 = patch('library.modules.bigiq_application_fasthttp.ModuleParameters.ssg_reference')
self.p4 = patch('library.modules.bigiq_application_fasthttp.ModuleParameters.default_device_reference')
self.m1 = self.p1.start()
self.m2 = self.p2.start()
self.m3 = self.p3.start()
self.m4 = self.p4.start()
self.m1.return_value = '6.1.0'
self.m2.return_value = Mock(return_value='https://localhost/mgmt/foobar1')
self.m3.return_value = Mock(return_value='https://localhost/mgmt/foobar2')
self.m4.return_value = Mock(return_value='https://localhost/mgmt/foobar3')
except Exception:
self.p1 = patch('ansible.modules.network.f5.bigiq_application_fasthttp.bigiq_version')
self.p2 = patch('ansible.modules.network.f5.bigiq_application_fasthttp.ModuleParameters.template_reference')
self.p3 = patch('ansible.modules.network.f5.bigiq_application_fasthttp.ModuleParameters.ssg_reference')
self.p4 = patch('ansible.modules.network.f5.bigiq_application_fasthttp.ModuleParameters.default_device_reference')
self.m1 = self.p1.start()
self.m2 = self.p2.start()
self.m3 = self.p3.start()
self.m4 = self.p4.start()
self.m1.return_value = '6.1.0'
self.m2.return_value = Mock(return_value='https://localhost/mgmt/foobar1')
self.m3.return_value = Mock(return_value='https://localhost/mgmt/foobar2')
self.m4.return_value = Mock(return_value='https://localhost/mgmt/foobar3')
def tearDown(self):
self.patcher1.stop()
self.p1.stop()
self.p2.stop()
self.p3.stop()
self.p4.stop()
def test_create(self, *args):
set_module_args(dict(
@@ -154,6 +191,7 @@ class TestManager(unittest.TestCase):
# Override methods to force specific logic in the module to happen
mm = ModuleManager(module=module)
mm.check_bigiq_version = Mock(return_value=True)
mm.has_no_service_environment = Mock(return_value=False)
mm.wait_for_apply_template_task = Mock(return_value=True)
@@ -164,3 +202,43 @@ class TestManager(unittest.TestCase):
assert results['changed'] is True
assert results['description'] == 'my description'
def test_bigiq_version_raises(self):
set_module_args(dict(
name='foo',
description='my description',
service_environment='bar',
servers=[
dict(
address='1.2.3.4',
port=8080
),
dict(
address='5.6.7.8',
port=8000
)
],
inbound_virtual=dict(
address='2.2.2.2',
netmask='255.255.255.255',
port=80
),
provider=dict(
server='localhost',
password='password',
user='admin'
)
))
module = AnsibleModule(
argument_spec=self.spec.argument_spec,
supports_check_mode=self.spec.supports_check_mode
)
msg = 'Module supports only BIGIQ version 6.0.x or lower.'
# Override methods to force specific logic in the module to happen
mm = ModuleManager(module=module)
with pytest.raises(F5ModuleError) as err:
mm.exec_module()
assert str(err.value) == msg

View File

@@ -21,6 +21,7 @@ try:
from library.modules.bigiq_application_fastl4_tcp import ModuleParameters
from library.modules.bigiq_application_fastl4_tcp import ModuleManager
from library.modules.bigiq_application_fastl4_tcp import ArgumentSpec
from library.module_utils.network.f5.common import F5ModuleError
# In Ansible 2.8, Ansible changed import paths.
from test.units.compat import unittest
@@ -33,6 +34,7 @@ except ImportError:
from ansible.modules.network.f5.bigiq_application_fastl4_tcp import ModuleParameters
from ansible.modules.network.f5.bigiq_application_fastl4_tcp import ModuleManager
from ansible.modules.network.f5.bigiq_application_fastl4_tcp import ArgumentSpec
from ansible.module_utils.network.f5.common import F5ModuleError
# Ansible 2.8 imports
from units.compat import unittest
@@ -111,14 +113,42 @@ class TestParameters(unittest.TestCase):
class TestManager(unittest.TestCase):
def setUp(self):
self.spec = ArgumentSpec()
self.patcher1 = patch('time.sleep')
self.patcher1.start()
try:
self.p1 = patch('library.modules.bigiq_application_fastl4_tcp.bigiq_version')
self.p2 = patch('library.modules.bigiq_application_fastl4_tcp.ModuleParameters.template_reference')
self.p3 = patch('library.modules.bigiq_application_fastl4_tcp.ModuleParameters.default_device_reference')
self.m1 = self.p1.start()
self.m2 = self.p2.start()
self.m3 = self.p3.start()
self.m1.return_value = '6.1.0'
self.m2.return_value = Mock(return_value='https://localhost/mgmt/foobar1')
self.m3.return_value = Mock(return_value='https://localhost/mgmt/foobar3')
except Exception:
self.p1 = patch('ansible.modules.network.f5.bigiq_application_fastl4_tcp.bigiq_version')
self.p2 = patch('ansible.modules.network.f5.bigiq_application_fastl4_tcp.ModuleParameters.template_reference')
self.p3 = patch('ansible.modules.network.f5.bigiq_application_fastl4_tcp.ModuleParameters.default_device_reference')
self.m1 = self.p1.start()
self.m2 = self.p2.start()
self.m3 = self.p3.start()
self.m1.return_value = '6.1.0'
self.m2.return_value = Mock(return_value='https://localhost/mgmt/foobar1')
self.m3.return_value = Mock(return_value='https://localhost/mgmt/foobar3')
def tearDown(self):
self.patcher1.stop()
self.p1.stop()
self.p2.stop()
self.p3.stop()
def test_create(self, *args):
set_module_args(dict(
@@ -154,6 +184,7 @@ class TestManager(unittest.TestCase):
# Override methods to force specific logic in the module to happen
mm = ModuleManager(module=module)
mm.check_bigiq_version = Mock(return_value=True)
mm.has_no_service_environment = Mock(return_value=False)
mm.wait_for_apply_template_task = Mock(return_value=True)
@@ -164,3 +195,43 @@ class TestManager(unittest.TestCase):
assert results['changed'] is True
assert results['description'] == 'my description'
def test_bigiq_version_raises(self):
set_module_args(dict(
name='foo',
description='my description',
service_environment='bar',
servers=[
dict(
address='1.2.3.4',
port=8080
),
dict(
address='5.6.7.8',
port=8000
)
],
inbound_virtual=dict(
address='2.2.2.2',
netmask='255.255.255.255',
port=80
),
provider=dict(
server='localhost',
password='password',
user='admin'
)
))
module = AnsibleModule(
argument_spec=self.spec.argument_spec,
supports_check_mode=self.spec.supports_check_mode
)
msg = 'Module supports only BIGIQ version 6.0.x or lower.'
# Override methods to force specific logic in the module to happen
mm = ModuleManager(module=module)
with pytest.raises(F5ModuleError) as err:
mm.exec_module()
assert str(err.value) == msg

View File

@@ -21,6 +21,7 @@ try:
from library.modules.bigiq_application_fastl4_udp import ModuleParameters
from library.modules.bigiq_application_fastl4_udp import ModuleManager
from library.modules.bigiq_application_fastl4_udp import ArgumentSpec
from library.module_utils.network.f5.common import F5ModuleError
# In Ansible 2.8, Ansible changed import paths.
from test.units.compat import unittest
@@ -33,6 +34,7 @@ except ImportError:
from ansible.modules.network.f5.bigiq_application_fastl4_udp import ModuleParameters
from ansible.modules.network.f5.bigiq_application_fastl4_udp import ModuleManager
from ansible.modules.network.f5.bigiq_application_fastl4_udp import ArgumentSpec
from ansible.module_utils.network.f5.common import F5ModuleError
# Ansible 2.8 imports
from units.compat import unittest
@@ -111,14 +113,42 @@ class TestParameters(unittest.TestCase):
class TestManager(unittest.TestCase):
def setUp(self):
self.spec = ArgumentSpec()
self.patcher1 = patch('time.sleep')
self.patcher1.start()
try:
self.p1 = patch('library.modules.bigiq_application_fastl4_udp.bigiq_version')
self.p2 = patch('library.modules.bigiq_application_fastl4_udp.ModuleParameters.template_reference')
self.p3 = patch('library.modules.bigiq_application_fastl4_udp.ModuleParameters.default_device_reference')
self.m1 = self.p1.start()
self.m2 = self.p2.start()
self.m3 = self.p3.start()
self.m1.return_value = '6.1.0'
self.m2.return_value = Mock(return_value='https://localhost/mgmt/foobar1')
self.m3.return_value = Mock(return_value='https://localhost/mgmt/foobar3')
except Exception:
self.p1 = patch('ansible.modules.network.f5.bigiq_application_fastl4_udp.bigiq_version')
self.p2 = patch('ansible.modules.network.f5.bigiq_application_fastl4_udp.ModuleParameters.template_reference')
self.p3 = patch('ansible.modules.network.f5.bigiq_application_fastl4_udp.ModuleParameters.default_device_reference')
self.m1 = self.p1.start()
self.m2 = self.p2.start()
self.m3 = self.p3.start()
self.m1.return_value = '6.1.0'
self.m2.return_value = Mock(return_value='https://localhost/mgmt/foobar1')
self.m3.return_value = Mock(return_value='https://localhost/mgmt/foobar3')
def tearDown(self):
self.patcher1.stop()
self.p1.stop()
self.p2.stop()
self.p3.stop()
def test_create(self, *args):
set_module_args(dict(
@@ -154,6 +184,7 @@ class TestManager(unittest.TestCase):
# Override methods to force specific logic in the module to happen
mm = ModuleManager(module=module)
mm.check_bigiq_version = Mock(return_value=True)
mm.has_no_service_environment = Mock(return_value=False)
mm.wait_for_apply_template_task = Mock(return_value=True)
@@ -164,3 +195,43 @@ class TestManager(unittest.TestCase):
assert results['changed'] is True
assert results['description'] == 'my description'
def test_bigiq_version_raises(self):
set_module_args(dict(
name='foo',
description='my description',
service_environment='bar',
servers=[
dict(
address='1.2.3.4',
port=8080
),
dict(
address='5.6.7.8',
port=8000
)
],
inbound_virtual=dict(
address='2.2.2.2',
netmask='255.255.255.255',
port=80
),
provider=dict(
server='localhost',
password='password',
user='admin'
)
))
module = AnsibleModule(
argument_spec=self.spec.argument_spec,
supports_check_mode=self.spec.supports_check_mode
)
msg = 'Module supports only BIGIQ version 6.0.x or lower.'
# Override methods to force specific logic in the module to happen
mm = ModuleManager(module=module)
with pytest.raises(F5ModuleError) as err:
mm.exec_module()
assert str(err.value) == msg

View File

@@ -21,6 +21,7 @@ try:
from library.modules.bigiq_application_http import ModuleParameters
from library.modules.bigiq_application_http import ModuleManager
from library.modules.bigiq_application_http import ArgumentSpec
from library.module_utils.network.f5.common import F5ModuleError
# In Ansible 2.8, Ansible changed import paths.
from test.units.compat import unittest
@@ -33,6 +34,7 @@ except ImportError:
from ansible.modules.network.f5.bigiq_application_http import ModuleParameters
from ansible.modules.network.f5.bigiq_application_http import ModuleManager
from ansible.modules.network.f5.bigiq_application_http import ArgumentSpec
from ansible.module_utils.network.f5.common import F5ModuleError
# Ansible 2.8 imports
from units.compat import unittest
@@ -111,14 +113,49 @@ class TestParameters(unittest.TestCase):
class TestManager(unittest.TestCase):
def setUp(self):
self.spec = ArgumentSpec()
self.patcher1 = patch('time.sleep')
self.patcher1.start()
try:
self.p1 = patch('library.modules.bigiq_application_http.bigiq_version')
self.p2 = patch('library.modules.bigiq_application_http.ModuleParameters.template_reference')
self.p3 = patch('library.modules.bigiq_application_http.ModuleParameters.ssg_reference')
self.p4 = patch('library.modules.bigiq_application_http.ModuleParameters.default_device_reference')
self.m1 = self.p1.start()
self.m2 = self.p2.start()
self.m3 = self.p3.start()
self.m4 = self.p4.start()
self.m1.return_value = '6.1.0'
self.m2.return_value = Mock(return_value='https://localhost/mgmt/foobar1')
self.m3.return_value = Mock(return_value='https://localhost/mgmt/foobar2')
self.m4.return_value = Mock(return_value='https://localhost/mgmt/foobar3')
except Exception:
self.p1 = patch('ansible.modules.network.f5.bigiq_application_http.bigiq_version')
self.p2 = patch('ansible.modules.network.f5.bigiq_application_http.ModuleParameters.template_reference')
self.p3 = patch('ansible.modules.network.f5.bigiq_application_http.ModuleParameters.ssg_reference')
self.p4 = patch('ansible.modules.network.f5.bigiq_application_http.ModuleParameters.default_device_reference')
self.m1 = self.p1.start()
self.m2 = self.p2.start()
self.m3 = self.p3.start()
self.m4 = self.p4.start()
self.m1.return_value = '6.1.0'
self.m2.return_value = Mock(return_value='https://localhost/mgmt/foobar1')
self.m3.return_value = Mock(return_value='https://localhost/mgmt/foobar2')
self.m4.return_value = Mock(return_value='https://localhost/mgmt/foobar3')
def tearDown(self):
self.patcher1.stop()
self.p1.stop()
self.p2.stop()
self.p3.stop()
self.p4.stop()
def test_create(self, *args):
set_module_args(dict(
@@ -154,6 +191,7 @@ class TestManager(unittest.TestCase):
# Override methods to force specific logic in the module to happen
mm = ModuleManager(module=module)
mm.check_bigiq_version = Mock(return_value=True)
mm.has_no_service_environment = Mock(return_value=False)
mm.wait_for_apply_template_task = Mock(return_value=True)
@@ -164,3 +202,43 @@ class TestManager(unittest.TestCase):
assert results['changed'] is True
assert results['description'] == 'my description'
def test_bigiq_version_raises(self):
set_module_args(dict(
name='foo',
description='my description',
service_environment='bar',
servers=[
dict(
address='1.2.3.4',
port=8080
),
dict(
address='5.6.7.8',
port=8000
)
],
inbound_virtual=dict(
address='2.2.2.2',
netmask='255.255.255.255',
port=80
),
provider=dict(
server='localhost',
password='password',
user='admin'
)
))
module = AnsibleModule(
argument_spec=self.spec.argument_spec,
supports_check_mode=self.spec.supports_check_mode
)
msg = 'Module supports only BIGIQ version 6.0.x or lower.'
# Override methods to force specific logic in the module to happen
mm = ModuleManager(module=module)
with pytest.raises(F5ModuleError) as err:
mm.exec_module()
assert str(err.value) == msg

View File

@@ -21,6 +21,7 @@ try:
from library.modules.bigiq_application_https_offload import ModuleParameters
from library.modules.bigiq_application_https_offload import ModuleManager
from library.modules.bigiq_application_https_offload import ArgumentSpec
from library.module_utils.network.f5.common import F5ModuleError
# In Ansible 2.8, Ansible changed import paths.
from test.units.compat import unittest
@@ -33,6 +34,7 @@ except ImportError:
from ansible.modules.network.f5.bigiq_application_https_offload import ModuleParameters
from ansible.modules.network.f5.bigiq_application_https_offload import ModuleManager
from ansible.modules.network.f5.bigiq_application_https_offload import ArgumentSpec
from ansible.module_utils.network.f5.common import F5ModuleError
# Ansible 2.8 imports
from units.compat import unittest
@@ -122,14 +124,49 @@ class TestParameters(unittest.TestCase):
class TestManager(unittest.TestCase):
def setUp(self):
self.spec = ArgumentSpec()
self.patcher1 = patch('time.sleep')
self.patcher1.start()
try:
self.p1 = patch('library.modules.bigiq_application_https_offload.bigiq_version')
self.p2 = patch('library.modules.bigiq_application_https_offload.ModuleParameters.template_reference')
self.p3 = patch('library.modules.bigiq_application_https_offload.ModuleParameters.ssg_reference')
self.p4 = patch('library.modules.bigiq_application_https_offload.ModuleParameters.default_device_reference')
self.m1 = self.p1.start()
self.m2 = self.p2.start()
self.m3 = self.p3.start()
self.m4 = self.p4.start()
self.m1.return_value = '6.1.0'
self.m2.return_value = Mock(return_value='https://localhost/mgmt/foobar1')
self.m3.return_value = Mock(return_value='https://localhost/mgmt/foobar2')
self.m4.return_value = Mock(return_value='https://localhost/mgmt/foobar3')
except Exception:
self.p1 = patch('ansible.modules.network.f5.bigiq_application_https_offload.bigiq_version')
self.p2 = patch('ansible.modules.network.f5.bigiq_application_https_offload.ModuleParameters.template_reference')
self.p3 = patch('ansible.modules.network.f5.bigiq_application_https_offload.ModuleParameters.ssg_reference')
self.p4 = patch('ansible.modules.network.f5.bigiq_application_https_offload.ModuleParameters.default_device_reference')
self.m1 = self.p1.start()
self.m2 = self.p2.start()
self.m3 = self.p3.start()
self.m4 = self.p4.start()
self.m1.return_value = '6.1.0'
self.m2.return_value = Mock(return_value='https://localhost/mgmt/foobar1')
self.m3.return_value = Mock(return_value='https://localhost/mgmt/foobar2')
self.m4.return_value = Mock(return_value='https://localhost/mgmt/foobar3')
def tearDown(self):
self.patcher1.stop()
self.p1.stop()
self.p2.stop()
self.p3.stop()
self.p4.stop()
def test_create(self, *args):
set_module_args(dict(
@@ -165,11 +202,13 @@ class TestManager(unittest.TestCase):
module = AnsibleModule(
argument_spec=self.spec.argument_spec,
supports_check_mode=self.spec.supports_check_mode
supports_check_mode=self.spec.supports_check_mode,
mutually_exclusive=self.spec.mutually_exclusive
)
# Override methods to force specific logic in the module to happen
mm = ModuleManager(module=module)
mm.check_bigiq_version = Mock(return_value=True)
mm.has_no_service_environment = Mock(return_value=False)
mm.wait_for_apply_template_task = Mock(return_value=True)
@@ -180,3 +219,44 @@ class TestManager(unittest.TestCase):
assert results['changed'] is True
assert results['description'] == 'my description'
def test_bigiq_version_raises(self):
set_module_args(dict(
name='foo',
description='my description',
service_environment='bar',
servers=[
dict(
address='1.2.3.4',
port=8080
),
dict(
address='5.6.7.8',
port=8000
)
],
inbound_virtual=dict(
address='2.2.2.2',
netmask='255.255.255.255',
port=80
),
provider=dict(
server='localhost',
password='password',
user='admin'
)
))
module = AnsibleModule(
argument_spec=self.spec.argument_spec,
supports_check_mode=self.spec.supports_check_mode,
mutually_exclusive=self.spec.mutually_exclusive
)
msg = 'Module supports only BIGIQ version 6.0.x or lower.'
# Override methods to force specific logic in the module to happen
mm = ModuleManager(module=module)
with pytest.raises(F5ModuleError) as err:
mm.exec_module()
assert str(err.value) == msg

View File

@@ -21,6 +21,7 @@ try:
from library.modules.bigiq_application_https_waf import ModuleParameters
from library.modules.bigiq_application_https_waf import ModuleManager
from library.modules.bigiq_application_https_waf import ArgumentSpec
from library.module_utils.network.f5.common import F5ModuleError
# In Ansible 2.8, Ansible changed import paths.
from test.units.compat import unittest
@@ -33,6 +34,7 @@ except ImportError:
from ansible.modules.network.f5.bigiq_application_https_waf import ModuleParameters
from ansible.modules.network.f5.bigiq_application_https_waf import ModuleManager
from ansible.modules.network.f5.bigiq_application_https_waf import ArgumentSpec
from ansible.module_utils.network.f5.common import F5ModuleError
# Ansible 2.8 imports
from units.compat import unittest
@@ -126,14 +128,49 @@ class TestParameters(unittest.TestCase):
class TestManager(unittest.TestCase):
def setUp(self):
self.spec = ArgumentSpec()
self.patcher1 = patch('time.sleep')
self.patcher1.start()
try:
self.p1 = patch('library.modules.bigiq_application_https_waf.bigiq_version')
self.p2 = patch('library.modules.bigiq_application_https_waf.ModuleParameters.template_reference')
self.p3 = patch('library.modules.bigiq_application_https_waf.ModuleParameters.ssg_reference')
self.p4 = patch('library.modules.bigiq_application_https_waf.ModuleParameters.default_device_reference')
self.m1 = self.p1.start()
self.m2 = self.p2.start()
self.m3 = self.p3.start()
self.m4 = self.p4.start()
self.m1.return_value = '6.1.0'
self.m2.return_value = Mock(return_value='https://localhost/mgmt/foobar1')
self.m3.return_value = Mock(return_value='https://localhost/mgmt/foobar2')
self.m4.return_value = Mock(return_value='https://localhost/mgmt/foobar3')
except Exception:
self.p1 = patch('ansible.modules.network.f5.bigiq_application_https_waf.bigiq_version')
self.p2 = patch('ansible.modules.network.f5.bigiq_application_https_waf.ModuleParameters.template_reference')
self.p3 = patch('ansible.modules.network.f5.bigiq_application_https_waf.ModuleParameters.ssg_reference')
self.p4 = patch('ansible.modules.network.f5.bigiq_application_https_waf.ModuleParameters.default_device_reference')
self.m1 = self.p1.start()
self.m2 = self.p2.start()
self.m3 = self.p3.start()
self.m4 = self.p4.start()
self.m1.return_value = '6.1.0'
self.m2.return_value = Mock(return_value='https://localhost/mgmt/foobar1')
self.m3.return_value = Mock(return_value='https://localhost/mgmt/foobar2')
self.m4.return_value = Mock(return_value='https://localhost/mgmt/foobar3')
def tearDown(self):
self.patcher1.stop()
self.p1.stop()
self.p2.stop()
self.p3.stop()
self.p4.stop()
def test_create(self, *args):
set_module_args(dict(
@@ -173,11 +210,13 @@ class TestManager(unittest.TestCase):
module = AnsibleModule(
argument_spec=self.spec.argument_spec,
supports_check_mode=self.spec.supports_check_mode
supports_check_mode=self.spec.supports_check_mode,
mutually_exclusive=self.spec.mutually_exclusive
)
# Override methods to force specific logic in the module to happen
mm = ModuleManager(module=module)
mm.check_bigiq_version = Mock(return_value=True)
mm.has_no_service_environment = Mock(return_value=False)
mm.wait_for_apply_template_task = Mock(return_value=True)
@@ -188,3 +227,44 @@ class TestManager(unittest.TestCase):
assert results['changed'] is True
assert results['description'] == 'my description'
def test_bigiq_version_raises(self):
set_module_args(dict(
name='foo',
description='my description',
service_environment='bar',
servers=[
dict(
address='1.2.3.4',
port=8080
),
dict(
address='5.6.7.8',
port=8000
)
],
inbound_virtual=dict(
address='2.2.2.2',
netmask='255.255.255.255',
port=80
),
provider=dict(
server='localhost',
password='password',
user='admin'
)
))
module = AnsibleModule(
argument_spec=self.spec.argument_spec,
supports_check_mode=self.spec.supports_check_mode,
mutually_exclusive=self.spec.mutually_exclusive
)
msg = 'Module supports only BIGIQ version 6.0.x or lower.'
# Override methods to force specific logic in the module to happen
mm = ModuleManager(module=module)
with pytest.raises(F5ModuleError) as err:
mm.exec_module()
assert str(err.value) == msg