Merge pull request #120 from Telecominfraproject/staging-wifi-3371

seperate fixture files for 2.x and 1.x
This commit is contained in:
Shivam Thakur
2021-08-08 18:33:29 +05:30
committed by GitHub
27 changed files with 1219 additions and 1339 deletions

Submodule lanforge/lanforge-scripts updated: 7fe8579ceb...16276e080c

View File

@@ -104,7 +104,7 @@ class ConfigureController:
return True
class UController(ConfigureController):
class Controller(ConfigureController):
def __init__(self, controller_data=None):
super().__init__(controller_data)
@@ -282,6 +282,9 @@ class UProfileUtility:
def add_ssid(self, ssid_data, radius=False, radius_auth_data={}, radius_accounting_data={}):
print("ssid data : ", ssid_data)
ssid_info = {'name': ssid_data["ssid_name"], "bss-mode": "ap", "wifi-bands": [], "services": ["wifi-frames"]}
for options in ssid_data:
if options == "rate-limit":
ssid_info[options] = ssid_data[options]
for i in ssid_data["appliedRadios"]:
ssid_info["wifi-bands"].append(i)
ssid_info['encryption'] = {}
@@ -368,13 +371,13 @@ if __name__ == '__main__':
'username': "tip@ucentral.com",
'password': 'openwifi',
}
obj = UController(controller_data=controller)
profile = UProfileUtility(sdk_client=obj)
profile.set_mode(mode="BRIDGE")
profile.set_radio_config()
ssid = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security": "psk", "security_key": "something",
"vlan": 100}
profile.add_ssid(ssid_data=ssid)
profile.push_config(serial_number="903cb39d6918")
obj = Controller(controller_data=controller)
# profile = UProfileUtility(sdk_client=obj)
# profile.set_mode(mode="BRIDGE")
# profile.set_radio_config()
# ssid = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security": "psk", "security_key": "something",
# "vlan": 100, "rate-limit": {"ingress-rate": 50, "egress-rate": 50}}
# profile.add_ssid(ssid_data=ssid)
# profile.push_config(serial_number="903cb39d6918")
# print(obj.get_devices())
obj.logout()

View File

@@ -213,7 +213,8 @@ class RunTest:
self.eap_connect.cleanup(station_name)
return self.eap_connect.passes()
def wifi_capacity(self, mode="BRIDGE", vlan_id=100, instance_name="wct_instance", download_rate="1Gbps",
def wifi_capacity(self, mode="BRIDGE", vlan_id=100, batch_size="1,5,10,20,40,64,128",
instance_name="wct_instance", download_rate="1Gbps",
upload_rate="1Gbps", protocol="TCP-IPv4", duration="60000"):
instance_name = ''.join(random.choices(string.ascii_uppercase + string.digits, k=S))
if mode == "BRIDGE":
@@ -231,7 +232,7 @@ class RunTest:
instance_name=instance_name,
config_name="wifi_config",
upstream="1.1." + upstream_port,
batch_size="1,5,10,20,40,64,128",
batch_size=batch_size,
loop_iter="1",
protocol=protocol,
duration=duration,
@@ -254,9 +255,9 @@ class RunTest:
wificapacity_obj.setup()
wificapacity_obj.run()
report_name = wificapacity_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
influx = CSVtoInflux(influxdb=self.influxdb, _influx_tag=self.influx_params["influx_tag"],
target_csv=self.local_report_path + report_name + "/kpi.csv")
influx.post_to_influx()
# influx = CSVtoInflux(influxdb=self.influxdb, _influx_tag=self.influx_params["influx_tag"],
# target_csv=self.local_report_path + report_name + "/kpi.csv")
# influx.post_to_influx()
return wificapacity_obj
def Client_Connect(self, ssid="[BLANK]", passkey="[BLANK]", security="wpa2", mode="BRIDGE", band="twog",

View File

@@ -40,9 +40,8 @@ from LANforge.LFUtils import *
if 'py-json' not in sys.path:
sys.path.append('../py-scripts')
from apnos.apnos import APNOS
from controller.controller import Controller
from controller.ucentral_ctlr import UController
from controller.controller import FirmwareUtility
from controller.controller_1x.controller import Controller
from controller.controller_1x.controller import FirmwareUtility
import pytest
from cv_test_manager import cv_test
from configuration import CONFIGURATION
@@ -59,6 +58,14 @@ from typing import Any, Callable, Optional
from _pytest.fixtures import SubRequest
from pytest import fixture
import fixtures_1x
from fixtures_1x import Fixtures_1x
import fixtures_2x
from fixtures_2x import Fixtures_2x
ALLURE_ENVIRONMENT_PROPERTIES_FILE = 'environment.properties'
ALLUREDIR_OPTION = '--alluredir'
def pytest_addoption(parser):
"""pytest addoption function: contains ini objects and options"""
@@ -201,14 +208,12 @@ def exit_on_fail(request):
@pytest.fixture(scope="session")
def radius_info():
"""yields the radius server information from lab info file"""
allure.attach(body=str(RADIUS_SERVER_DATA), name="Radius server Info: ")
yield RADIUS_SERVER_DATA
@pytest.fixture(scope="session")
def radius_accounting_info():
"""yields the radius accounting information from lab info file"""
allure.attach(body=str(RADIUS_ACCOUNTING_DATA), name="Radius server Info: ")
yield RADIUS_ACCOUNTING_DATA
@@ -255,40 +260,19 @@ def instantiate_access_point(testbed, get_apnos, get_configuration):
# Controller Fixture
@pytest.fixture(scope="session")
def setup_controller(request, get_configuration, test_access_point, add_env_properties):
def setup_controller(request, get_configuration, test_access_point, add_env_properties, fixtures_ver):
"""sets up the controller connection and yields the sdk_client object"""
try:
if request.config.getoption("1.x"):
sdk_client = Controller(controller_data=get_configuration["controller"])
def teardown_controller():
print("\nTest session Completed")
sdk_client.disconnect_Controller()
request.addfinalizer(teardown_controller)
else:
sdk_client = UController(controller_data=get_configuration["controller"])
def teardown_ucontroller():
print("\nTest session Completed")
sdk_client.logout()
try:
sdk_client.logout()
except Exception as e:
print(e)
request.addfinalizer(teardown_ucontroller)
except Exception as e:
print(e)
allure.attach(body=str(e), name="Controller Instantiation Failed: ")
sdk_client = False
pytest.exit("unable to communicate to Controller" + str(e))
sdk_client = fixtures_ver.controller_obj
request.addfinalizer(fixtures_ver.disconnect)
yield sdk_client
@pytest.fixture(scope="session")
def setup_firmware(fixtures_ver):
""" Fixture to Setup Firmware with the selected sdk """
yield True
@pytest.fixture(scope="session")
def instantiate_firmware(request, setup_controller, get_configuration):
"""sets up firmware utility and yields the object for firmware upgrade"""
@@ -609,12 +593,6 @@ def lf_tools(get_configuration, testbed):
yield obj
# @pytest.fixture(scope="class")
# def create_vlan(request, testbed, get_configuration, lf_tools):
# """Create a vlan on lanforge"""
#
@pytest.fixture(scope="session")
def setup_influx(request, testbed, get_configuration):
""" Setup Influx Parameters: Used in CV Automation"""
@@ -634,10 +612,6 @@ def pytest_sessionstart(session):
session.results = dict()
ALLURE_ENVIRONMENT_PROPERTIES_FILE = 'environment.properties'
ALLUREDIR_OPTION = '--alluredir'
@fixture(scope='session', autouse=True)
def add_allure_environment_property(request: SubRequest) -> Optional[Callable]:
environment_properties = dict()
@@ -660,19 +634,18 @@ def add_allure_environment_property(request: SubRequest) -> Optional[Callable]:
@fixture(scope='session')
def get_uc_ap_version(get_apnos, get_configuration):
if request.config.getoption("2.x"):
version_list = []
for access_point_info in get_configuration['access_point']:
ap_ssh = get_apnos(access_point_info)
version = ap_ssh.get_ap_version_ucentral()
version_list.append(version)
yield version_list
def add_env_properties(get_configuration, get_apnos, fixtures_ver, add_allure_environment_property: Callable) -> None:
add_allure_environment_property('Access-Point-Model', get_configuration["access_point"][0]["model"])
add_allure_environment_property('Access-Point-Firmware-Version',
fixtures_ver.get_ap_version(get_apnos, get_configuration)[0].split("\n")[1])
add_allure_environment_property('Cloud-Controller-SDK-URL', get_configuration["controller"]["url"])
add_allure_environment_property('AP-Serial-Number', get_configuration["access_point"][0]["serial"])
@fixture(scope='session')
def add_env_properties(get_configuration, get_uc_ap_version, add_allure_environment_property: Callable) -> None:
if request.config.getoption("2.x"):
add_allure_environment_property('Access-Point-Model', get_configuration["access_point"][0]["model"])
add_allure_environment_property('Access-Point-Firmware-Version', get_uc_ap_version[0].split("\n")[1])
add_allure_environment_property('Cloud-Controller-SDK-URL', get_configuration["controller"]["url"])
@pytest.fixture(scope="session")
def fixtures_ver(request, get_configuration):
if request.config.getoption("1.x") is False:
obj = Fixtures_2x(configuration=get_configuration)
if request.config.getoption("1.x"):
obj = Fixtures_1x(configuration=get_configuration)
yield obj

View File

@@ -9,7 +9,7 @@ sys.path.append(
if "libs" not in sys.path:
sys.path.append(f'../libs')
from controller.controller import ProfileUtility
from controller.controller_1x.controller import ProfileUtility
import time
from lanforge.lf_tests import RunTest
from lanforge.lf_tools import ChamberView

View File

@@ -10,8 +10,8 @@ sys.path.append(
if "libs" not in sys.path:
sys.path.append(f'../libs')
from controller.controller import ProfileUtility
from controller.ucentral_ctlr import UProfileUtility
from controller.controller_1x.controller import ProfileUtility
from controller.controller_2x.controller import UProfileUtility
import time
from lanforge.lf_tests import RunTest
from lanforge.lf_tools import ChamberView
@@ -47,18 +47,15 @@ def create_lanforge_chamberview_dut(lf_tools):
return dut_name
@pytest.fixture(scope="session")
def setup_vlan():
vlan_id = [100]
allure.attach(body=str(vlan_id), name="VLAN Created: ")
yield vlan_id[0]
@pytest.fixture(scope="class")
def setup_profiles(request, setup_controller, testbed, setup_vlan, get_equipment_id,
def setup_profiles(request, setup_controller, testbed, get_equipment_id, fixtures_ver,
instantiate_profile, get_markers, create_lanforge_chamberview_dut, lf_tools,
get_security_flags, get_configuration, radius_info, get_apnos, radius_accounting_info):
lf_tools.reset_scenario()
param = dict(request.param)
# VLAN Setup
if request.param["mode"] == "VLAN":
vlan_list = list()
@@ -78,833 +75,19 @@ def setup_profiles(request, setup_controller, testbed, setup_vlan, get_equipment
vlan_list.pop(i)
if request.param["mode"] == "VLAN":
lf_tools.add_vlan(vlan_ids=vlan_list)
if request.config.getoption("1.x"):
instantiate_profile = instantiate_profile(sdk_client=setup_controller)
vlan_id, mode = 0, 0
instantiate_profile.cleanup_objects()
parameter = dict(request.param)
print(parameter)
test_cases = {}
profile_data = {}
if parameter['mode'] not in ["BRIDGE", "NAT", "VLAN"]:
print("Invalid Mode: ", parameter['mode'])
allure.attach(body=parameter['mode'], name="Invalid Mode: ")
yield test_cases
if parameter['mode'] == "NAT":
mode = "NAT"
vlan_id = 1
if parameter['mode'] == "BRIDGE":
mode = "BRIDGE"
vlan_id = 1
if parameter['mode'] == "VLAN":
mode = "BRIDGE"
vlan_id = setup_vlan
instantiate_profile.delete_profile_by_name(profile_name=testbed + "-Equipment-AP-" + parameter['mode'])
profile_data["equipment_ap"] = {"profile_name": testbed + "-Equipment-AP-" + parameter['mode']}
profile_data["ssid"] = {}
for i in parameter["ssid_modes"]:
profile_data["ssid"][i] = []
for j in range(len(parameter["ssid_modes"][i])):
profile_name = testbed + "-SSID-" + i + "-" + str(j) + "-" + parameter['mode']
data = parameter["ssid_modes"][i][j]
data["profile_name"] = profile_name
if "mode" not in dict(data).keys():
data["mode"] = mode
if "vlan" not in dict(data).keys():
data["vlan"] = vlan_id
instantiate_profile.delete_profile_by_name(profile_name=profile_name)
profile_data["ssid"][i].append(data)
# print(profile_name)
# print(profile_data)
instantiate_profile.delete_profile_by_name(profile_name=testbed + "-Automation-Radius-Profile-" + mode)
time.sleep(10)
"""
Setting up rf profile
"""
rf_profile_data = {
"name": "RF-Profile-" + testbed + "-" + parameter['mode'] + "-" +
get_configuration['access_point'][0]['mode']
}
for i in parameter["rf"]:
rf_profile_data[i] = parameter['rf'][i]
# print(rf_profile_data)
try:
instantiate_profile.delete_profile_by_name(profile_name=rf_profile_data['name'])
instantiate_profile.set_rf_profile(profile_data=rf_profile_data,
mode=get_configuration['access_point'][0]['mode'])
allure.attach(body=str(rf_profile_data),
name="RF Profile Created : " + get_configuration['access_point'][0]['mode'])
except Exception as e:
print(e)
allure.attach(body=str(e), name="Exception ")
# Radius Profile Creation
if parameter["radius"]:
radius_info = radius_info
radius_info["name"] = testbed + "-Automation-Radius-Profile-" + mode
instantiate_profile.delete_profile_by_name(profile_name=testbed + "-Automation-Radius-Profile-" + mode)
try:
instantiate_profile.create_radius_profile(radius_info=radius_info)
allure.attach(body=str(radius_info),
name="Radius Profile Created")
test_cases['radius_profile'] = True
except Exception as e:
print(e)
test_cases['radius_profile'] = False
# SSID Profile Creation
lf_dut_data = []
for mode in profile_data['ssid']:
if mode == "open":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
for i in range(len(j["appliedRadios"])):
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GU", "is5GHzU")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GL", "is5GHzL")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5G", "is5GHz")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("2G", "is2dot4GHz")
creates_profile = instantiate_profile.create_open_ssid_profile(profile_data=j)
test_cases["open_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["open_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
for i in range(len(j["appliedRadios"])):
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GU", "is5GHzU")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GL", "is5GHzL")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5G", "is5GHz")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("2G", "is2dot4GHz")
creates_profile = instantiate_profile.create_wpa_ssid_profile(profile_data=j)
test_cases["wpa_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa2_personal":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
for i in range(len(j["appliedRadios"])):
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GU", "is5GHzU")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GL", "is5GHzL")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5G", "is5GHz")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("2G", "is2dot4GHz")
creates_profile = instantiate_profile.create_wpa2_personal_ssid_profile(profile_data=j)
test_cases["wpa2_personal_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa2_personal_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa_wpa2_personal_mixed":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
for i in range(len(j["appliedRadios"])):
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GU", "is5GHzU")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GL", "is5GHzL")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5G", "is5GHz")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("2G", "is2dot4GHz")
creates_profile = instantiate_profile.create_wpa_wpa2_personal_mixed_ssid_profile(
profile_data=j)
test_cases["wpa_wpa2_personal_mixed_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa_wpa2_personal_mixed_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa3_personal":
for j in profile_data["ssid"][mode]:
print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
for i in range(len(j["appliedRadios"])):
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GU", "is5GHzU")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GL", "is5GHzL")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5G", "is5GHz")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("2G", "is2dot4GHz")
creates_profile = instantiate_profile.create_wpa3_personal_ssid_profile(profile_data=j)
test_cases["wpa3_personal_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa3_personal_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa3_personal_mixed":
for j in profile_data["ssid"][mode]:
print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
for i in range(len(j["appliedRadios"])):
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GU", "is5GHzU")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GL", "is5GHzL")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5G", "is5GHz")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("2G", "is2dot4GHz")
creates_profile = instantiate_profile.create_wpa3_personal_mixed_ssid_profile(
profile_data=j)
test_cases["wpa3_personal_mixed_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa3_personal_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa_enterprise":
for j in profile_data["ssid"][mode]:
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
for i in range(len(j["appliedRadios"])):
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GU", "is5GHzU")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GL", "is5GHzL")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5G", "is5GHz")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("2G", "is2dot4GHz")
creates_profile = instantiate_profile.create_wpa_enterprise_ssid_profile(profile_data=j)
test_cases["wpa_enterprise_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa_enterprise_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa2_enterprise":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
for i in range(len(j["appliedRadios"])):
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GU", "is5GHzU")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GL", "is5GHzL")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5G", "is5GHz")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("2G", "is2dot4GHz")
creates_profile = instantiate_profile.create_wpa2_enterprise_ssid_profile(profile_data=j)
test_cases["wpa2_enterprise_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa2_enterprise_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa3_enterprise":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
for i in range(len(j["appliedRadios"])):
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GU", "is5GHzU")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GL", "is5GHzL")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5G", "is5GHz")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("2G", "is2dot4GHz")
creates_profile = instantiate_profile.create_wpa3_enterprise_ssid_profile(profile_data=j)
test_cases["wpa3_enterprise_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa3_enterprise_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa_wpa2_enterprise_mixed":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
for i in range(len(j["appliedRadios"])):
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GU", "is5GHzU")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GL", "is5GHzL")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5G", "is5GHz")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("2G", "is2dot4GHz")
creates_profile = instantiate_profile.create_wpa_wpa2_enterprise_mixed_ssid_profile(
profile_data=j)
test_cases["wpa_wpa2_enterprise_mixed_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa_wpa2_enterprise_mixed_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa3_enterprise_mixed":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
for i in range(len(j["appliedRadios"])):
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GU", "is5GHzU")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GL", "is5GHzL")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5G", "is5GHz")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("2G", "is2dot4GHz")
creates_profile = instantiate_profile.create_wpa3_enterprise_mixed_ssid_profile(
profile_data=j)
test_cases["wpa3_enterprise_mixed_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa3_enterprise_mixed_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wep":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
for i in range(len(j["appliedRadios"])):
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GU", "is5GHzU")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GL", "is5GHzL")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5G", "is5GHz")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("2G", "is2dot4GHz")
creates_profile = instantiate_profile.create_wep_ssid_profile(profile_data=j)
test_cases["wpa3_enterprise_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa3_enterprise_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
# Equipment AP Profile Creation
try:
instantiate_profile.set_ap_profile(profile_data=profile_data['equipment_ap'])
test_cases["equipment_ap"] = True
allure.attach(body=str(profile_data['equipment_ap']),
name="Equipment AP Profile Created")
except Exception as e:
print(e)
test_cases["equipment_ap"] = False
allure.attach(body=str(e),
name="Equipment AP Profile Creation Failed")
# Push the Equipment AP Profile to AP
try:
for i in get_equipment_id:
instantiate_profile.push_profile_old_method(equipment_id=i)
except Exception as e:
print(e)
print("failed to create AP Profile")
ap_ssh = get_apnos(get_configuration['access_point'][0], pwd="../libs/apnos/")
# ssid_names = []
# for i in instantiate_profile.profile_creation_ids["ssid"]:
# ssid_names.append(instantiate_profile.get_ssid_name_by_profile_id(profile_id=i))
# ssid_names.sort()
ssid_names = []
for i in lf_dut_data:
ssid_names.append(i["ssid_name"])
ssid_names.sort()
# This loop will check the VIF Config with cloud profile
vif_config = []
test_cases['vifc'] = False
for i in range(0, 18):
vif_config = list(ap_ssh.get_vif_config_ssids())
vif_config.sort()
print(vif_config)
print(ssid_names)
if ssid_names == vif_config:
test_cases['vifc'] = True
break
time.sleep(10)
allure.attach(
body=str("VIF Config: " + str(vif_config) + "\n" + "SSID Pushed from Controller: " + str(ssid_names)),
name="SSID Profiles in VIF Config and Controller: ")
ap_ssh = get_apnos(get_configuration['access_point'][0], pwd="../libs/apnos/")
# This loop will check the VIF Config with VIF State
test_cases['vifs'] = False
for i in range(0, 18):
vif_state = list(ap_ssh.get_vif_state_ssids())
vif_state.sort()
vif_config = list(ap_ssh.get_vif_config_ssids())
vif_config.sort()
print(vif_config)
print(vif_state)
if vif_state == vif_config:
test_cases['vifs'] = True
break
time.sleep(10)
allure.attach(body=str("VIF Config: " + str(vif_config) + "\n" + "VIF State: " + str(vif_state)),
name="SSID Profiles in VIF Config and VIF State: ")
ap_logs = ap_ssh.logread()
allure.attach(body=ap_logs, name="AP LOgs: ")
ssid_info = ap_ssh.get_ssid_info()
ssid_data = []
print(ssid_info)
band_mapping = ap_ssh.get_bssid_band_mapping()
print(band_mapping)
idx_mapping = {}
for i in range(0, len(ssid_info)):
if ssid_info[i][1] == "OPEN":
ssid_info[i].append("")
if ssid_info[i][1] == "OPEN":
ssid = ["ssid_idx=" + str(i) + " ssid=" + ssid_info[i][3] + " security=OPEN" +
" password=" + ssid_info[i][2] + " bssid=" + ssid_info[i][0]]
idx_mapping[str(i)] = [ssid_info[i][3], ssid_info[i][2], ssid_info[i][1], band_mapping[ssid_info[i][0]],
ssid_info[i][0]]
if ssid_info[i][1] == "WPA":
ssid = ["ssid_idx=" + str(i) + " ssid=" + ssid_info[i][3] + " security=WPA" +
" password=" + ssid_info[i][2] + " bssid=" + ssid_info[i][0]]
idx_mapping[str(i)] = [ssid_info[i][3], ssid_info[i][2], ssid_info[i][1], band_mapping[ssid_info[i][0]],
ssid_info[i][0]]
if ssid_info[i][1] == "WPA2":
ssid = ["ssid_idx=" + str(i) + " ssid=" + ssid_info[i][3] + " security=WPA2" +
" password=" + ssid_info[i][2] + " bssid=" + ssid_info[i][0]]
idx_mapping[str(i)] = [ssid_info[i][3], ssid_info[i][2], ssid_info[i][1], band_mapping[ssid_info[i][0]],
ssid_info[i][0]]
if ssid_info[i][1] == "WPA3_PERSONAL":
ssid = ["ssid_idx=" + str(i) + " ssid=" + ssid_info[i][3] + " security=WPA3" +
" password=" + ssid_info[i][2] + " bssid=" + ssid_info[i][0]]
idx_mapping[str(i)] = [ssid_info[i][3], ssid_info[i][2], ssid_info[i][1], band_mapping[ssid_info[i][0]],
ssid_info[i][0]]
if ssid_info[i][1] == "WPA | WPA2":
ssid = ["ssid_idx=" + str(i) + " ssid=" + ssid_info[i][3] + " security=WPA|WPA2" +
" password=" + ssid_info[i][2] + " bssid=" + ssid_info[i][0]]
idx_mapping[str(i)] = [ssid_info[i][3], ssid_info[i][2], ssid_info[i][1], band_mapping[ssid_info[i][0]],
ssid_info[i][0]]
if ssid_info[i][1] == "EAP-TTLS":
ssid = ["ssid_idx=" + str(i) + " ssid=" + ssid_info[i][3] + " security=EAP-TTLS" +
" password=" + ssid_info[i][2] + " bssid=" + ssid_info[i][0]]
idx_mapping[str(i)] = [ssid_info[i][3], ssid_info[i][2], ssid_info[i][1], band_mapping[ssid_info[i][0]],
ssid_info[i][0]]
ssid_data.append(ssid)
lf_tools.dut_idx_mapping = idx_mapping
# Add bssid password and security from iwinfo data
# Format SSID Data in the below format
# ssid_data = [
# ['ssid_idx=0 ssid=Default-SSID-2g security=WPA|WEP| password=12345678 bssid=90:3c:b3:94:48:58'],
# ['ssid_idx=1 ssid=Default-SSID-5gl password=12345678 bssid=90:3c:b3:94:48:59']
# ]
allure.attach(name="SSID DATA IN LF DUT", body=str(ssid_data))
lf_tools.update_ssid(ssid_data=ssid_data)
def teardown_session():
print("\nRemoving Profiles")
instantiate_profile.delete_profile_by_name(profile_name=profile_data['equipment_ap']['profile_name'])
instantiate_profile.delete_profile(instantiate_profile.profile_creation_ids["ssid"])
instantiate_profile.delete_profile(instantiate_profile.profile_creation_ids["radius"])
instantiate_profile.delete_profile(instantiate_profile.profile_creation_ids["rf"])
allure.attach(body=str(profile_data['equipment_ap']['profile_name'] + "\n"),
name="Tear Down in Profiles ")
time.sleep(20)
request.addfinalizer(teardown_session)
yield test_cases
else:
instantiate_profile_obj = instantiate_profile(sdk_client=setup_controller)
print(1, instantiate_profile_obj.sdk_client)
vlan_id, mode = 0, 0
parameter = dict(request.param)
print(parameter)
test_cases = {}
profile_data = {}
if parameter['mode'] not in ["BRIDGE", "NAT", "VLAN"]:
print("Invalid Mode: ", parameter['mode'])
yield test_cases
instantiate_profile_obj.set_radio_config()
if parameter['mode'] == "NAT":
mode = "NAT"
instantiate_profile_obj.set_mode(mode=mode)
vlan_id = 1
if parameter['mode'] == "BRIDGE":
mode = "BRIDGE"
instantiate_profile_obj.set_mode(mode=mode)
vlan_id = 1
if parameter['mode'] == "VLAN":
mode = "VLAN"
instantiate_profile_obj.set_mode(mode=mode)
vlan_id = setup_vlan
profile_data["ssid"] = {}
for i in parameter["ssid_modes"]:
profile_data["ssid"][i] = []
for j in range(len(parameter["ssid_modes"][i])):
data = parameter["ssid_modes"][i][j]
profile_data["ssid"][i].append(data)
lf_dut_data = []
for mode in profile_data['ssid']:
if mode == "open":
for j in profile_data["ssid"][mode]:
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
j["appliedRadios"] = list(set(j["appliedRadios"]))
j['security'] = 'none'
creates_profile = instantiate_profile_obj.add_ssid(ssid_data=j)
test_cases["wpa_2g"] = True
except Exception as e:
print(e)
test_cases["wpa_2g"] = False
if mode == "wpa":
for j in profile_data["ssid"][mode]:
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
j["appliedRadios"] = list(set(j["appliedRadios"]))
j['security'] = 'psk'
creates_profile = instantiate_profile_obj.add_ssid(ssid_data=j)
test_cases["wpa_2g"] = True
except Exception as e:
print(e)
test_cases["wpa_2g"] = False
if mode == "wpa2_personal":
for j in profile_data["ssid"][mode]:
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
j["appliedRadios"] = list(set(j["appliedRadios"]))
j['security'] = 'psk2'
creates_profile = instantiate_profile_obj.add_ssid(ssid_data=j)
test_cases["wpa_2g"] = True
except Exception as e:
print(e)
test_cases["wpa2_personal"] = False
if mode == "wpa_wpa2_personal_mixed":
for j in profile_data["ssid"][mode]:
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
j["appliedRadios"] = list(set(j["appliedRadios"]))
j['security'] = 'psk-mixed'
creates_profile = instantiate_profile_obj.add_ssid(ssid_data=j)
test_cases["wpa_2g"] = True
except Exception as e:
print(e)
test_cases["wpa2_personal"] = False
if mode == "wpa3_personal":
for j in profile_data["ssid"][mode]:
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
j["appliedRadios"] = list(set(j["appliedRadios"]))
j['security'] = 'sae'
creates_profile = instantiate_profile_obj.add_ssid(ssid_data=j)
test_cases["wpa_2g"] = True
except Exception as e:
print(e)
test_cases["wpa2_personal"] = False
if mode == "wpa3_personal_mixed":
for j in profile_data["ssid"][mode]:
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
j["appliedRadios"] = list(set(j["appliedRadios"]))
j['security'] = 'sae-mixed'
creates_profile = instantiate_profile_obj.add_ssid(ssid_data=j)
test_cases["wpa_2g"] = True
except Exception as e:
print(e)
test_cases["wpa2_personal"] = False
# EAP SSID Modes
if mode == "wpa2_enterprise":
for j in profile_data["ssid"][mode]:
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
j["appliedRadios"] = list(set(j["appliedRadios"]))
j['security'] = 'wpa2'
RADIUS_SERVER_DATA = radius_info
RADIUS_ACCOUNTING_DATA = radius_accounting_info
creates_profile = instantiate_profile_obj.add_ssid(ssid_data=j, radius=True,
radius_auth_data=RADIUS_SERVER_DATA,
radius_accounting_data=RADIUS_ACCOUNTING_DATA)
test_cases["wpa_2g"] = True
except Exception as e:
print(e)
test_cases["wpa2_personal"] = False
ap_ssh = get_apnos(get_configuration['access_point'][0], pwd="../libs/apnos/", sdk="2.x")
connected, latest, active = ap_ssh.get_ucentral_status()
if connected == False:
pytest.exit("AP is disconnected from UC Gateway")
instantiate_profile_obj.push_config(serial_number=get_equipment_id[0])
config = json.loads(str(instantiate_profile_obj.base_profile_config).replace(" ", "").replace("'", '"'))
config["uuid"] = 0
ap_config_latest = ap_ssh.get_uc_latest_config()
try:
ap_config_latest["uuid"] = 0
except Exception as e:
print(e)
pass
x = 1
while ap_config_latest != config:
time.sleep(5)
x += 1
ap_config_latest = ap_ssh.get_uc_latest_config()
ap_config_latest["uuid"] = 0
print("latest config: ", ap_config_latest)
print("config: ", config)
if x == 19:
break
if x < 19:
print("Config properly applied into AP", config)
ap_config_latest = ap_ssh.get_uc_latest_config()
ap_config_latest["uuid"] = 0
ap_config_active = ap_ssh.get_uc_active_config()
ap_config_active["uuid"] = 0
x = 1
while ap_config_active != ap_config_latest:
time.sleep(5)
x += 1
ap_config_latest = ap_ssh.get_uc_latest_config()
ap_config_latest["uuid"] = 0
ap_config_active = ap_ssh.get_uc_active_config()
print("latest config: ", ap_config_latest)
print("Active config: ", ap_config_active)
ap_config_active["uuid"] = 0
if x == 19:
break
allure_body = "AP config status: \n" + \
"Active Config: " + str(ap_ssh.get_uc_active_config()) + "\n" \
"Latest Config: ", str(
ap_ssh.get_uc_latest_config()) + "\n" \
"Applied Config: ", str(config)
if x < 19:
print("AP is Broadcasting Applied Config")
allure.attach(name="AP is Broadcasting Applied Config", body="")
allure.attach(name="Config Info", body="Applied Config: " + str(ap_config_active))
allure.attach(name="Config Info", body="AP is Broadc3asting Applied Config: " + str(ap_ssh.get_uc_active_config()))
allure.attach(name="Config Info", body="AP is Broadcasting Applied Config: " + str(allure_body))
else:
print("AP is Not Broadcasting Applied Config")
allure.attach(name="AP is Not Broadcasting Applied Config", body="")
allure.attach(name="Config Info", body="Applied Config: " + str(ap_config_active))
allure.attach(name="Config Info",
body="AP is Broadc3asting Applied Config: " + str(ap_ssh.get_uc_active_config()))
allure.attach(name="Config Info", body="AP is Broadcasting Applied Config: " + str(allure_body))
ap_logs = ap_ssh.logread()
allure.attach(body=ap_logs, name="AP LOgs: ")
# ap_wifi_data = ap_ssh.get_interface_details()
# idx_mapping = {}
# ssid_data = []
# ap_interfaces = list(ap_wifi_data.keys())
# for interface in range(len(ap_interfaces)):
# if ap_wifi_data[ap_interfaces[interface]][1] == "none":
# ssid = ["ssid_idx=" + str(interface) +
# " ssid=" + ap_wifi_data[ap_interfaces[interface]][0] +
# " security=OPEN" +
# " bssid=" + ap_wifi_data[ap_interfaces[interface]][3][0]
# ]
# idx_mapping[str(interface)] = [ap_wifi_data[ap_interfaces[interface]][0],
# ap_wifi_data[ap_interfaces[interface]][2],
# ap_wifi_data[ap_interfaces[interface]][1],
# ap_wifi_data[ap_interfaces[interface]][3][1],
# ap_wifi_data[ap_interfaces[interface]][3][0]
# ]
# # pass
# if ap_wifi_data[ap_interfaces[interface]][1] == "psk":
# ssid = ["ssid_idx=" + str(interface) +
# " ssid=" + ap_wifi_data[ap_interfaces[interface]][0] +
# " security=WPA" +
# " password=" + ap_wifi_data[ap_interfaces[interface]][2] +
# " bssid=" + ap_wifi_data[ap_interfaces[interface]][3][0]
# ]
# idx_mapping[str(interface)] = [ap_wifi_data[ap_interfaces[interface]][0],
# ap_wifi_data[ap_interfaces[interface]][2],
# ap_wifi_data[ap_interfaces[interface]][1],
# ap_wifi_data[ap_interfaces[interface]][3][1],
# ap_wifi_data[ap_interfaces[interface]][3][0]
# ]
# # pass
# if ap_wifi_data[ap_interfaces[interface]][1] == "psk-mixed":
# ssid = ["ssid_idx=" + str(interface) +
# " ssid=" + ap_wifi_data[ap_interfaces[interface]][0] +
# " security=WPA|WPA2" +
# " password=" + ap_wifi_data[ap_interfaces[interface]][2] +
# " bssid=" + ap_wifi_data[ap_interfaces[interface]][3][0]
# ]
# idx_mapping[str(interface)] = [ap_wifi_data[ap_interfaces[interface]][0],
# ap_wifi_data[ap_interfaces[interface]][2],
# ap_wifi_data[ap_interfaces[interface]][1],
# ap_wifi_data[ap_interfaces[interface]][3][1],
# ap_wifi_data[ap_interfaces[interface]][3][0]
# ]
# # pass
# if ap_wifi_data[ap_interfaces[interface]][1] == "psk2":
# ssid = ["ssid_idx=" + str(interface) +
# " ssid=" + ap_wifi_data[ap_interfaces[interface]][0] +
# " security=WPA2" +
# " password=" + ap_wifi_data[ap_interfaces[interface]][2] +
# " bssid=" + str(ap_wifi_data[ap_interfaces[interface]][3][0]).lower()
# ]
# print(ssid)
# idx_mapping[str(interface)] = [ap_wifi_data[ap_interfaces[interface]][0],
# ap_wifi_data[ap_interfaces[interface]][2],
# ap_wifi_data[ap_interfaces[interface]][1],
# ap_wifi_data[ap_interfaces[interface]][3][1],
# ap_wifi_data[ap_interfaces[interface]][3][0]
# ]
# # pass
# if ap_wifi_data[ap_interfaces[interface]][1] == "sae":
# ssid = ["ssid_idx=" + str(interface) +
# " ssid=" + ap_wifi_data[ap_interfaces[interface]][0] +
# " security=WPA3" +
# " password=" + ap_wifi_data[ap_interfaces[interface]][2] +
# " bssid=" + ap_wifi_data[ap_interfaces[interface]][3][0]
# ]
# idx_mapping[str(interface)] = [ap_wifi_data[ap_interfaces[interface]][0],
# ap_wifi_data[ap_interfaces[interface]][2],
# ap_wifi_data[ap_interfaces[interface]][1],
# ap_wifi_data[ap_interfaces[interface]][3][1],
# ap_wifi_data[ap_interfaces[interface]][3][0]
# ]
# # pass
# if ap_wifi_data[ap_interfaces[interface]][1] == "sae-mixed":
# ssid = ["ssid_idx=" + str(interface) +
# " ssid=" + ap_wifi_data[ap_interfaces[interface]][0] +
# " security=WPA3" +
# " password=" + ap_wifi_data[ap_interfaces[interface]][2] +
# " bssid=" + ap_wifi_data[ap_interfaces[interface]][3][0]
# ]
# idx_mapping[str(interface)] = [ap_wifi_data[ap_interfaces[interface]][0],
# ap_wifi_data[ap_interfaces[interface]][2],
# ap_wifi_data[ap_interfaces[interface]][1],
# ap_wifi_data[ap_interfaces[interface]][3][1],
# ap_wifi_data[ap_interfaces[interface]][3][0]
# ]
# # pass
# if ap_wifi_data[ap_interfaces[interface]][1] == "wpa2":
# ssid = ["ssid_idx=" + str(interface) +
# " ssid=" + ap_wifi_data[ap_interfaces[interface]][0] +
# " security=EAP-TTLS" +
# " bssid=" + str(ap_wifi_data[ap_interfaces[interface]][3][0]).lower()
# ]
#
# idx_mapping[str(interface)] = [ap_wifi_data[ap_interfaces[interface]][0],
# ap_wifi_data[ap_interfaces[interface]][2],
# ap_wifi_data[ap_interfaces[interface]][1],
# ap_wifi_data[ap_interfaces[interface]][3][1],
# ap_wifi_data[ap_interfaces[interface]][3][0]
# ]
# # pass
# ssid_data.append(ssid)
# lf_tools.ssid_list.append(ap_wifi_data[ap_interfaces[interface]][0])
# lf_tools.dut_idx_mapping = idx_mapping
# print(ssid_data)
# lf_tools.reset_scenario()
# lf_tools.update_ssid(ssid_data=ssid_data)
yield test_cases
# call this, if 1.x
return_var = fixtures_ver.setup_profiles(request, param, setup_controller, testbed, get_equipment_id,
instantiate_profile,
get_markers, create_lanforge_chamberview_dut, lf_tools,
get_security_flags, get_configuration, radius_info, get_apnos,
radius_accounting_info)
yield return_var
@pytest.fixture(scope="session")
def lf_test(get_configuration, setup_influx):
# print(get_configuration)
obj = RunTest(lanforge_data=get_configuration['traffic_generator']['details'], influx_params=setup_influx)
# pytest.exit("")
yield obj

View File

@@ -9,7 +9,7 @@ import allure
import pytest
pytestmark = [pytest.mark.client_connectivity, pytest.mark.bridge, pytest.mark.general, pytest.mark.ucentral,
pytest.mark.sanity] # pytest.mark.usefixtures("setup_test_run")]
pytest.mark.sanity, pytest.mark.uc_sanity] # pytest.mark.usefixtures("setup_test_run")]
setup_params_general = {
"mode": "BRIDGE",
@@ -29,7 +29,6 @@ setup_params_general = {
}
@pytest.mark.uc_sanity
@pytest.mark.suiteA
@pytest.mark.sudo
@allure.feature("BRIDGE MODE CLIENT CONNECTIVITY")

View File

@@ -0,0 +1,28 @@
setup_params_general = {
"mode": "BRIDGE",
"ssid_modes": {
"wpa2_personal": [
{"ssid_name": "ssid_wpa2_2g_br",
"appliedRadios": ["2G"],
"security_key": "something",
"multi-psk": [
{
"key": "aaaaaaaa",
"vlan-id": 100
},
{
"key": "bbbbbbbb"
}
],
},
{"ssid_name": "ssid_wpa2_5g_br",
"appliedRadios": ["5G"],
"security_key": "something",
"rate-limit": {
"ingress-rate": 100,
"egress-rate": 100
}
}]},
"rf": {},
"radius": False
}

View File

@@ -0,0 +1,73 @@
"""
Rate LImiting Bridge Mode Scenario
"""
import allure
import pytest
pytestmark = [pytest.mark.rate_limiting, pytest.mark.bridge, pytest.mark.general, pytest.mark.ucentral,
pytest.mark.regression]
setup_params_general = {
"mode": "BRIDGE",
"ssid_modes": {
"wpa2_personal": [
{"ssid_name": "ssid_wpa2_2g_br",
"appliedRadios": ["2G"],
"security_key": "something",
"rate-limit": {
"ingress-rate": 100,
"egress-rate": 100
}
},
{"ssid_name": "ssid_wpa2_5g_br",
"appliedRadios": ["5G"],
"security_key": "something",
"rate-limit": {
"ingress-rate": 100,
"egress-rate": 100
}
}]},
"rf": {},
"radius": False
}
@allure.feature("Bridge MODE Rate Limiting")
@pytest.mark.parametrize(
'setup_profiles',
[setup_params_general],
indirect=True,
scope="class"
)
@pytest.mark.usefixtures("setup_profiles")
class TestRateLimitingBridge(object):
@pytest.mark.wpa2_personal
@pytest.mark.twog
@allure.story('Rate Limiting Open SSID 2.4 GHZ Band')
def test_wpa2_personal_ssid_2g(self, lf_test, get_vif_state, lf_tools):
"""
Test Rate Limiting Scenario
"""
# run wifi capacity test here
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0]
ssid_name = profile_data["ssid_name"]
mode = "BRIDGE"
vlan = 1
allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"]))
get_vif_state.append(ssid_name)
if ssid_name not in get_vif_state:
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
lf_tools.add_stations(band="2G", num_stations=5, dut=lf_tools.dut_name, ssid_name=ssid_name)
lf_tools.Chamber_View()
wct_obj = lf_test.wifi_capacity(instance_name="test_client_wpa2_BRIDGE_tcp_dl", mode=mode, vlan_id=vlan,
download_rate="1Gbps", batch_size="1,5",
upload_rate="1Gbps", protocol="TCP-IPv4", duration="60000")
report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
lf_tools.attach_report_graphs(report_name=report_name)
print("Test Completed... Cleaning up Stations")
assert True

View File

@@ -9,7 +9,7 @@ import allure
import pytest
pytestmark = [pytest.mark.client_connectivity, pytest.mark.nat, pytest.mark.general, pytest.mark.sanity,
pytest.mark.ucentral]
pytest.mark.uc_sanity, pytest.mark.ucentral]
setup_params_general = {
"mode": "NAT",
@@ -29,7 +29,7 @@ setup_params_general = {
}
@pytest.mark.uc_sanity
@pytest.mark.suiteA
@pytest.mark.sanity_ucentral
@allure.feature("NAT MODE CLIENT CONNECTIVITY")

View File

@@ -20,7 +20,7 @@ from configuration import PASSPOINT_PROVIDER_INFO
from configuration import PASSPOINT_OPERATOR_INFO
from configuration import PASSPOINT_VENUE_INFO
from configuration import PASSPOINT_PROFILE_INFO
from controller.controller import ProfileUtility
from controller.controller_1x.controller import ProfileUtility
@allure.feature("PASSPOINT CONNECTIVITY SETUP")
@@ -37,7 +37,6 @@ def setup_profiles(request, setup_controller, testbed, setup_vlan, get_equipment
profile_data = {}
if parameter["mode"] not in ["BRIDGE", "NAT", "VLAN"]:
print("Invalid Mode: ", parameter["mode"])
allure.attach(body=parameter["mode"], name="Invalid Mode: ")
yield test_cases
if parameter["mode"] == "NAT":

View File

@@ -20,9 +20,9 @@ if "libs" not in sys.path:
sys.path.append(f'../libs')
import allure
from apnos.apnos import APNOS
from controller.controller import Controller
from controller.controller import ProfileUtility
from controller.controller import FirmwareUtility
from controller.controller_1x.controller import Controller
from controller.controller_1x.controller import ProfileUtility
from controller.controller_1x.controller import FirmwareUtility
import pytest
import logging
from configuration import RADIUS_SERVER_DATA
@@ -68,7 +68,7 @@ def get_APToMobileDevice_data(request):
"UploadMbps": "//*[@id='knowledge-verticals-internetspeedtest__upload']/P[@class='spiqle']",
#Android
"platformName-android": request.config.getini("platformName-android"),
"appPackage-android": request.config.getini("appPackage-android")
"appPackage-android": request.config.getini("appPackage-android")
}
yield passPoint_data
@@ -93,7 +93,7 @@ def get_ToggleAirplaneMode_data(request):
"UploadMbps": "//*[@id='knowledge-verticals-internetspeedtest__upload']/P[@class='spiqle']",
#Android
"platformName-android": request.config.getini("platformName-android"),
"appPackage-android": request.config.getini("appPackage-android")
"appPackage-android": request.config.getini("appPackage-android")
}
yield passPoint_data
@@ -104,7 +104,7 @@ def get_ToggleWifiMode_data(request):
"bundleId-iOS-Settings": request.config.getini("bundleId-iOS-Settings"),
#Android
"platformName-android": request.config.getini("platformName-android"),
"appPackage-android": request.config.getini("appPackage-android")
"appPackage-android": request.config.getini("appPackage-android")
}
yield passPoint_data
@@ -189,401 +189,45 @@ def get_current_profile_cloud(instantiate_profile):
@pytest.fixture(scope="session")
def setup_vlan():
vlan_id = [100]
allure.attach(body=str(vlan_id), name="VLAN Created: ")
yield vlan_id[0]
@allure.feature("CLIENT CONNECTIVITY SETUP")
@pytest.fixture(scope="class")
def setup_profiles(request, setup_controller, testbed, setup_vlan, get_equipment_id,
instantiate_profile, get_markers,
get_security_flags, get_configuration, radius_info, get_apnos):
instantiate_profile = instantiate_profile(sdk_client=setup_controller)
vlan_id, mode = 0, 0
instantiate_profile.cleanup_objects()
parameter = dict(request.param)
print(parameter)
test_cases = {}
profile_data = {}
if parameter['mode'] not in ["BRIDGE", "NAT", "VLAN"]:
print("Invalid Mode: ", parameter['mode'])
allure.attach(body=parameter['mode'], name="Invalid Mode: ")
yield test_cases
def setup_profiles(request, setup_controller, testbed, setup_vlan, get_equipment_id, fixtures_ver,
instantiate_profile, get_markers, create_lanforge_chamberview_dut, lf_tools,
get_security_flags, get_configuration, radius_info, get_apnos, radius_accounting_info):
lf_tools.reset_scenario()
param = dict(request.param)
if parameter['mode'] == "NAT":
mode = "NAT"
vlan_id = 1
if parameter['mode'] == "BRIDGE":
mode = "BRIDGE"
vlan_id = 1
if parameter['mode'] == "VLAN":
mode = "BRIDGE"
vlan_id = setup_vlan
# VLAN Setup
if request.param["mode"] == "VLAN":
instantiate_profile.delete_profile_by_name(profile_name=testbed + "-Equipment-AP-" + parameter['mode'])
vlan_list = list()
refactored_vlan_list = list()
ssid_modes = request.param["ssid_modes"].keys()
for mode in ssid_modes:
for ssid in range(len(request.param["ssid_modes"][mode])):
if "vlan" in request.param["ssid_modes"][mode][ssid]:
vlan_list.append(request.param["ssid_modes"][mode][ssid]["vlan"])
else:
pass
if vlan_list:
[refactored_vlan_list.append(x) for x in vlan_list if x not in refactored_vlan_list]
vlan_list = refactored_vlan_list
for i in range(len(vlan_list)):
if vlan_list[i] > 4095 or vlan_list[i] < 1:
vlan_list.pop(i)
if request.param["mode"] == "VLAN":
lf_tools.add_vlan(vlan_ids=vlan_list)
profile_data["equipment_ap"] = {"profile_name": testbed + "-Equipment-AP-" + parameter['mode']}
profile_data["ssid"] = {}
for i in parameter["ssid_modes"]:
profile_data["ssid"][i] = []
for j in range(len(parameter["ssid_modes"][i])):
profile_name = testbed + "-SSID-" + i + "-" + str(j) + "-" + parameter['mode']
data = parameter["ssid_modes"][i][j]
data["profile_name"] = profile_name
if "mode" not in dict(data).keys():
data["mode"] = mode
if "vlan" not in dict(data).keys():
data["vlan"] = vlan_id
instantiate_profile.delete_profile_by_name(profile_name=profile_name)
profile_data["ssid"][i].append(data)
# print(profile_name)
# print(profile_data)
# call this, if 1.x
return_1x = fixtures_ver.setup_profiles(request, param, setup_controller, testbed, setup_vlan, get_equipment_id,
instantiate_profile,
get_markers, create_lanforge_chamberview_dut, lf_tools,
get_security_flags, get_configuration, radius_info, get_apnos,
radius_accounting_info)
yield return_1x
instantiate_profile.delete_profile_by_name(profile_name=testbed + "-Automation-Radius-Profile-" + mode)
time.sleep(10)
"""
Setting up rf profile
"""
rf_profile_data = {
"name": "RF-Profile-" + testbed + "-" + parameter['mode'] + "-" +
get_configuration['access_point'][0]['mode']
}
for i in parameter["rf"]:
rf_profile_data[i] = parameter['rf'][i]
# print(rf_profile_data)
try:
instantiate_profile.delete_profile_by_name(profile_name=rf_profile_data['name'])
instantiate_profile.set_rf_profile(profile_data=rf_profile_data,
mode=get_configuration['access_point'][0]['mode'])
allure.attach(body=str(rf_profile_data),
name="RF Profile Created : " + get_configuration['access_point'][0]['mode'])
except Exception as e:
print(e)
allure.attach(body=str(e), name="Exception ")
# Radius Profile Creation
if parameter["radius"]:
radius_info = radius_info
radius_info["name"] = testbed + "-Automation-Radius-Profile-" + testbed
instantiate_profile.delete_profile_by_name(profile_name=testbed + "-Automation-Radius-Profile-" + testbed)
try:
# pass
instantiate_profile.create_radius_profile(radius_info=radius_info)
allure.attach(body=str(radius_info),
name="Radius Profile Created")
test_cases['radius_profile'] = True
except Exception as e:
print(e)
test_cases['radius_profile'] = False
# SSID Profile Creation
print(get_markers)
for mode in profile_data['ssid']:
if mode == "open":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
j["appliedRadios"]):
creates_profile = instantiate_profile.create_open_ssid_profile(profile_data=j)
test_cases["open_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["open_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
try:
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
j["appliedRadios"]):
creates_profile = instantiate_profile.create_open_ssid_profile(profile_data=j)
test_cases["open_5g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["open_5g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
j["appliedRadios"]):
creates_profile = instantiate_profile.create_wpa_ssid_profile(profile_data=j)
test_cases["wpa_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
try:
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
j["appliedRadios"]):
creates_profile = instantiate_profile.create_wpa_ssid_profile(profile_data=j)
test_cases["wpa_5g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa_5g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa2_personal":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
j["appliedRadios"]):
creates_profile = instantiate_profile.create_wpa2_personal_ssid_profile(profile_data=j)
test_cases["wpa2_personal_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa2_personal_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
try:
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
j["appliedRadios"]):
creates_profile = instantiate_profile.create_wpa2_personal_ssid_profile(profile_data=j)
test_cases["wpa2_personal_5g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa2_personal_5g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa_wpa2_personal_mixed":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
j["appliedRadios"]):
creates_profile = instantiate_profile.create_wpa_wpa2_personal_mixed_ssid_profile(profile_data=j)
test_cases["wpa_wpa2_personal_mixed_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa_wpa2_personal_mixed_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
try:
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
j["appliedRadios"]):
creates_profile = instantiate_profile.create_wpa_wpa2_personal_mixed_ssid_profile(profile_data=j)
test_cases["wpa_wpa2_personal_mixed_5g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa_wpa2_personal_mixed_5g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa3_personal":
for j in profile_data["ssid"][mode]:
print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
j["appliedRadios"]):
creates_profile = instantiate_profile.create_wpa3_personal_ssid_profile(profile_data=j)
test_cases["wpa3_personal_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa3_personal_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
try:
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
j["appliedRadios"]):
creates_profile = instantiate_profile.create_wpa3_personal_ssid_profile(profile_data=j)
test_cases["wpa3_personal_5g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa3_personal_5g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa3_personal_mixed":
for j in profile_data["ssid"][mode]:
print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
j["appliedRadios"]):
creates_profile = instantiate_profile.create_wpa3_personal_mixed_ssid_profile(
profile_data=j)
test_cases["wpa3_personal_mixed_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa3_personal_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
try:
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
j["appliedRadios"]):
creates_profile = instantiate_profile.create_wpa3_personal_mixed_ssid_profile(
profile_data=j)
test_cases["wpa3_personal_mixed_5g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa3_personal_5g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa2_enterprise":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
j["appliedRadios"]):
creates_profile = instantiate_profile.create_wpa2_enterprise_ssid_profile(profile_data=j)
test_cases["wpa2_enterprise_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa2_enterprise_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
try:
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
j["appliedRadios"]):
creates_profile = instantiate_profile.create_wpa2_enterprise_ssid_profile(profile_data=j)
test_cases["wpa2_enterprise_5g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa2_enterprise_5g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa3_enterprise":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
j["appliedRadios"]):
creates_profile = instantiate_profile.create_wpa3_enterprise_ssid_profile(profile_data=j)
test_cases["wpa3_enterprise_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa3_enterprise_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
try:
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
j["appliedRadios"]):
creates_profile = instantiate_profile.create_wpa3_enterprise_ssid_profile(profile_data=j)
test_cases["wpa3_enterprise_5g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa3_enterprise_5g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
# Equipment AP Profile Creation
try:
instantiate_profile.set_ap_profile(profile_data=profile_data['equipment_ap'])
test_cases["equipment_ap"] = True
allure.attach(body=str(profile_data['equipment_ap']),
name="Equipment AP Profile Created")
except Exception as e:
print(e)
test_cases["equipment_ap"] = False
allure.attach(body=str(e),
name="Equipment AP Profile Creation Failed")
# Push the Equipment AP Profile to AP
try:
for i in get_equipment_id:
instantiate_profile.push_profile_old_method(equipment_id=i)
except Exception as e:
print(e)
print("failed to create AP Profile")
ap_ssh = get_apnos(get_configuration['access_point'][0], pwd="../libs/apnos/")
ssid_names = []
for i in instantiate_profile.profile_creation_ids["ssid"]:
ssid_names.append(instantiate_profile.get_ssid_name_by_profile_id(profile_id=i))
ssid_names.sort()
# This loop will check the VIF Config with cloud profile
vif_config = []
test_cases['vifc'] = False
for i in range(0, 18):
vif_config = list(ap_ssh.get_vif_config_ssids())
vif_config.sort()
print(vif_config)
print(ssid_names)
if ssid_names == vif_config:
test_cases['vifc'] = True
break
time.sleep(10)
allure.attach(body=str("VIF Config: " + str(vif_config) + "\n" + "SSID Pushed from Controller: " + str(ssid_names)),
name="SSID Profiles in VIF Config and Controller: ")
ap_ssh = get_apnos(get_configuration['access_point'][0], pwd="../libs/apnos/")
# This loop will check the VIF Config with VIF State
test_cases['vifs'] = False
for i in range(0, 18):
vif_state = list(ap_ssh.get_vif_state_ssids())
vif_state.sort()
vif_config = list(ap_ssh.get_vif_config_ssids())
vif_config.sort()
print(vif_config)
print(vif_state)
if vif_state == vif_config:
test_cases['vifs'] = True
break
time.sleep(10)
allure.attach(body=str("VIF Config: " + str(vif_config) + "\n" + "VIF State: " + str(vif_state)),
name="SSID Profiles in VIF Config and VIF State: ")
print(test_cases)
def teardown_session():
print("\nRemoving Profiles")
instantiate_profile.delete_profile_by_name(profile_name=profile_data['equipment_ap']['profile_name'])
instantiate_profile.delete_profile(instantiate_profile.profile_creation_ids["ssid"])
instantiate_profile.delete_profile(instantiate_profile.profile_creation_ids["radius"])
instantiate_profile.delete_profile(instantiate_profile.profile_creation_ids["rf"])
allure.attach(body=str(profile_data['equipment_ap']['profile_name'] + "\n"),
name="Tear Down in Profiles ")
time.sleep(20)
request.addfinalizer(teardown_session)
yield test_cases
@@ -610,7 +254,7 @@ def failure_tracking_fixture(request):
print("tests_failed_during_module: ")
print(tests_failed_during_module)
yield tests_failed_during_module
@pytest.fixture(scope="class")
def get_vif_state(get_apnos, get_configuration):
@@ -641,7 +285,7 @@ def pytest_runtest_makereport(item, call):
TestCaseFullName = os.environ.get('PYTEST_CURRENT_TEST').split(':')[-1].split(' ')[0]
nCurrentTestMethodNameSplit = re.sub(r'\[.*?\]\ *', "", TestCaseFullName)
#print("TestCasefullNameTEST: " + TestCaseFullName)
try:
try:
#TestCaseName = nCurrentTestMethodNameSplit.removeprefix('test_')
TestCaseName = nCurrentTestMethodNameSplit.replace('test_', '')
#print ("\nTestCaseName: " + TestCaseName)
@@ -653,7 +297,7 @@ def pytest_runtest_makereport(item, call):
#exception = call.excinfo.value
#exception_class = call.excinfo.type
#exception_class_name = call.excinfo.typename
#exception_traceback = call.excinfo.traceback
if result.outcome == "failed":
@@ -663,7 +307,7 @@ def pytest_runtest_makereport(item, call):
testCaseNameList.append(TestCaseName)
testCaseStatusList.append(testCaseFailedStatusValue)
testCaseErrorMsg.append(exception_type_and_message_formatted)
testCaseReportURL.append(reporting_client.report_url())
testCaseReportURL.append(reporting_client.report_url())
print("\n TestStatus: " + testCaseFailedStatusValue)
print(" FailureMsg: " + str(testCaseErrorMsg))
@@ -687,9 +331,9 @@ def pytest_runtest_makereport(item, call):
testCaseErrorMsg.append(str(exception_type_Skipped_message_formatted))
testCaseReportURL.append(reporting_client.report_url())
print("\n TestStatus: " + testCaseSkippedStatusValue)
print(" FailureMsg: " + str(testCaseErrorMsg))
reportPerfecto(TestCaseName, testCaseSkippedStatusValue, testCaseErrorMsg, str(reporting_client.report_url()))
print(" FailureMsg: " + str(testCaseErrorMsg))
reportPerfecto(TestCaseName, testCaseSkippedStatusValue, testCaseErrorMsg, str(reporting_client.report_url()))
def pytest_sessionfinish(session, exitstatus):
@@ -699,17 +343,17 @@ def pytest_sessionfinish(session, exitstatus):
passed_amount = sum(1 for result in session.results.values() if result.passed)
failed_amount = sum(1 for result in session.results.values() if result.failed)
skipped_amount = sum(1 for result in session.results.values() if result.skipped)
# print(f'There are {passed_amount} passed and {failed_amount} failed tests')
# print(f'There are {passed_amount} passed and {failed_amount} failed tests')
TotalExecutedCount = failed_amount + passed_amount + skipped_amount
print('\n------------------------------------')
print('Interop Perfecto TestCase Execution Summary')
print('Interop Perfecto TestCase Execution Summary')
print('------------------------------------')
print('Total TestCase Executed: ' + str(TotalExecutedCount))
print('Total TestCase Executed: ' + str(TotalExecutedCount))
print('Total Passed: ' + str(passed_amount))
print('Total Failed: ' + str(failed_amount))
print('Total Skipped: ' + str(skipped_amount) + "\n")
try:
for index in range(len(testCaseNameList)):
print(str(index+1) + ") " + str(testCaseNameList[index]) + " : " + str(testCaseStatusList[index]))
@@ -725,16 +369,16 @@ def setup_perfectoMobile_android(request):
from appium import webdriver
driver = None
reporting_client = None
warnings.simplefilter("ignore", ResourceWarning)
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
capabilities = {
'platformName': request.config.getini("platformName-android"),
'model': request.config.getini("model-android"),
'browserName': 'mobileOS',
#'automationName' : 'Appium',
'securityToken' : request.config.getini("securityToken"),
'securityToken' : request.config.getini("securityToken"),
'useAppiumForWeb' : 'false',
'useAppiumForHybrid' : 'false',
#'bundleId' : request.config.getini("appPackage-android"),
@@ -742,7 +386,7 @@ def setup_perfectoMobile_android(request):
driver = webdriver.Remote('https://'+request.config.getini("perfectoURL")+'.perfectomobile.com/nexperience/perfectomobile/wd/hub', capabilities)
driver.implicitly_wait(35)
TestCaseFullName = os.environ.get('PYTEST_CURRENT_TEST').split(':')[-1].split(' ')[0]
nCurrentTestMethodNameSplit = re.sub(r'\[.*?\]\ *', "", TestCaseFullName)
try:
@@ -753,7 +397,7 @@ def setup_perfectoMobile_android(request):
TestCaseName = nCurrentTestMethodNameSplit
print("\nUpgrade Python to 3.9 to avoid test_ string in your test case name, see below URL")
#print("https://www.andreagrandi.it/2020/10/11/python39-introduces-removeprefix-removesuffix/")
projectname = request.config.getini("projectName")
projectversion = request.config.getini("projectVersion")
jobname = request.config.getini("jobName")
@@ -774,14 +418,14 @@ def setup_perfectoMobile_android(request):
print("----------------------------------------------------------\n\n\n\n")
driver.close()
except Exception as e:
print(" -- Exception While Tear Down --")
print(" -- Exception While Tear Down --")
driver.close()
print (e)
finally:
try:
driver.quit()
except Exception as e:
print(" -- Exception Not Able To Quit --")
print(" -- Exception Not Able To Quit --")
print (e)
request.addfinalizer(teardown)
@@ -789,7 +433,7 @@ def setup_perfectoMobile_android(request):
if driver is None:
yield -1
else:
yield driver,reporting_client
yield driver,reporting_client
def reportClient(value):
global reporting_client # declare a to be a global
@@ -811,7 +455,7 @@ def setup_perfectoMobileWeb(request):
from selenium import webdriver
rdriver = None
reporting_client = None
warnings.simplefilter("ignore", ResourceWarning)
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
@@ -839,18 +483,18 @@ def setup_perfectoMobileWeb(request):
def teardown():
try:
print(" -- Tear Down --")
print(" -- Tear Down --")
reporting_client.test_stop(TestResultFactory.create_success())
print('Report-Url: ' + reporting_client.report_url() + '\n')
rdriver.close()
except Exception as e:
print(" -- Exception Not Able To close --")
print(" -- Exception Not Able To close --")
print (e.message)
finally:
try:
rdriver.quit()
except Exception as e:
print(" -- Exception Not Able To Quit --")
print(" -- Exception Not Able To Quit --")
print (e.message)
request.addfinalizer(teardown)
@@ -858,24 +502,24 @@ def setup_perfectoMobileWeb(request):
if rdriver is None:
yield -1
else:
yield rdriver,reporting_client
yield rdriver,reporting_client
@pytest.fixture(scope="function")
def setup_perfectoMobile_iOS(request):
from appium import webdriver
driver = None
reporting_client = None
warnings.simplefilter("ignore", ResourceWarning)
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
capabilities = {
'platformName': request.config.getini("platformName-iOS"),
'model': request.config.getini("model-iOS"),
'browserName': 'safari',
#'automationName' : 'Appium',
'securityToken' : request.config.getini("securityToken"),
'useAppiumForWeb' : 'false',
'securityToken' : request.config.getini("securityToken"),
'useAppiumForWeb' : 'false',
'autoAcceptAlerts' : 'true',
#'bundleId' : request.config.getini("bundleId-iOS"),
'useAppiumForHybrid' : 'false',
@@ -883,7 +527,7 @@ def setup_perfectoMobile_iOS(request):
driver = webdriver.Remote('https://'+request.config.getini("perfectoURL")+'.perfectomobile.com/nexperience/perfectomobile/wd/hub', capabilities)
driver.implicitly_wait(35)
TestCaseFullName = os.environ.get('PYTEST_CURRENT_TEST').split(':')[-1].split(' ')[0]
nCurrentTestMethodNameSplit = re.sub(r'\[.*?\]\ *', "", TestCaseFullName)
try:
@@ -894,7 +538,7 @@ def setup_perfectoMobile_iOS(request):
TestCaseName = nCurrentTestMethodNameSplit
print("\nUpgrade Python to 3.9 to avoid test_ string in your test case name, see below URL")
#print("https://www.andreagrandi.it/2020/10/11/python39-introduces-removeprefix-removesuffix/")
projectname = request.config.getini("projectName")
projectversion = request.config.getini("projectVersion")
jobname = request.config.getini("jobName")
@@ -915,20 +559,20 @@ def setup_perfectoMobile_iOS(request):
print("----------------------------------------------------------\n\n\n\n")
driver.close()
except Exception as e:
print(" -- Exception While Tear Down --")
print(" -- Exception While Tear Down --")
driver.close()
print (e)
finally:
try:
driver.quit()
except Exception as e:
print(" -- Exception Not Able To Quit --")
print(" -- Exception Not Able To Quit --")
print (e)
request.addfinalizer(teardown)
if driver is None:
yield -1
else:
yield driver,reporting_client
yield driver,reporting_client

View File

@@ -20,7 +20,7 @@ from configuration import PASSPOINT_PROVIDER_INFO
from configuration import PASSPOINT_OPERATOR_INFO
from configuration import PASSPOINT_VENUE_INFO
from configuration import PASSPOINT_PROFILE_INFO
from controller.controller import ProfileUtility
from controller.controller_1x.controller import ProfileUtility
@allure.feature("PASSPOINT CONNECTIVITY SETUP")

575
tests/fixtures_1x.py Normal file
View File

@@ -0,0 +1,575 @@
import sys
import os
if "libs" not in sys.path:
sys.path.append(f'../libs')
for folder in 'py-json', 'py-scripts':
if folder not in sys.path:
sys.path.append(f'../lanforge/lanforge-scripts/{folder}')
sys.path.append(
os.path.dirname(
os.path.realpath(__file__)
)
)
sys.path.append(f"../lanforge/lanforge-scripts/py-scripts/tip-cicd-sanity")
sys.path.append(f'../libs')
sys.path.append(f'../libs/lanforge/')
from LANforge.LFUtils import *
if 'py-json' not in sys.path:
sys.path.append('../py-scripts')
from apnos.apnos import APNOS
from controller.controller_1x.controller import Controller
from controller.controller_1x.controller import FirmwareUtility
import pytest
from cv_test_manager import cv_test
from configuration import CONFIGURATION
from configuration import RADIUS_SERVER_DATA
from configuration import RADIUS_ACCOUNTING_DATA
from configuration import TEST_CASES
from testrails.testrail_api import APIClient
from testrails.reporting import Reporting
from lf_tools import ChamberView
from sta_connect2 import StaConnect2
from os import path
from typing import Any, Callable, Optional
import time
import allure
import pytest
class Fixtures_1x:
def __init__(self, configuration={}):
self.lab_info = configuration
print(self.lab_info)
print("1.X")
try:
self.controller_obj = Controller(controller_data=self.lab_info["controller"])
except Exception as e:
print(e)
allure.attach(body=str(e), name="Controller Instantiation Failed: ")
sdk_client = False
pytest.exit("unable to communicate to Controller" + str(e))
def disconnect(self):
self.controller_obj.disconnect_Controller()
def setup_firmware(self):
pass
def get_ap_version(self, get_apnos, get_configuration):
version_list = []
for access_point_info in get_configuration['access_point']:
ap_ssh = get_apnos(access_point_info)
version = ap_ssh.get_ap_version_ucentral()
version_list.append(version)
return version_list
def setup_profiles(self, request, param, setup_controller, testbed, get_equipment_id, instantiate_profile,
get_markers, create_lanforge_chamberview_dut, lf_tools,
get_security_flags, get_configuration, radius_info, get_apnos, radius_accounting_info):
instantiate_profile = instantiate_profile(sdk_client=setup_controller)
vlan_id, mode = 0, 0
instantiate_profile.cleanup_objects()
parameter = dict(param)
print(parameter)
test_cases = {}
profile_data = {}
if parameter['mode'] not in ["BRIDGE", "NAT", "VLAN"]:
print("Invalid Mode: ", parameter['mode'])
allure.attach(body=parameter['mode'], name="Invalid Mode: ")
return test_cases
if parameter['mode'] == "NAT":
mode = "NAT"
vlan_id = 1
if parameter['mode'] == "BRIDGE":
mode = "BRIDGE"
vlan_id = 1
if parameter['mode'] == "VLAN":
mode = "BRIDGE"
instantiate_profile.delete_profile_by_name(profile_name=testbed + "-Equipment-AP-" + parameter['mode'])
profile_data["equipment_ap"] = {"profile_name": testbed + "-Equipment-AP-" + parameter['mode']}
profile_data["ssid"] = {}
for i in parameter["ssid_modes"]:
profile_data["ssid"][i] = []
for j in range(len(parameter["ssid_modes"][i])):
profile_name = testbed + "-SSID-" + i + "-" + str(j) + "-" + parameter['mode']
data = parameter["ssid_modes"][i][j]
data["profile_name"] = profile_name
if "mode" not in dict(data).keys():
data["mode"] = mode
if "vlan" not in dict(data).keys():
data["vlan"] = vlan_id
instantiate_profile.delete_profile_by_name(profile_name=profile_name)
profile_data["ssid"][i].append(data)
# print(profile_name)
# print(profile_data)
instantiate_profile.delete_profile_by_name(profile_name=testbed + "-Automation-Radius-Profile-" + mode)
time.sleep(10)
"""
Setting up rf profile
"""
rf_profile_data = {
"name": "RF-Profile-" + testbed + "-" + parameter['mode'] + "-" +
get_configuration['access_point'][0]['mode']
}
for i in parameter["rf"]:
rf_profile_data[i] = parameter['rf'][i]
# print(rf_profile_data)
try:
instantiate_profile.delete_profile_by_name(profile_name=rf_profile_data['name'])
instantiate_profile.set_rf_profile(profile_data=rf_profile_data,
mode=get_configuration['access_point'][0]['mode'])
allure.attach(body=str(rf_profile_data),
name="RF Profile Created : " + get_configuration['access_point'][0]['mode'])
except Exception as e:
print(e)
allure.attach(body=str(e), name="Exception ")
# Radius Profile Creation
if parameter["radius"]:
radius_info = radius_info
radius_info["name"] = testbed + "-Automation-Radius-Profile-" + mode
instantiate_profile.delete_profile_by_name(profile_name=testbed + "-Automation-Radius-Profile-" + mode)
try:
instantiate_profile.create_radius_profile(radius_info=radius_info)
allure.attach(body=str(radius_info),
name="Radius Profile Created")
test_cases['radius_profile'] = True
except Exception as e:
print(e)
test_cases['radius_profile'] = False
# SSID Profile Creation
lf_dut_data = []
for mode in profile_data['ssid']:
if mode == "open":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
for i in range(len(j["appliedRadios"])):
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GU", "is5GHzU")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GL", "is5GHzL")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5G", "is5GHz")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("2G", "is2dot4GHz")
creates_profile = instantiate_profile.create_open_ssid_profile(profile_data=j)
test_cases["open_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["open_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
for i in range(len(j["appliedRadios"])):
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GU", "is5GHzU")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GL", "is5GHzL")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5G", "is5GHz")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("2G", "is2dot4GHz")
creates_profile = instantiate_profile.create_wpa_ssid_profile(profile_data=j)
test_cases["wpa_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa2_personal":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
for i in range(len(j["appliedRadios"])):
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GU", "is5GHzU")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GL", "is5GHzL")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5G", "is5GHz")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("2G", "is2dot4GHz")
creates_profile = instantiate_profile.create_wpa2_personal_ssid_profile(profile_data=j)
test_cases["wpa2_personal_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa2_personal_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa_wpa2_personal_mixed":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
for i in range(len(j["appliedRadios"])):
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GU", "is5GHzU")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GL", "is5GHzL")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5G", "is5GHz")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("2G", "is2dot4GHz")
creates_profile = instantiate_profile.create_wpa_wpa2_personal_mixed_ssid_profile(
profile_data=j)
test_cases["wpa_wpa2_personal_mixed_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa_wpa2_personal_mixed_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa3_personal":
for j in profile_data["ssid"][mode]:
print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
for i in range(len(j["appliedRadios"])):
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GU", "is5GHzU")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GL", "is5GHzL")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5G", "is5GHz")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("2G", "is2dot4GHz")
creates_profile = instantiate_profile.create_wpa3_personal_ssid_profile(profile_data=j)
test_cases["wpa3_personal_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa3_personal_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa3_personal_mixed":
for j in profile_data["ssid"][mode]:
print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
for i in range(len(j["appliedRadios"])):
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GU", "is5GHzU")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GL", "is5GHzL")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5G", "is5GHz")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("2G", "is2dot4GHz")
creates_profile = instantiate_profile.create_wpa3_personal_mixed_ssid_profile(
profile_data=j)
test_cases["wpa3_personal_mixed_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa3_personal_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa_enterprise":
for j in profile_data["ssid"][mode]:
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
for i in range(len(j["appliedRadios"])):
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GU", "is5GHzU")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GL", "is5GHzL")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5G", "is5GHz")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("2G", "is2dot4GHz")
creates_profile = instantiate_profile.create_wpa_enterprise_ssid_profile(profile_data=j)
test_cases["wpa_enterprise_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa_enterprise_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa2_enterprise":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
for i in range(len(j["appliedRadios"])):
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GU", "is5GHzU")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GL", "is5GHzL")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5G", "is5GHz")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("2G", "is2dot4GHz")
creates_profile = instantiate_profile.create_wpa2_enterprise_ssid_profile(profile_data=j)
test_cases["wpa2_enterprise_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa2_enterprise_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa3_enterprise":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
for i in range(len(j["appliedRadios"])):
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GU", "is5GHzU")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GL", "is5GHzL")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5G", "is5GHz")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("2G", "is2dot4GHz")
creates_profile = instantiate_profile.create_wpa3_enterprise_ssid_profile(profile_data=j)
test_cases["wpa3_enterprise_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa3_enterprise_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa_wpa2_enterprise_mixed":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
for i in range(len(j["appliedRadios"])):
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GU", "is5GHzU")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GL", "is5GHzL")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5G", "is5GHz")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("2G", "is2dot4GHz")
creates_profile = instantiate_profile.create_wpa_wpa2_enterprise_mixed_ssid_profile(
profile_data=j)
test_cases["wpa_wpa2_enterprise_mixed_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa_wpa2_enterprise_mixed_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa3_enterprise_mixed":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
for i in range(len(j["appliedRadios"])):
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GU", "is5GHzU")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GL", "is5GHzL")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5G", "is5GHz")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("2G", "is2dot4GHz")
creates_profile = instantiate_profile.create_wpa3_enterprise_mixed_ssid_profile(
profile_data=j)
test_cases["wpa3_enterprise_mixed_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa3_enterprise_mixed_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wep":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
for i in range(len(j["appliedRadios"])):
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GU", "is5GHzU")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5GL", "is5GHzL")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("5G", "is5GHz")
j["appliedRadios"][i] = j["appliedRadios"][i].replace("2G", "is2dot4GHz")
creates_profile = instantiate_profile.create_wep_ssid_profile(profile_data=j)
test_cases["wpa3_enterprise_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa3_enterprise_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
# Equipment AP Profile Creation
try:
instantiate_profile.set_ap_profile(profile_data=profile_data['equipment_ap'])
test_cases["equipment_ap"] = True
allure.attach(body=str(profile_data['equipment_ap']),
name="Equipment AP Profile Created")
except Exception as e:
print(e)
test_cases["equipment_ap"] = False
allure.attach(body=str(e),
name="Equipment AP Profile Creation Failed")
# Push the Equipment AP Profile to AP
try:
for i in get_equipment_id:
instantiate_profile.push_profile_old_method(equipment_id=i)
except Exception as e:
print(e)
print("failed to create AP Profile")
ap_ssh = get_apnos(get_configuration['access_point'][0], pwd="../libs/apnos/")
# ssid_names = []
# for i in instantiate_profile.profile_creation_ids["ssid"]:
# ssid_names.append(instantiate_profile.get_ssid_name_by_profile_id(profile_id=i))
# ssid_names.sort()
ssid_names = []
for i in lf_dut_data:
ssid_names.append(i["ssid_name"])
ssid_names.sort()
# This loop will check the VIF Config with cloud profile
vif_config = []
test_cases['vifc'] = False
for i in range(0, 18):
vif_config = list(ap_ssh.get_vif_config_ssids())
vif_config.sort()
print(vif_config)
print(ssid_names)
if ssid_names == vif_config:
test_cases['vifc'] = True
break
time.sleep(10)
allure.attach(
body=str("VIF Config: " + str(vif_config) + "\n" + "SSID Pushed from Controller: " + str(ssid_names)),
name="SSID Profiles in VIF Config and Controller: ")
ap_ssh = get_apnos(get_configuration['access_point'][0], pwd="../libs/apnos/")
# This loop will check the VIF Config with VIF State
test_cases['vifs'] = False
for i in range(0, 18):
vif_state = list(ap_ssh.get_vif_state_ssids())
vif_state.sort()
vif_config = list(ap_ssh.get_vif_config_ssids())
vif_config.sort()
print(vif_config)
print(vif_state)
if vif_state == vif_config:
test_cases['vifs'] = True
break
time.sleep(10)
allure.attach(body=str("VIF Config: " + str(vif_config) + "\n" + "VIF State: " + str(vif_state)),
name="SSID Profiles in VIF Config and VIF State: ")
ap_logs = ap_ssh.logread()
allure.attach(body=ap_logs, name="AP LOgs: ")
ssid_info = ap_ssh.get_ssid_info()
ssid_data = []
print(ssid_info)
band_mapping = ap_ssh.get_bssid_band_mapping()
print(band_mapping)
idx_mapping = {}
for i in range(0, len(ssid_info)):
if ssid_info[i][1] == "OPEN":
ssid_info[i].append("")
if ssid_info[i][1] == "OPEN":
ssid = ["ssid_idx=" + str(i) + " ssid=" + ssid_info[i][3] + " security=OPEN" +
" password=" + ssid_info[i][2] + " bssid=" + ssid_info[i][0]]
idx_mapping[str(i)] = [ssid_info[i][3], ssid_info[i][2], ssid_info[i][1], band_mapping[ssid_info[i][0]],
ssid_info[i][0]]
if ssid_info[i][1] == "WPA":
ssid = ["ssid_idx=" + str(i) + " ssid=" + ssid_info[i][3] + " security=WPA" +
" password=" + ssid_info[i][2] + " bssid=" + ssid_info[i][0]]
idx_mapping[str(i)] = [ssid_info[i][3], ssid_info[i][2], ssid_info[i][1], band_mapping[ssid_info[i][0]],
ssid_info[i][0]]
if ssid_info[i][1] == "WPA2":
ssid = ["ssid_idx=" + str(i) + " ssid=" + ssid_info[i][3] + " security=WPA2" +
" password=" + ssid_info[i][2] + " bssid=" + ssid_info[i][0]]
idx_mapping[str(i)] = [ssid_info[i][3], ssid_info[i][2], ssid_info[i][1], band_mapping[ssid_info[i][0]],
ssid_info[i][0]]
if ssid_info[i][1] == "WPA3_PERSONAL":
ssid = ["ssid_idx=" + str(i) + " ssid=" + ssid_info[i][3] + " security=WPA3" +
" password=" + ssid_info[i][2] + " bssid=" + ssid_info[i][0]]
idx_mapping[str(i)] = [ssid_info[i][3], ssid_info[i][2], ssid_info[i][1], band_mapping[ssid_info[i][0]],
ssid_info[i][0]]
if ssid_info[i][1] == "WPA | WPA2":
ssid = ["ssid_idx=" + str(i) + " ssid=" + ssid_info[i][3] + " security=WPA|WPA2" +
" password=" + ssid_info[i][2] + " bssid=" + ssid_info[i][0]]
idx_mapping[str(i)] = [ssid_info[i][3], ssid_info[i][2], ssid_info[i][1], band_mapping[ssid_info[i][0]],
ssid_info[i][0]]
if ssid_info[i][1] == "EAP-TTLS":
ssid = ["ssid_idx=" + str(i) + " ssid=" + ssid_info[i][3] + " security=EAP-TTLS" +
" password=" + ssid_info[i][2] + " bssid=" + ssid_info[i][0]]
idx_mapping[str(i)] = [ssid_info[i][3], ssid_info[i][2], ssid_info[i][1], band_mapping[ssid_info[i][0]],
ssid_info[i][0]]
ssid_data.append(ssid)
lf_tools.dut_idx_mapping = idx_mapping
# Add bssid password and security from iwinfo data
# Format SSID Data in the below format
# ssid_data = [
# ['ssid_idx=0 ssid=Default-SSID-2g security=WPA|WEP| password=12345678 bssid=90:3c:b3:94:48:58'],
# ['ssid_idx=1 ssid=Default-SSID-5gl password=12345678 bssid=90:3c:b3:94:48:59']
# ]
allure.attach(name="SSID DATA IN LF DUT", body=str(ssid_data))
lf_tools.update_ssid(ssid_data=ssid_data)
def teardown_session():
print("\nRemoving Profiles")
instantiate_profile.delete_profile_by_name(profile_name=profile_data['equipment_ap']['profile_name'])
instantiate_profile.delete_profile(instantiate_profile.profile_creation_ids["ssid"])
instantiate_profile.delete_profile(instantiate_profile.profile_creation_ids["radius"])
instantiate_profile.delete_profile(instantiate_profile.profile_creation_ids["rf"])
allure.attach(body=str(profile_data['equipment_ap']['profile_name'] + "\n"),
name="Tear Down in Profiles ")
time.sleep(20)
request.addfinalizer(teardown_session)
return test_cases

402
tests/fixtures_2x.py Normal file
View File

@@ -0,0 +1,402 @@
""" Python Inbuilt Libraries """
import allure
import pytest
import sys
import os
import json
import time
""" Environment Paths """
if "libs" not in sys.path:
sys.path.append(f'../libs')
for folder in 'py-json', 'py-scripts':
if folder not in sys.path:
sys.path.append(f'../lanforge/lanforge-scripts/{folder}')
sys.path.append(
os.path.dirname(
os.path.realpath(__file__)
)
)
sys.path.append(f"../lanforge/lanforge-scripts/py-scripts/tip-cicd-sanity")
sys.path.append(f'../libs')
sys.path.append(f'../libs/lanforge/')
from LANforge.LFUtils import *
if 'py-json' not in sys.path:
sys.path.append('../py-scripts')
from apnos.apnos import APNOS
from controller.controller_2x.controller import Controller
from configuration import CONFIGURATION
from configuration import RADIUS_SERVER_DATA
from configuration import RADIUS_ACCOUNTING_DATA
class Fixtures_2x:
def __init__(self, configuration={}):
self.lab_info = configuration
print(self.lab_info)
print("2.X")
try:
self.controller_obj = Controller(controller_data=self.lab_info["controller"])
except Exception as e:
print(e)
allure.attach(body=str(e), name="Controller Instantiation Failed: ")
sdk_client = False
pytest.exit("unable to communicate to Controller" + str(e))
def disconnect(self):
self.controller_obj.logout()
def setup_firmware(self):
pass
def get_ap_version(self, get_apnos, get_configuration):
version_list = []
for access_point_info in get_configuration['access_point']:
ap_ssh = get_apnos(access_point_info)
version = ap_ssh.get_ap_version_ucentral()
version_list.append(version)
return version_list
def setup_profiles(self, request, param, setup_controller, testbed, get_equipment_id,
instantiate_profile, get_markers, create_lanforge_chamberview_dut, lf_tools,
get_security_flags, get_configuration, radius_info, get_apnos, radius_accounting_info):
print("inside conftest_2x")
if not request.config.getoption("1.x"):
instantiate_profile_obj = instantiate_profile(sdk_client=setup_controller)
print("garbage")
print(1, instantiate_profile_obj.sdk_client)
vlan_id, mode = 0, 0
parameter = dict(param)
print("hola", parameter)
test_cases = {}
profile_data = {}
if parameter['mode'] not in ["BRIDGE", "NAT", "VLAN"]:
print("Invalid Mode: ", parameter['mode'])
return test_cases
instantiate_profile_obj.set_radio_config()
if parameter['mode'] == "NAT":
mode = "NAT"
instantiate_profile_obj.set_mode(mode=mode)
vlan_id = 1
if parameter['mode'] == "BRIDGE":
mode = "BRIDGE"
instantiate_profile_obj.set_mode(mode=mode)
vlan_id = 1
if parameter['mode'] == "VLAN":
mode = "VLAN"
instantiate_profile_obj.set_mode(mode=mode)
profile_data["ssid"] = {}
for i in parameter["ssid_modes"]:
profile_data["ssid"][i] = []
for j in range(len(parameter["ssid_modes"][i])):
data = parameter["ssid_modes"][i][j]
profile_data["ssid"][i].append(data)
lf_dut_data = []
for mode in profile_data['ssid']:
if mode == "open":
for j in profile_data["ssid"][mode]:
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
j["appliedRadios"] = list(set(j["appliedRadios"]))
j['security'] = 'none'
creates_profile = instantiate_profile_obj.add_ssid(ssid_data=j)
test_cases["wpa_2g"] = True
except Exception as e:
print(e)
test_cases["wpa_2g"] = False
if mode == "wpa":
for j in profile_data["ssid"][mode]:
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
j["appliedRadios"] = list(set(j["appliedRadios"]))
j['security'] = 'psk'
creates_profile = instantiate_profile_obj.add_ssid(ssid_data=j)
test_cases["wpa_2g"] = True
except Exception as e:
print(e)
test_cases["wpa_2g"] = False
if mode == "wpa2_personal":
for j in profile_data["ssid"][mode]:
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
j["appliedRadios"] = list(set(j["appliedRadios"]))
j['security'] = 'psk2'
creates_profile = instantiate_profile_obj.add_ssid(ssid_data=j)
test_cases["wpa_2g"] = True
except Exception as e:
print(e)
test_cases["wpa2_personal"] = False
if mode == "wpa_wpa2_personal_mixed":
for j in profile_data["ssid"][mode]:
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
j["appliedRadios"] = list(set(j["appliedRadios"]))
j['security'] = 'psk-mixed'
creates_profile = instantiate_profile_obj.add_ssid(ssid_data=j)
test_cases["wpa_2g"] = True
except Exception as e:
print(e)
test_cases["wpa2_personal"] = False
if mode == "wpa3_personal":
for j in profile_data["ssid"][mode]:
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
j["appliedRadios"] = list(set(j["appliedRadios"]))
j['security'] = 'sae'
creates_profile = instantiate_profile_obj.add_ssid(ssid_data=j)
test_cases["wpa_2g"] = True
except Exception as e:
print(e)
test_cases["wpa2_personal"] = False
if mode == "wpa3_personal_mixed":
for j in profile_data["ssid"][mode]:
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
j["appliedRadios"] = list(set(j["appliedRadios"]))
j['security'] = 'sae-mixed'
creates_profile = instantiate_profile_obj.add_ssid(ssid_data=j)
test_cases["wpa_2g"] = True
except Exception as e:
print(e)
test_cases["wpa2_personal"] = False
# EAP SSID Modes
if mode == "wpa2_enterprise":
for j in profile_data["ssid"][mode]:
if mode in get_markers.keys() and get_markers[mode]:
try:
if j["appliedRadios"].__contains__("2G"):
lf_dut_data.append(j)
if j["appliedRadios"].__contains__("5G"):
lf_dut_data.append(j)
j["appliedRadios"] = list(set(j["appliedRadios"]))
j['security'] = 'wpa2'
RADIUS_SERVER_DATA = radius_info
RADIUS_ACCOUNTING_DATA = radius_accounting_info
creates_profile = instantiate_profile_obj.add_ssid(ssid_data=j, radius=True,
radius_auth_data=RADIUS_SERVER_DATA,
radius_accounting_data=RADIUS_ACCOUNTING_DATA)
test_cases["wpa_2g"] = True
except Exception as e:
print(e)
test_cases["wpa2_personal"] = False
ap_ssh = get_apnos(get_configuration['access_point'][0], pwd="../libs/apnos/", sdk="2.x")
connected, latest, active = ap_ssh.get_ucentral_status()
if connected == False:
pytest.exit("AP is disconnected from UC Gateway")
if latest != active:
allure.attach(name="FAIL : ubus call ucentral status: ",
body="connected: " + str(connected) + "\nlatest: " + str(latest) + "\nactive: " + str(active))
ap_logs = ap_ssh.logread()
allure.attach(body=ap_logs, name="FAILURE: AP LOgs: ")
pytest.fail("AP is disconnected from UC Gateway")
instantiate_profile_obj.push_config(serial_number=get_equipment_id[0])
time_1 = time.time()
config = json.loads(str(instantiate_profile_obj.base_profile_config).replace(" ", "").replace("'", '"'))
config["uuid"] = 0
ap_config_latest = ap_ssh.get_uc_latest_config()
try:
ap_config_latest["uuid"] = 0
except Exception as e:
print(e)
pass
x = 1
old_config = latest
connected, latest, active = ap_ssh.get_ucentral_status()
while old_config == latest:
time.sleep(5)
x += 1
print("old config: " , old_config)
print("latest: " , latest)
connected, latest, active = ap_ssh.get_ucentral_status()
if x == 19:
break
connected, latest, active = ap_ssh.get_ucentral_status()
x = 1
while active != latest:
connected, latest, active = ap_ssh.get_ucentral_status()
time.sleep(10)
x += 1
print("active: ", active)
print("latest: ", latest)
if x == 19:
break
if x < 19:
print("Config properly applied into AP", config)
time_2 = time.time()
time_interval = time_2 - time_1
allure.attach(name="Time Took to apply Config: " + str(time_interval), body="")
ap_config_latest = ap_ssh.get_uc_latest_config()
ap_config_latest["uuid"] = 0
ap_config_active = ap_ssh.get_uc_active_config()
ap_config_active["uuid"] = 0
x = 1
while ap_config_active != ap_config_latest:
time.sleep(5)
x += 1
ap_config_latest = ap_ssh.get_uc_latest_config()
ap_config_latest["uuid"] = 0
ap_config_active = ap_ssh.get_uc_active_config()
print("latest config: ", ap_config_latest)
print("Active config: ", ap_config_active)
ap_config_active["uuid"] = 0
if x == 19:
break
if x < 19:
print("AP is Broadcasting Applied Config")
allure.attach(name="Success : Active Config in AP: ", body=str(ap_config_active))
else:
print("AP is Not Broadcasting Applied Config")
allure.attach(name="Failed to Apply Config : Active Config in AP : ", body=str(ap_config_active))
ap_logs = ap_ssh.logread()
allure.attach(body=ap_logs, name="AP LOgs: ")
ap_wifi_data = ap_ssh.get_interface_details()
idx_mapping = {}
ssid_data = []
ap_interfaces = list(ap_wifi_data.keys())
for interface in range(len(ap_interfaces)):
if ap_wifi_data[ap_interfaces[interface]][1] == "none":
ssid = ["ssid_idx=" + str(interface) +
" ssid=" + ap_wifi_data[ap_interfaces[interface]][0] +
" security=OPEN" +
" bssid=" + ap_wifi_data[ap_interfaces[interface]][3][0]
]
idx_mapping[str(interface)] = [ap_wifi_data[ap_interfaces[interface]][0],
ap_wifi_data[ap_interfaces[interface]][2],
ap_wifi_data[ap_interfaces[interface]][1],
ap_wifi_data[ap_interfaces[interface]][3][1],
ap_wifi_data[ap_interfaces[interface]][3][0]
]
# pass
if ap_wifi_data[ap_interfaces[interface]][1] == "psk":
ssid = ["ssid_idx=" + str(interface) +
" ssid=" + ap_wifi_data[ap_interfaces[interface]][0] +
" security=WPA" +
" password=" + ap_wifi_data[ap_interfaces[interface]][2] +
" bssid=" + ap_wifi_data[ap_interfaces[interface]][3][0]
]
idx_mapping[str(interface)] = [ap_wifi_data[ap_interfaces[interface]][0],
ap_wifi_data[ap_interfaces[interface]][2],
ap_wifi_data[ap_interfaces[interface]][1],
ap_wifi_data[ap_interfaces[interface]][3][1],
ap_wifi_data[ap_interfaces[interface]][3][0]
]
# pass
if ap_wifi_data[ap_interfaces[interface]][1] == "psk-mixed":
ssid = ["ssid_idx=" + str(interface) +
" ssid=" + ap_wifi_data[ap_interfaces[interface]][0] +
" security=WPA|WPA2" +
" password=" + ap_wifi_data[ap_interfaces[interface]][2] +
" bssid=" + ap_wifi_data[ap_interfaces[interface]][3][0]
]
idx_mapping[str(interface)] = [ap_wifi_data[ap_interfaces[interface]][0],
ap_wifi_data[ap_interfaces[interface]][2],
ap_wifi_data[ap_interfaces[interface]][1],
ap_wifi_data[ap_interfaces[interface]][3][1],
ap_wifi_data[ap_interfaces[interface]][3][0]
]
# pass
if ap_wifi_data[ap_interfaces[interface]][1] == "psk2":
ssid = ["ssid_idx=" + str(interface) +
" ssid=" + ap_wifi_data[ap_interfaces[interface]][0] +
" security=WPA2" +
" password=" + ap_wifi_data[ap_interfaces[interface]][2] +
" bssid=" + str(ap_wifi_data[ap_interfaces[interface]][3][0]).lower()
]
print(ssid)
idx_mapping[str(interface)] = [ap_wifi_data[ap_interfaces[interface]][0],
ap_wifi_data[ap_interfaces[interface]][2],
ap_wifi_data[ap_interfaces[interface]][1],
ap_wifi_data[ap_interfaces[interface]][3][1],
ap_wifi_data[ap_interfaces[interface]][3][0]
]
# pass
if ap_wifi_data[ap_interfaces[interface]][1] == "sae":
ssid = ["ssid_idx=" + str(interface) +
" ssid=" + ap_wifi_data[ap_interfaces[interface]][0] +
" security=WPA3" +
" password=" + ap_wifi_data[ap_interfaces[interface]][2] +
" bssid=" + ap_wifi_data[ap_interfaces[interface]][3][0]
]
idx_mapping[str(interface)] = [ap_wifi_data[ap_interfaces[interface]][0],
ap_wifi_data[ap_interfaces[interface]][2],
ap_wifi_data[ap_interfaces[interface]][1],
ap_wifi_data[ap_interfaces[interface]][3][1],
ap_wifi_data[ap_interfaces[interface]][3][0]
]
# pass
if ap_wifi_data[ap_interfaces[interface]][1] == "sae-mixed":
ssid = ["ssid_idx=" + str(interface) +
" ssid=" + ap_wifi_data[ap_interfaces[interface]][0] +
" security=WPA3" +
" password=" + ap_wifi_data[ap_interfaces[interface]][2] +
" bssid=" + ap_wifi_data[ap_interfaces[interface]][3][0]
]
idx_mapping[str(interface)] = [ap_wifi_data[ap_interfaces[interface]][0],
ap_wifi_data[ap_interfaces[interface]][2],
ap_wifi_data[ap_interfaces[interface]][1],
ap_wifi_data[ap_interfaces[interface]][3][1],
ap_wifi_data[ap_interfaces[interface]][3][0]
]
# pass
if ap_wifi_data[ap_interfaces[interface]][1] == "wpa2":
ssid = ["ssid_idx=" + str(interface) +
" ssid=" + ap_wifi_data[ap_interfaces[interface]][0] +
" security=EAP-TTLS" +
" bssid=" + str(ap_wifi_data[ap_interfaces[interface]][3][0]).lower()
]
idx_mapping[str(interface)] = [ap_wifi_data[ap_interfaces[interface]][0],
ap_wifi_data[ap_interfaces[interface]][2],
ap_wifi_data[ap_interfaces[interface]][1],
ap_wifi_data[ap_interfaces[interface]][3][1],
ap_wifi_data[ap_interfaces[interface]][3][0]
]
# pass
ssid_data.append(ssid)
lf_tools.ssid_list.append(ap_wifi_data[ap_interfaces[interface]][0])
lf_tools.dut_idx_mapping = idx_mapping
print(ssid_data)
lf_tools.update_ssid(ssid_data=ssid_data)
return test_cases
else:
return False