Unit tests for fuel network manegement ansible module
- Refactored code - Added unit test Change-Id: I22c6346280194d570a4c47fc95fdde2bc96e8264
This commit is contained in:
parent
3b0fdcea39
commit
5b3de0b151
@ -12,6 +12,7 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from ansible.module_utils.basic import * # noqa
|
||||
|
||||
NETWORK_NAME_TO_INTERFACE = {
|
||||
'management': 'br-mgmt',
|
||||
@ -32,19 +33,12 @@ def main():
|
||||
operation = module.params['operation']
|
||||
network_name = module.params['network_name']
|
||||
|
||||
interface = NETWORK_NAME_TO_INTERFACE.get(network_name)
|
||||
cmd = 'ip link set %s %s ' % (interface, operation)
|
||||
interface = NETWORK_NAME_TO_INTERFACE[network_name]
|
||||
cmd = 'ip link set %s %s' % (interface, operation)
|
||||
|
||||
rc, stdout, stderr = module.run_command(cmd)
|
||||
rc, stdout, stderr = module.run_command(cmd, check_rc=True)
|
||||
module.exit_json(cmd=cmd, rc=rc, stderr=stderr, stdout=stdout)
|
||||
|
||||
try:
|
||||
result = dict(rc=rc, stderr=stderr, stdout=stdout, cmd=cmd)
|
||||
module.exit_json(**result)
|
||||
except Exception as e:
|
||||
module.fail_json(msg=e, rc=rc, stderr=stderr, stdout=stdout, cmd=cmd)
|
||||
|
||||
|
||||
from ansible.module_utils.basic import * # noqa
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
0
os_faults/tests/ansible/__init__.py
Normal file
0
os_faults/tests/ansible/__init__.py
Normal file
0
os_faults/tests/ansible/modules/__init__.py
Normal file
0
os_faults/tests/ansible/modules/__init__.py
Normal file
51
os_faults/tests/ansible/modules/test_fule_network_mgmt.py
Normal file
51
os_faults/tests/ansible/modules/test_fule_network_mgmt.py
Normal file
@ -0,0 +1,51 @@
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
# implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import ddt
|
||||
import mock
|
||||
|
||||
from os_faults.ansible.modules import fuel_network_mgmt
|
||||
from os_faults.tests import test
|
||||
|
||||
|
||||
@ddt.ddt
|
||||
class FuelNetworkManagementTestCase(test.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(FuelNetworkManagementTestCase, self).setUp()
|
||||
|
||||
@ddt.data(['management', 'up', 'ip link set br-mgmt up'],
|
||||
['management', 'down', 'ip link set br-mgmt down'],
|
||||
['public', 'up', 'ip link set br-ex up'],
|
||||
['public', 'down', 'ip link set br-ex down'],
|
||||
['private', 'up', 'ip link set br-prv up'],
|
||||
['private', 'down', 'ip link set br-prv down'],
|
||||
['storage', 'up', 'ip link set br-storage up'],
|
||||
['storage', 'down', 'ip link set br-storage down'])
|
||||
@ddt.unpack
|
||||
@mock.patch("os_faults.ansible.modules.fuel_network_mgmt.AnsibleModule")
|
||||
def test_main(self, network_name, operation, cmd, mock_ansible_module):
|
||||
ansible_module_inst = mock_ansible_module.return_value
|
||||
ansible_module_inst.run_command.return_value = [
|
||||
'myrc', 'mystdout', 'mystderr']
|
||||
ansible_module_inst.params = {
|
||||
'network_name': network_name,
|
||||
'operation': operation,
|
||||
}
|
||||
fuel_network_mgmt.main()
|
||||
ansible_module_inst.exit_json.assert_called_once_with(
|
||||
cmd=cmd,
|
||||
rc='myrc',
|
||||
stdout='mystdout',
|
||||
stderr='mystderr',
|
||||
)
|
Loading…
x
Reference in New Issue
Block a user