From 98f1d062cad5b2d89945b24f616f1c769a0a1cec Mon Sep 17 00:00:00 2001 From: zhongjun Date: Thu, 10 Aug 2017 19:34:10 +0800 Subject: Add more unit test case in test_get_conf.py Add more unit test cases by pytest parametrize fixture. Change-Id: I208bcff9af79b73556638e20df96235c4ac60ee2 Signed-off-by: zhongjun --- tests/data/lab_conf/deploy_virtual2.yml | 15 ++++ tests/data/lab_conf/network_virtual2.yml | 69 +++++++++++++++++++ tests/unit/test_get_conf.py | 115 ++++++++++++++++++++----------- 3 files changed, 158 insertions(+), 41 deletions(-) create mode 100644 tests/data/lab_conf/deploy_virtual2.yml create mode 100644 tests/data/lab_conf/network_virtual2.yml diff --git a/tests/data/lab_conf/deploy_virtual2.yml b/tests/data/lab_conf/deploy_virtual2.yml new file mode 100644 index 00000000..d4c99e97 --- /dev/null +++ b/tests/data/lab_conf/deploy_virtual2.yml @@ -0,0 +1,15 @@ +adapter: libvirt +hosts: +- name: 'all_in_one' + roles: + - 'CONTROLLER_LB' + - 'COMPUTER' + template: 'templates/virtual_environment/vms/all_in_one.xml' +disks: + daisy: 50 + controller: 110 + compute: 110 +daisy_passwd: 'r00tme' +daisy_ip: '10.20.11.2' +daisy_gateway: '10.20.11.1' +ceph_disk_name: '' \ No newline at end of file diff --git a/tests/data/lab_conf/network_virtual2.yml b/tests/data/lab_conf/network_virtual2.yml new file mode 100644 index 00000000..7b4a501c --- /dev/null +++ b/tests/data/lab_conf/network_virtual2.yml @@ -0,0 +1,69 @@ +############################################################################## +# Copyright (c) 2016 ZTE Coreporation and others. +# hu.zhijiang@zte.com.cn +# sun.jing22@zte.com.cn +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +network-config-metadata: + title: 'zte-virtual2 network config' + version: '0.1' + created: 'Tue Apr 11 2017' + comment: 'all-in-one vm node deploy' +networks: + - cidr: '10.20.11.0/24' + gateway: '10.20.11.1' + ip_ranges: + - start: '10.20.11.3' + end: '10.20.11.10' + name: 'MANAGEMENT' + - cidr: '10.20.11.0/24' + gateway: '10.20.11.1' + ip_ranges: + - start: '10.20.11.3' + end: '10.20.11.10' + name: 'STORAGE' + - cidr: '172.10.101.0/24' + gateway: '172.10.101.1' + ip_ranges: + - start: '172.10.101.2' + end: '172.10.101.20' + name: 'EXTERNAL' + network_name: 'admin_external' + mapping: 'physnet1' + - cidr: '10.20.11.0/24' + gateway: '10.20.11.1' + ip_ranges: + - start: '10.20.11.3' + end: '10.20.11.10' + name: 'PUBLICAPI' + - cidr: '10.20.11.0/24' + gateway: '10.20.11.1' + ip_ranges: + - start: '10.20.11.3' + end: '10.20.11.10' + name: 'TENANT' + - cidr: '100.20.11.0/24' + gateway: '100.20.11.1' + ip_ranges: + - start: '100.20.11.3' + end: '100.20.11.10' + name: 'HEARTBEAT' +interfaces: + - name: 'EXTERNAL' + interface: 'ens8' + - name: 'MANAGEMENT' + interface: 'ens3' + - name: 'PUBLICAPI' + interface: 'ens3' + - name: 'STORAGE' + interface: 'ens3' + - name: 'TENANT' + interface: 'ens3' + - name: 'HEARTBEAT' + interface: 'ens9' +internal_vip: '10.20.11.11' +public_vip: '10.20.11.11' diff --git a/tests/unit/test_get_conf.py b/tests/unit/test_get_conf.py index f882d9d2..dd8480fa 100644 --- a/tests/unit/test_get_conf.py +++ b/tests/unit/test_get_conf.py @@ -18,49 +18,82 @@ from deploy.get_conf import ( @pytest.fixture(scope="session") -def deploy_file(data_root): - return os.path.join(data_root, 'lab_conf', 'deploy_virtual1.yml') +def conf_file_dir(data_root): + return os.path.join(data_root, 'lab_conf') -@pytest.fixture(scope="session") -def network_file(data_root): - return os.path.join(data_root, 'lab_conf', 'network_virtual1.yml') - - -def test_get_yml_para(deploy_file): - assert get_yml_para(deploy_file) == (50, 110, 110, 'r00tme', '10.20.11.2', '10.20.11.1', 5) +@pytest.mark.parametrize('deploy_file_name, expected', [ + ('deploy_virtual1.yml', (50, 110, 110, 'r00tme', '10.20.11.2', '10.20.11.1', 5)), + ('deploy_virtual2.yml', (50, 110, 110, 'r00tme', '10.20.11.2', '10.20.11.1', 1))]) +def test_get_yml_para(conf_file_dir, deploy_file_name, expected): + deploy_file = os.path.join(conf_file_dir, deploy_file_name) + assert get_yml_para(deploy_file) == expected -def test_config(deploy_file, network_file): +@pytest.mark.parametrize('deploy_file_name, network_file_name, expected', [ + ('deploy_virtual1.yml', 'network_virtual1.yml', + ({'ens8': [{'ip': '', 'name': 'EXTERNAL'}], + 'ens3': [{'ip': '', 'name': 'MANAGEMENT'}, + {'ip': '', 'name': 'PUBLICAPI'}, + {'ip': '', 'name': 'STORAGE'}, + {'ip': '', 'name': 'physnet1'}], + 'ens9': [{'ip': '', 'name': 'HEARTBEAT'}]}, + ['computer01', 'computer02', 'controller01', 'controller02', 'controller03'], + {'MANAGEMENT': {'cidr': '10.20.11.0/24', 'gateway': '10.20.11.1', + 'ip_ranges': [{'start': '10.20.11.3', + 'end': '10.20.11.10'}]}, + 'STORAGE': {'cidr': '10.20.11.0/24', 'gateway': '10.20.11.1', + 'ip_ranges': [{'start': '10.20.11.3', + 'end': '10.20.11.10'}]}, + 'EXTERNAL': {'cidr': '172.10.101.0/24', 'gateway': '172.10.101.1', + 'ip_ranges': [{'start': '172.10.101.2', + 'end': '172.10.101.20'}], + 'network_name': 'admin_external', + 'mapping': 'physnet1'}, + 'PUBLICAPI': {'cidr': '10.20.11.0/24', 'gateway': '10.20.11.1', + 'ip_ranges': [{'start': '10.20.11.3', + 'end': '10.20.11.10'}]}, + 'physnet1': {'cidr': '10.20.11.0/24', 'gateway': '10.20.11.1', + 'ip_ranges': [{'start': '10.20.11.3', + 'end': '10.20.11.10'}]}, + 'HEARTBEAT': {'cidr': '100.20.11.0/24', 'gateway': '100.20.11.1', + 'ip_ranges': [{'start': '100.20.11.3', + 'end': '100.20.11.10'}]}}, + '10.20.11.11', '/dev/sdb', + {'controller01': [], 'controller02': [], 'controller03': [], + 'computer01': [], 'computer02': []})), + ('deploy_virtual2.yml', 'network_virtual2.yml', + ({'ens8': [{'ip': '', 'name': 'EXTERNAL'}], + 'ens3': [{'ip': '', 'name': 'MANAGEMENT'}, + {'ip': '', 'name': 'PUBLICAPI'}, + {'ip': '', 'name': 'STORAGE'}, + {'ip': '', 'name': 'physnet1'}], + 'ens9': [{'ip': '', 'name': 'HEARTBEAT'}]}, + ['all_in_one'], + {'MANAGEMENT': {'cidr': '10.20.11.0/24', 'gateway': '10.20.11.1', + 'ip_ranges': [{'start': '10.20.11.3', + 'end': '10.20.11.10'}]}, + 'STORAGE': {'cidr': '10.20.11.0/24', 'gateway': '10.20.11.1', + 'ip_ranges': [{'start': '10.20.11.3', + 'end': '10.20.11.10'}]}, + 'EXTERNAL': {'cidr': '172.10.101.0/24', 'gateway': '172.10.101.1', + 'ip_ranges': [{'start': '172.10.101.2', + 'end': '172.10.101.20'}], + 'network_name': 'admin_external', + 'mapping': 'physnet1'}, + 'PUBLICAPI': {'cidr': '10.20.11.0/24', 'gateway': '10.20.11.1', + 'ip_ranges': [{'start': '10.20.11.3', + 'end': '10.20.11.10'}]}, + 'physnet1': {'cidr': '10.20.11.0/24', 'gateway': '10.20.11.1', + 'ip_ranges': [{'start': '10.20.11.3', + 'end': '10.20.11.10'}]}, + 'HEARTBEAT': {'cidr': '100.20.11.0/24', 'gateway': '100.20.11.1', + 'ip_ranges': [{'start': '100.20.11.3', + 'end': '100.20.11.10'}]}}, + '10.20.11.11', '', + {'all_in_one': []}))]) +def test_config(conf_file_dir, deploy_file_name, network_file_name, expected): + deploy_file = os.path.join(conf_file_dir, deploy_file_name) + network_file = os.path.join(conf_file_dir, network_file_name) result = config(deploy_file, network_file) - expect = ({'ens8': [{'ip': '', 'name': 'EXTERNAL'}], - 'ens3': [{'ip': '', 'name': 'MANAGEMENT'}, - {'ip': '', 'name': 'PUBLICAPI'}, - {'ip': '', 'name': 'STORAGE'}, - {'ip': '', 'name': 'physnet1'}], - 'ens9': [{'ip': '', 'name': 'HEARTBEAT'}]}, - ['computer01', 'computer02', 'controller01', 'controller02', 'controller03'], - {'MANAGEMENT': {'cidr': '10.20.11.0/24', 'gateway': '10.20.11.1', - 'ip_ranges': [{'start': '10.20.11.3', - 'end': '10.20.11.10'}]}, - 'STORAGE': {'cidr': '10.20.11.0/24', 'gateway': '10.20.11.1', - 'ip_ranges': [{'start': '10.20.11.3', - 'end': '10.20.11.10'}]}, - 'EXTERNAL': {'cidr': '172.10.101.0/24', 'gateway': '172.10.101.1', - 'ip_ranges': [{'start': '172.10.101.2', - 'end': '172.10.101.20'}], - 'network_name': 'admin_external', - 'mapping': 'physnet1'}, - 'PUBLICAPI': {'cidr': '10.20.11.0/24', 'gateway': '10.20.11.1', - 'ip_ranges': [{'start': '10.20.11.3', - 'end': '10.20.11.10'}]}, - 'physnet1': {'cidr': '10.20.11.0/24', 'gateway': '10.20.11.1', - 'ip_ranges': [{'start': '10.20.11.3', - 'end': '10.20.11.10'}]}, - 'HEARTBEAT': {'cidr': '100.20.11.0/24', 'gateway': '100.20.11.1', - 'ip_ranges': [{'start': '100.20.11.3', - 'end': '100.20.11.10'}]}}, - '10.20.11.11', '/dev/sdb', - {'controller01': [], 'controller02': [], 'controller03': [], - 'computer01': [], 'computer02': []}) - assert DeepDiff(result, expect, ignore_order=True) == {} + assert DeepDiff(result, expected, ignore_order=True) == {} -- cgit 1.2.3-korg