mirror of
https://github.com/Telecominfraproject/wlan-testing.git
synced 2025-11-01 19:37:54 +00:00
Added Bridge mode fixtures
Signed-off-by: shivamcandela <shivam.thakur@candelatech.com>
This commit is contained in:
@@ -1,13 +1,15 @@
|
||||
# import files in the current directory
|
||||
import datetime
|
||||
import sys
|
||||
import os
|
||||
import time
|
||||
|
||||
sys.path.append(
|
||||
os.path.dirname(
|
||||
os.path.realpath( __file__ )
|
||||
os.path.realpath(__file__)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
if 'cloudsdk' not in sys.path:
|
||||
sys.path.append(f'../libs/cloudsdk')
|
||||
if 'apnos' not in sys.path:
|
||||
@@ -17,8 +19,10 @@ from apnos import APNOS
|
||||
from cloudsdk import CloudSDK
|
||||
from cloudsdk import ProfileUtility
|
||||
import pytest
|
||||
import logging
|
||||
from configuration_data import PROFILE_DATA
|
||||
|
||||
|
||||
def pytest_addoption(parser):
|
||||
parser.addini("jfrog-base-url", "jfrog base url")
|
||||
parser.addini("jfrog-user-id", "jfrog username")
|
||||
@@ -51,7 +55,7 @@ def pytest_addoption(parser):
|
||||
parser.addini("skip-wpa", "skip wpa ssid mode")
|
||||
parser.addini("skip-wpa2", "skip wpa2 ssid mode")
|
||||
parser.addini("skip-eap", "skip eap ssid mode")
|
||||
# change behaviour
|
||||
# change behaviour
|
||||
parser.addoption(
|
||||
"--skip-update-firmware",
|
||||
action="store_true",
|
||||
@@ -63,75 +67,108 @@ def pytest_addoption(parser):
|
||||
parser.addoption(
|
||||
"--access-points",
|
||||
# nargs="+",
|
||||
default=[ "ECW5410" ],
|
||||
default=["ECW5410"],
|
||||
help="list of access points to test"
|
||||
)
|
||||
|
||||
|
||||
"""
|
||||
Fixtures for Instantiate the Objects
|
||||
"""
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def instantiate_cloudsdk(request):
|
||||
sdk_client = CloudSDK(testbed=request.config.getini("testbed-name"),
|
||||
customer_id=request.config.getini("sdk-customer-id"))
|
||||
yield sdk_client
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def instantiate_jFrog(request):
|
||||
yield "instantiate_jFrog"
|
||||
|
||||
|
||||
"""
|
||||
Fixtures for Getting Essentials from ini
|
||||
"""
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def get_testbed_name(request):
|
||||
yield request.config.getini("testbed-name")
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def get_customer_id(request):
|
||||
yield request.config.getini("sdk-customer-id")
|
||||
|
||||
|
||||
"""
|
||||
Fixtures for CloudSDK Utilities
|
||||
"""
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def get_equipment_model(request, instantiate_cloudsdk, get_equipment_id):
|
||||
yield request.config.getini("testbed-name")
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def get_current_firmware(request, instantiate_cloudsdk, get_equipment_model):
|
||||
yield request.config.getini("testbed-name")
|
||||
|
||||
|
||||
def pytest_generate_tests(metafunc):
|
||||
if 'access_points' in metafunc.fixturenames:
|
||||
metafunc.parametrize("access_points", metafunc.config.getoption('--access-points'), scope="session")
|
||||
|
||||
|
||||
# run something after all tests are done regardless of the outcome
|
||||
def pytest_unconfigure(config):
|
||||
# cleanup or reporting
|
||||
print("Tests cleanup done")
|
||||
|
||||
|
||||
@pytest.fixture(scope="function")
|
||||
def setup_cloudsdk(request, instantiate_cloudsdk):
|
||||
equipment_id = instantiate_cloudsdk.validate_equipment_availability(equipment_id=int(request.config.getini("sdk-equipment-id")))
|
||||
equipment_id = instantiate_cloudsdk.validate_equipment_availability(
|
||||
equipment_id=int(request.config.getini("sdk-equipment-id")))
|
||||
if equipment_id == -1:
|
||||
yield -1
|
||||
else:
|
||||
yield equipment_id
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def update_firmware(request, instantiate_jFrog, instantiate_cloudsdk, retrieve_latest_image, access_points):
|
||||
if request.config.getoption("--skip-update-firmware"):
|
||||
return
|
||||
yield "update_firmware"
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def retrieve_latest_image(request, access_points):
|
||||
if request.config.getoption("--skip-update-firmware"):
|
||||
return
|
||||
yield "retrieve_latest_image"
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def instantiate_cloudsdk(request):
|
||||
sdk_client = CloudSDK(testbed=request.config.getini("testbed-name"), customer_id=request.config.getini("sdk-customer-id"))
|
||||
yield sdk_client
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def instantiate_jFrog(request):
|
||||
|
||||
yield "instantiate_jFrog"
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def get_customer_id(request):
|
||||
yield request.config.getini("sdk-customer-id")
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def get_testbed_name(request):
|
||||
yield request.config.getini("testbed-name")
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def get_equipment_model(request, instantiate_cloudsdk):
|
||||
yield request.config.getini("testbed-name")
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def get_current_firmware(request, instantiate_cloudsdk, get_equipment_model):
|
||||
yield request.config.getini("testbed-name")
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def get_latest_firmware(request, instantiate_cloudsdk, get_equipment_model):
|
||||
yield request.config.getini("testbed-name")
|
||||
|
||||
|
||||
@pytest.fixture(scope="function")
|
||||
def disconnect_cloudsdk(instantiate_cloudsdk):
|
||||
instantiate_cloudsdk.disconnect_cloudsdk()
|
||||
|
||||
|
||||
@pytest.fixture(scope="function")
|
||||
def setup_bridge_mode(request, instantiate_cloudsdk, setup_profile_data, create_bridge_profile):
|
||||
# vif config and vif state logic here
|
||||
logging.basicConfig(level=logging.DEBUG)
|
||||
log = logging.getLogger('test_1')
|
||||
APNOS_CREDENTIAL_DATA = {
|
||||
'jumphost_ip': request.config.getini("jumphost_ip"),
|
||||
'jumphost_username': request.config.getini("jumphost_username"),
|
||||
@@ -139,18 +176,46 @@ def setup_bridge_mode(request, instantiate_cloudsdk, setup_profile_data, create_
|
||||
'jumphost_port': request.config.getini("jumphost_port")
|
||||
}
|
||||
obj = APNOS(APNOS_CREDENTIAL_DATA)
|
||||
obj.get_vif_config_ssids()
|
||||
condition = ""
|
||||
if condition: # Condition that matches the vif config data with pushed profile data
|
||||
yield True
|
||||
else:
|
||||
yield False
|
||||
profile_data = create_bridge_profile
|
||||
vif_config = list(obj.get_vif_config_ssids())
|
||||
vif_config.sort()
|
||||
vif_state = list(obj.get_vif_state_ssids())
|
||||
vif_state.sort()
|
||||
profile_data = list(profile_data)
|
||||
profile_data.sort()
|
||||
for i in range(18):
|
||||
print("profiles pushed: ", profile_data)
|
||||
print("vif config data: ", vif_config)
|
||||
print("vif state data: ", vif_state)
|
||||
if profile_data == vif_config:
|
||||
print("matched")
|
||||
if vif_config == vif_state:
|
||||
status = True
|
||||
print("matched 1")
|
||||
break
|
||||
else:
|
||||
print("matched 2")
|
||||
status = False
|
||||
else:
|
||||
status = False
|
||||
time.sleep(10)
|
||||
vif_config = list(obj.get_vif_config_ssids())
|
||||
vif_config.sort()
|
||||
vif_state = list(obj.get_vif_state_ssids())
|
||||
vif_state.sort()
|
||||
profile_data = list(profile_data)
|
||||
profile_data.sort()
|
||||
|
||||
def delete_profile(profile_data, sdk_client):
|
||||
print(f"Cloud SDK cleanup for {request.node.originalname}, {profile_data}")
|
||||
delete_profiles(profile_names=profile_data, sdk_client=sdk_client)
|
||||
request.addfinalizer(delete_profile(profile_data, instantiate_cloudsdk))
|
||||
yield [profile_data, vif_config, vif_state]
|
||||
|
||||
@pytest.fixture(scope="function")
|
||||
def setup_profile_data(request, setup_profile_data):
|
||||
def setup_profile_data(request):
|
||||
# logic to setup bridge mode ssid and parameters
|
||||
pass
|
||||
|
||||
yield True
|
||||
|
||||
|
||||
@pytest.fixture(scope="function")
|
||||
@@ -159,6 +224,7 @@ def create_bridge_profile(request, instantiate_cloudsdk, get_testbed_name):
|
||||
profile_object = ProfileUtility(sdk_client=instantiate_cloudsdk)
|
||||
profile_object.get_default_profiles()
|
||||
profile_object.set_rf_profile()
|
||||
ssid_list = []
|
||||
if request.config.getini("skip-open") == 'False':
|
||||
profile_data = {
|
||||
"profile_name": "%s-%s-%s" % (get_testbed_name, "ecw5410", '2G_O_BR'),
|
||||
@@ -166,12 +232,14 @@ def create_bridge_profile(request, instantiate_cloudsdk, get_testbed_name):
|
||||
"mode": "BRIDGE"
|
||||
}
|
||||
profile_object.create_open_ssid_profile(profile_data=profile_data, fiveg=False)
|
||||
ssid_list.append(profile_data["profile_name"])
|
||||
profile_data = {
|
||||
"profile_name": "%s-%s-%s" % (get_testbed_name, "ecw5410", '5G_O_BR'),
|
||||
"ssid_name": "%s-%s-%s" % (get_testbed_name, "ecw5410", '5G_O_BR'),
|
||||
"mode": "BRIDGE"
|
||||
}
|
||||
profile_object.create_open_ssid_profile(profile_data=profile_data, two4g=False)
|
||||
ssid_list.append(profile_data["profile_name"])
|
||||
# Create an open ssid profile
|
||||
if request.config.getini("skip-wpa") == 'False':
|
||||
profile_data = {
|
||||
@@ -181,6 +249,7 @@ def create_bridge_profile(request, instantiate_cloudsdk, get_testbed_name):
|
||||
"security_key": "%s-%s" % ("ecw5410", "2G_WPA_BR")
|
||||
}
|
||||
profile_object.create_wpa_ssid_profile(profile_data=profile_data, fiveg=False)
|
||||
ssid_list.append(profile_data["profile_name"])
|
||||
profile_data = {
|
||||
"profile_name": "%s-%s-%s" % (get_testbed_name, "ecw5410", '5G_WPA_BR'),
|
||||
"ssid_name": "%s-%s-%s" % (get_testbed_name, "ecw5410", '5G_WPA_BR'),
|
||||
@@ -188,6 +257,7 @@ def create_bridge_profile(request, instantiate_cloudsdk, get_testbed_name):
|
||||
"security_key": "%s-%s" % ("ecw5410", "5G_WPA_BR")
|
||||
}
|
||||
profile_object.create_wpa_ssid_profile(profile_data=profile_data, two4g=False)
|
||||
ssid_list.append(profile_data["profile_name"])
|
||||
# Create a wpa profile
|
||||
pass
|
||||
if request.config.getini("skip-wpa2") == 'False':
|
||||
@@ -198,6 +268,7 @@ def create_bridge_profile(request, instantiate_cloudsdk, get_testbed_name):
|
||||
"security_key": "%s-%s" % ("ecw5410", "5G_WPA2_BR")
|
||||
}
|
||||
profile_object.create_wpa2_personal_ssid_profile(profile_data=profile_data, fiveg=False)
|
||||
ssid_list.append(profile_data["profile_name"])
|
||||
profile_data = {
|
||||
"profile_name": "%s-%s-%s" % (get_testbed_name, "ecw5410", '2G_WPA2_BR'),
|
||||
"ssid_name": "%s-%s-%s" % (get_testbed_name, "ecw5410", '2G_WPA2_BR'),
|
||||
@@ -205,6 +276,7 @@ def create_bridge_profile(request, instantiate_cloudsdk, get_testbed_name):
|
||||
"security_key": "%s-%s" % ("ecw5410", "2G_WPA2_BR")
|
||||
}
|
||||
profile_object.create_wpa2_personal_ssid_profile(profile_data=profile_data, two4g=False)
|
||||
ssid_list.append(profile_data["profile_name"])
|
||||
# Create a wpa2 profile
|
||||
pass
|
||||
if request.config.getini("skip-eap") == 'False':
|
||||
@@ -221,8 +293,10 @@ def create_bridge_profile(request, instantiate_cloudsdk, get_testbed_name):
|
||||
}
|
||||
profile_object.set_ap_profile(profile_data=profile_data)
|
||||
profile_object.push_profile_old_method(equipment_id='13')
|
||||
|
||||
# create an equipment ap profile
|
||||
yield profile_object
|
||||
yield ssid_list
|
||||
|
||||
|
||||
@pytest.fixture(scope="function")
|
||||
def setup_nat_profile(request, instantiate_cloudsdk, get_testbed_name):
|
||||
@@ -295,6 +369,7 @@ def setup_nat_profile(request, instantiate_cloudsdk, get_testbed_name):
|
||||
# create an equipment ap profile
|
||||
yield profile_object
|
||||
|
||||
|
||||
@pytest.fixture(scope="function")
|
||||
def setup_vlan_profile(request, instantiate_cloudsdk):
|
||||
# SSID and AP name shall be used as testbed_name and mode
|
||||
@@ -316,6 +391,7 @@ def setup_vlan_profile(request, instantiate_cloudsdk):
|
||||
# create an equipment ap profile
|
||||
yield profile_object
|
||||
|
||||
|
||||
@pytest.fixture(scope="function")
|
||||
def apply_default_profile(instantiate_cloudsdk):
|
||||
profile_object = ProfileUtility(sdk_client=instantiate_cloudsdk)
|
||||
@@ -323,8 +399,9 @@ def apply_default_profile(instantiate_cloudsdk):
|
||||
profile_object.profile_creation_ids['ap'] = profile_object.default_profiles['equipment_ap_3_radios']
|
||||
profile_object.push_profile_old_method(equipment_id='13')
|
||||
|
||||
@pytest.fixture(scope="function")
|
||||
def delete_profiles(instantiate_cloudsdk):
|
||||
profile_object = ProfileUtility(sdk_client=instantiate_cloudsdk)
|
||||
|
||||
def delete_profiles(profile_names, sdk_client=None):
|
||||
profile_object = ProfileUtility(sdk_client=sdk_client)
|
||||
profile_object.get_default_profiles()
|
||||
profile_object.profile_creation_ids['ap'] = profile_object.default_profiles['equipment_ap_3_radios']
|
||||
profile_object.push_profile_old_method()
|
||||
|
||||
Reference in New Issue
Block a user