mirror of
https://github.com/Telecominfraproject/wlan-testing.git
synced 2025-10-30 10:32:26 +00:00
WIFI-9958 : Added a marker for ow_sdk_load_tests for sdk tests (#649)
Signed-off-by: shivam <shivam.thakur@candelatech.com>
This commit is contained in:
@@ -5,18 +5,14 @@
|
||||
"""
|
||||
import datetime
|
||||
import json
|
||||
import ssl
|
||||
import sys
|
||||
import time
|
||||
from urllib.parse import urlparse
|
||||
import pytest
|
||||
import allure
|
||||
import requests
|
||||
from operator import itemgetter
|
||||
from pathlib import Path
|
||||
from urllib.parse import urlparse
|
||||
|
||||
from requests.adapters import HTTPAdapter
|
||||
import logging
|
||||
import allure
|
||||
import pytest
|
||||
import requests
|
||||
|
||||
|
||||
# logging.basicConfig(level=logging.DEBUG)
|
||||
@@ -67,8 +63,6 @@ class ConfigureController:
|
||||
print(new_uri)
|
||||
return new_uri
|
||||
|
||||
|
||||
|
||||
def request(self, service, command, method, params, payload):
|
||||
if service == "sec":
|
||||
uri = self.build_uri_sec(command)
|
||||
@@ -468,229 +462,227 @@ class FMSUtils:
|
||||
|
||||
return "error"
|
||||
|
||||
class ProvUtils(ConfigureController):
|
||||
|
||||
def __init__(self, controller_data=None):
|
||||
super().__init__(controller_data)
|
||||
class ProvUtils:
|
||||
|
||||
def build_url_prov(self, path):
|
||||
new_uri = 'https://%s:%d/api/v1/%s' % (self.prov_host.hostname, self.prov_host.port, path)
|
||||
print(new_uri)
|
||||
return new_uri
|
||||
def __init__(self, sdk_client=None, controller_data=None):
|
||||
if sdk_client is None:
|
||||
self.sdk_client = Controller(controller_data=controller_data)
|
||||
self.sdk_client = sdk_client
|
||||
|
||||
def get_inventory(self):
|
||||
uri = self.build_url_prov("inventory")
|
||||
uri = self.sdk_client.build_url_prov("inventory")
|
||||
print(uri)
|
||||
resp = requests.get(uri, headers=self.make_headers(), verify=False, timeout=100)
|
||||
self.check_response("GET", resp, self.make_headers(), "", uri)
|
||||
resp = requests.get(uri, headers=self.sdk_client.make_headers(), verify=False, timeout=100)
|
||||
self.sdk_client.check_response("GET", resp, self.sdk_client.make_headers(), "", uri)
|
||||
return resp
|
||||
|
||||
def get_inventory_by_device(self, device_name):
|
||||
uri = self.build_url_prov("inventory/" + device_name)
|
||||
uri = self.sdk_client.build_url_prov("inventory/" + device_name)
|
||||
print(uri)
|
||||
resp = requests.get(uri, headers=self.make_headers(), verify=False, timeout=100)
|
||||
self.check_response("GET", resp, self.make_headers(), "", uri)
|
||||
resp = requests.get(uri, headers=self.sdk_client.make_headers(), verify=False, timeout=100)
|
||||
self.sdk_client.check_response("GET", resp, self.sdk_client.make_headers(), "", uri)
|
||||
return resp
|
||||
|
||||
def get_system_prov(self):
|
||||
uri = self.build_url_prov("system?command=info")
|
||||
uri = self.sdk_client.build_url_prov("system?command=info")
|
||||
allure.attach(name="Url of Prov UI:", body=str(uri))
|
||||
resp = requests.get(uri, headers=self.make_headers(), verify=False, timeout=100)
|
||||
self.check_response("GET", resp, self.make_headers(), "", uri)
|
||||
resp = requests.get(uri, headers=self.sdk_client.make_headers(), verify=False, timeout=100)
|
||||
self.sdk_client.check_response("GET", resp, self.sdk_client.make_headers(), "", uri)
|
||||
return resp
|
||||
|
||||
def add_device_to_inventory(self, device_name, payload):
|
||||
uri = self.build_url_prov("inventory/" + device_name)
|
||||
uri = self.sdk_client.build_url_prov("inventory/" + device_name)
|
||||
print(uri)
|
||||
print(payload)
|
||||
payload = json.dumps(payload)
|
||||
resp = requests.post(uri, data=payload, headers=self.make_headers(), verify=False, timeout=100)
|
||||
resp = requests.post(uri, data=payload, headers=self.sdk_client.make_headers(), verify=False, timeout=100)
|
||||
print(resp)
|
||||
self.check_response("POST", resp, self.make_headers(), payload, uri)
|
||||
self.sdk_client.check_response("POST", resp, self.sdk_client.make_headers(), payload, uri)
|
||||
return resp
|
||||
|
||||
def delete_device_from_inventory(self, device_name):
|
||||
uri = self.build_url_prov("inventory/" + device_name)
|
||||
uri = self.sdk_client.build_url_prov("inventory/" + device_name)
|
||||
print(uri)
|
||||
resp = requests.delete(uri, headers=self.make_headers(), verify=False, timeout=100)
|
||||
self.check_response("DELETE", resp, self.make_headers(), "", uri)
|
||||
resp = requests.delete(uri, headers=self.sdk_client.make_headers(), verify=False, timeout=100)
|
||||
self.sdk_client.check_response("DELETE", resp, self.sdk_client.make_headers(), "", uri)
|
||||
return resp
|
||||
|
||||
def get_entity(self):
|
||||
uri = self.build_url_prov("entity")
|
||||
uri = self.sdk_client.build_url_prov("entity")
|
||||
print(uri)
|
||||
resp = requests.get(uri, headers=self.make_headers(), verify=False, timeout=100)
|
||||
self.check_response("GET", resp, self.make_headers(), "", uri)
|
||||
resp = requests.get(uri, headers=self.sdk_client.make_headers(), verify=False, timeout=100)
|
||||
self.sdk_client.check_response("GET", resp, self.sdk_client.make_headers(), "", uri)
|
||||
return resp
|
||||
|
||||
def get_entity_by_id(self,entity_id):
|
||||
uri = self.build_url_prov("entity/" + entity_id)
|
||||
def get_entity_by_id(self, entity_id):
|
||||
uri = self.sdk_client.build_url_prov("entity/" + entity_id)
|
||||
print(uri)
|
||||
resp = requests.get(uri, headers=self.make_headers(), verify=False, timeout=100)
|
||||
self.check_response("GET", resp, self.make_headers(), "", uri)
|
||||
resp = requests.get(uri, headers=self.sdk_client.make_headers(), verify=False, timeout=100)
|
||||
self.sdk_client.check_response("GET", resp, self.sdk_client.make_headers(), "", uri)
|
||||
return resp
|
||||
|
||||
def add_entity(self, payload):
|
||||
uri = self.build_url_prov("entity/1")
|
||||
uri = self.sdk_client.build_url_prov("entity/1")
|
||||
print(uri)
|
||||
print(payload)
|
||||
payload = json.dumps(payload)
|
||||
resp = requests.post(uri, data=payload, headers=self.make_headers(), verify=False, timeout=100)
|
||||
resp = requests.post(uri, data=payload, headers=self.sdk_client.make_headers(), verify=False, timeout=100)
|
||||
print(resp)
|
||||
self.check_response("POST", resp, self.make_headers(), payload, uri)
|
||||
self.sdk_client.check_response("POST", resp, self.sdk_client.make_headers(), payload, uri)
|
||||
return resp
|
||||
|
||||
def delete_entity(self, entity_id):
|
||||
uri = self.build_url_prov("entity/" + entity_id)
|
||||
uri = self.sdk_client.build_url_prov("entity/" + entity_id)
|
||||
print(uri)
|
||||
resp = requests.delete(uri, headers=self.make_headers(), verify=False, timeout=100)
|
||||
self.check_response("DELETE", resp, self.make_headers(), "", uri)
|
||||
resp = requests.delete(uri, headers=self.sdk_client.make_headers(), verify=False, timeout=100)
|
||||
self.sdk_client.check_response("DELETE", resp, self.sdk_client.make_headers(), "", uri)
|
||||
return resp
|
||||
|
||||
def edit_device_from_inventory(self, device_name, payload):
|
||||
uri = self.build_url_prov("inventory/" + device_name)
|
||||
uri = self.sdk_client.build_url_prov("inventory/" + device_name)
|
||||
print(uri)
|
||||
print(payload)
|
||||
payload = json.dumps(payload)
|
||||
resp = requests.put(uri, data=payload, headers=self.make_headers(), verify=False, timeout=100)
|
||||
resp = requests.put(uri, data=payload, headers=self.sdk_client.make_headers(), verify=False, timeout=100)
|
||||
print(resp)
|
||||
self.check_response("PUT", resp, self.make_headers(), payload, uri)
|
||||
self.sdk_client.check_response("PUT", resp, self.sdk_client.make_headers(), payload, uri)
|
||||
return resp
|
||||
|
||||
def edit_entity(self, payload, entity_id):
|
||||
uri = self.build_url_prov("entity/" + entity_id)
|
||||
uri = self.sdk_client.build_url_prov("entity/" + entity_id)
|
||||
print(uri)
|
||||
print(payload)
|
||||
payload = json.dumps(payload)
|
||||
resp = requests.put(uri, data=payload, headers=self.make_headers(), verify=False, timeout=100)
|
||||
resp = requests.put(uri, data=payload, headers=self.sdk_client.make_headers(), verify=False, timeout=100)
|
||||
print(resp)
|
||||
self.check_response("PUT", resp, self.make_headers(), payload, uri)
|
||||
self.sdk_client.check_response("PUT", resp, self.sdk_client.make_headers(), payload, uri)
|
||||
return resp
|
||||
|
||||
def get_contact(self):
|
||||
uri = self.build_url_prov("contact")
|
||||
uri = self.sdk_client.build_url_prov("contact")
|
||||
print(uri)
|
||||
resp = requests.get(uri, headers=self.make_headers(), verify=False, timeout=100)
|
||||
self.check_response("GET", resp, self.make_headers(), "", uri)
|
||||
resp = requests.get(uri, headers=self.sdk_client.make_headers(), verify=False, timeout=100)
|
||||
self.sdk_client.check_response("GET", resp, self.sdk_client.make_headers(), "", uri)
|
||||
return resp
|
||||
|
||||
def get_contact_by_id(self, contact_id):
|
||||
uri = self.build_url_prov("contact/" + contact_id)
|
||||
uri = self.sdk_client.build_url_prov("contact/" + contact_id)
|
||||
print(uri)
|
||||
resp = requests.get(uri, headers=self.make_headers(), verify=False, timeout=100)
|
||||
self.check_response("GET", resp, self.make_headers(), "", uri)
|
||||
resp = requests.get(uri, headers=self.sdk_client.make_headers(), verify=False, timeout=100)
|
||||
self.sdk_client.check_response("GET", resp, self.sdk_client.make_headers(), "", uri)
|
||||
return resp
|
||||
|
||||
def add_contact(self, payload):
|
||||
uri = self.build_url_prov("contact/1")
|
||||
uri = self.sdk_client.build_url_prov("contact/1")
|
||||
print(uri)
|
||||
print(payload)
|
||||
payload = json.dumps(payload)
|
||||
resp = requests.post(uri, data=payload, headers=self.make_headers(), verify=False, timeout=100)
|
||||
resp = requests.post(uri, data=payload, headers=self.sdk_client.make_headers(), verify=False, timeout=100)
|
||||
print(resp)
|
||||
self.check_response("POST", resp, self.make_headers(), payload, uri)
|
||||
self.sdk_client.check_response("POST", resp, self.sdk_client.make_headers(), payload, uri)
|
||||
return resp
|
||||
|
||||
def delete_contact(self, contact_id):
|
||||
uri = self.build_url_prov("contact/" + contact_id)
|
||||
uri = self.sdk_client.build_url_prov("contact/" + contact_id)
|
||||
print(uri)
|
||||
resp = requests.delete(uri, headers=self.make_headers(), verify=False, timeout=100)
|
||||
self.check_response("DELETE", resp, self.make_headers(), "", uri)
|
||||
resp = requests.delete(uri, headers=self.sdk_client.make_headers(), verify=False, timeout=100)
|
||||
self.sdk_client.check_response("DELETE", resp, self.sdk_client.make_headers(), "", uri)
|
||||
return resp
|
||||
|
||||
def edit_contact(self, payload, contact_id):
|
||||
uri = self.build_url_prov("contact/" + contact_id)
|
||||
uri = self.sdk_client.build_url_prov("contact/" + contact_id)
|
||||
print(uri)
|
||||
print(payload)
|
||||
payload = json.dumps(payload)
|
||||
resp = requests.put(uri, data=payload, headers=self.make_headers(), verify=False, timeout=100)
|
||||
resp = requests.put(uri, data=payload, headers=self.sdk_client.make_headers(), verify=False, timeout=100)
|
||||
print(resp)
|
||||
self.check_response("PUT", resp, self.make_headers(), payload, uri)
|
||||
self.sdk_client.check_response("PUT", resp, self.sdk_client.make_headers(), payload, uri)
|
||||
return resp
|
||||
|
||||
def get_location(self):
|
||||
uri = self.build_url_prov("location")
|
||||
uri = self.sdk_client.build_url_prov("location")
|
||||
print(uri)
|
||||
resp = requests.get(uri, headers=self.make_headers(), verify=False, timeout=100)
|
||||
self.check_response("GET", resp, self.make_headers(), "", uri)
|
||||
resp = requests.get(uri, headers=self.sdk_client.make_headers(), verify=False, timeout=100)
|
||||
self.sdk_client.check_response("GET", resp, self.sdk_client.make_headers(), "", uri)
|
||||
return resp
|
||||
|
||||
def get_location_by_id(self, location_id):
|
||||
uri = self.build_url_prov("location/" + location_id)
|
||||
uri = self.sdk_client.build_url_prov("location/" + location_id)
|
||||
print(uri)
|
||||
resp = requests.get(uri, headers=self.make_headers(), verify=False, timeout=100)
|
||||
self.check_response("GET", resp, self.make_headers(), "", uri)
|
||||
resp = requests.get(uri, headers=self.sdk_client.make_headers(), verify=False, timeout=100)
|
||||
self.sdk_client.check_response("GET", resp, self.sdk_client.make_headers(), "", uri)
|
||||
return resp
|
||||
|
||||
def add_location(self, payload):
|
||||
uri = self.build_url_prov("location/1")
|
||||
uri = self.sdk_client.build_url_prov("location/1")
|
||||
print(uri)
|
||||
print(payload)
|
||||
payload = json.dumps(payload)
|
||||
resp = requests.post(uri, data=payload, headers=self.make_headers(), verify=False, timeout=100)
|
||||
resp = requests.post(uri, data=payload, headers=self.sdk_client.make_headers(), verify=False, timeout=100)
|
||||
print(resp)
|
||||
self.check_response("POST", resp, self.make_headers(), payload, uri)
|
||||
self.sdk_client.check_response("POST", resp, self.sdk_client.make_headers(), payload, uri)
|
||||
return resp
|
||||
|
||||
def delete_location(self, location_id):
|
||||
uri = self.build_url_prov("location/" + location_id)
|
||||
uri = self.sdk_client.build_url_prov("location/" + location_id)
|
||||
print(uri)
|
||||
resp = requests.delete(uri, headers=self.make_headers(), verify=False, timeout=100)
|
||||
self.check_response("DELETE", resp, self.make_headers(), "", uri)
|
||||
resp = requests.delete(uri, headers=self.sdk_client.make_headers(), verify=False, timeout=100)
|
||||
self.sdk_client.check_response("DELETE", resp, self.sdk_client.make_headers(), "", uri)
|
||||
return resp
|
||||
|
||||
def edit_location(self, payload, location_id):
|
||||
uri = self.build_url_prov("location/" + location_id)
|
||||
uri = self.sdk_client.build_url_prov("location/" + location_id)
|
||||
print(uri)
|
||||
print(payload)
|
||||
payload = json.dumps(payload)
|
||||
resp = requests.put(uri, data=payload, headers=self.make_headers(), verify=False, timeout=100)
|
||||
resp = requests.put(uri, data=payload, headers=self.sdk_client.make_headers(), verify=False, timeout=100)
|
||||
print(resp)
|
||||
self.check_response("PUT", resp, self.make_headers(), payload, uri)
|
||||
self.sdk_client.check_response("PUT", resp, self.sdk_client.make_headers(), payload, uri)
|
||||
return resp
|
||||
|
||||
|
||||
def get_venue(self):
|
||||
uri = self.build_url_prov("venue")
|
||||
uri = self.sdk_client.build_url_prov("venue")
|
||||
print(uri)
|
||||
resp = requests.get(uri, headers=self.make_headers(), verify=False, timeout=100)
|
||||
self.check_response("GET", resp, self.make_headers(), "", uri)
|
||||
resp = requests.get(uri, headers=self.sdk_client.make_headers(), verify=False, timeout=100)
|
||||
self.sdk_client.check_response("GET", resp, self.sdk_client.make_headers(), "", uri)
|
||||
return resp
|
||||
|
||||
def get_venue_by_id(self, venue_id):
|
||||
uri = self.build_url_prov("venue/" + venue_id)
|
||||
uri = self.sdk_client.build_url_prov("venue/" + venue_id)
|
||||
print(uri)
|
||||
resp = requests.get(uri, headers=self.make_headers(), verify=False, timeout=100)
|
||||
self.check_response("GET", resp, self.make_headers(), "", uri)
|
||||
resp = requests.get(uri, headers=self.sdk_client.make_headers(), verify=False, timeout=100)
|
||||
self.sdk_client.check_response("GET", resp, self.sdk_client.make_headers(), "", uri)
|
||||
return resp
|
||||
|
||||
def add_venue(self, payload):
|
||||
uri = self.build_url_prov("venue/0")
|
||||
uri = self.sdk_client.build_url_prov("venue/0")
|
||||
print(uri)
|
||||
print(payload)
|
||||
payload = json.dumps(payload)
|
||||
resp = requests.post(uri, data=payload, headers=self.make_headers(), verify=False, timeout=100)
|
||||
resp = requests.post(uri, data=payload, headers=self.sdk_client.make_headers(), verify=False, timeout=100)
|
||||
print(resp)
|
||||
self.check_response("POST", resp, self.make_headers(), payload, uri)
|
||||
self.sdk_client.check_response("POST", resp, self.sdk_client.make_headers(), payload, uri)
|
||||
return resp
|
||||
|
||||
def delete_venue(self, venue_id):
|
||||
uri = self.build_url_prov("venue/" + venue_id)
|
||||
uri = self.sdk_client.build_url_prov("venue/" + venue_id)
|
||||
print(uri)
|
||||
resp = requests.delete(uri, headers=self.make_headers(), verify=False, timeout=100)
|
||||
self.check_response("DELETE", resp, self.make_headers(), "", uri)
|
||||
resp = requests.delete(uri, headers=self.sdk_client.make_headers(), verify=False, timeout=100)
|
||||
self.sdk_client.check_response("DELETE", resp, self.sdk_client.make_headers(), "", uri)
|
||||
return resp
|
||||
|
||||
def edit_venue(self, payload, venue_id):
|
||||
uri = self.build_url_prov("venue/" + venue_id)
|
||||
uri = self.sdk_client.build_url_prov("venue/" + venue_id)
|
||||
print(uri)
|
||||
print(payload)
|
||||
payload = json.dumps(payload)
|
||||
resp = requests.put(uri, data=payload, headers=self.make_headers(), verify=False, timeout=100)
|
||||
resp = requests.put(uri, data=payload, headers=self.sdk_client.make_headers(), verify=False, timeout=100)
|
||||
print(resp)
|
||||
self.check_response("PUT", resp, self.make_headers(), payload, uri)
|
||||
self.sdk_client.check_response("PUT", resp, self.sdk_client.make_headers(), payload, uri)
|
||||
return resp
|
||||
|
||||
|
||||
class UProfileUtility:
|
||||
|
||||
def __init__(self, sdk_client=None, controller_data=None):
|
||||
@@ -900,7 +892,6 @@ class UProfileUtility:
|
||||
# for keys in radio_config[band]:
|
||||
# base_radio_config_6g[keys] = radio_config[band][keys]
|
||||
|
||||
|
||||
self.base_profile_config["radios"].append(base_radio_config_2g)
|
||||
self.base_profile_config["radios"].append(base_radio_config_5g)
|
||||
print(self.base_profile_config)
|
||||
@@ -1053,6 +1044,8 @@ if __name__ == '__main__':
|
||||
'password': 'OpenWifi%123',
|
||||
}
|
||||
obj = Controller(controller_data=controller)
|
||||
po = ProvUtils(sdk_client=obj)
|
||||
print(po.get_inventory())
|
||||
# up = UProfileUtility(sdk_client=obj, controller_data=controller)
|
||||
# up.set_mode(mode="BRIDGE")
|
||||
# up.set_radio_config()
|
||||
|
||||
@@ -94,6 +94,12 @@ def pytest_addoption(parser):
|
||||
default=False,
|
||||
help="skip updating firmware on the AP (useful for local testing)"
|
||||
)
|
||||
parser.addoption(
|
||||
"--skip-env",
|
||||
action="store_true",
|
||||
default=False,
|
||||
help="skip adding to env data"
|
||||
)
|
||||
|
||||
parser.addoption(
|
||||
"--skip-lanforge",
|
||||
@@ -239,12 +245,14 @@ def testbed(request):
|
||||
allure.attach(name="testbed name", body=var)
|
||||
yield var
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def device(request):
|
||||
"""yields the device option selection"""
|
||||
var = request.config.getoption("--device")
|
||||
yield var
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def should_upload_firmware(request):
|
||||
"""yields the --force-upload option for firmware upload selection"""
|
||||
@@ -257,12 +265,14 @@ def run_lf(request):
|
||||
var = request.config.getoption("--run-lf")
|
||||
yield var
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def cc_1(request):
|
||||
"""yields the --cc.1 option for skipping configuration on AP and using Cloud controller of available framework"""
|
||||
var = request.config.getoption("--cc.1")
|
||||
yield var
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def roaming_delay(request):
|
||||
"""yields the --roaming_delay option """
|
||||
@@ -270,6 +280,7 @@ def roaming_delay(request):
|
||||
allure.attach(name="roaming delay provided in seconds", body=str(var))
|
||||
yield var
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def iteration(request):
|
||||
"""yields the --iteration option for a test to provide how frequenty roam should happen """
|
||||
@@ -277,6 +288,7 @@ def iteration(request):
|
||||
allure.attach(name="iteration", body=var)
|
||||
yield var
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def duration(request):
|
||||
"""yields the --duration option for a test to provide how long roam should happen """
|
||||
@@ -284,6 +296,7 @@ def duration(request):
|
||||
allure.attach(name="duration in minutes", body=str(var))
|
||||
yield var
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def client(request):
|
||||
"""yields the --client option for getting user specified client number"""
|
||||
@@ -291,6 +304,7 @@ def client(request):
|
||||
allure.attach(name="number of clients", body=var)
|
||||
yield var
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def skip_pcap(request):
|
||||
"""yields the --skip-pcap option for skipping the packet capture for sanity"""
|
||||
@@ -347,6 +361,7 @@ def get_configuration(testbed, request):
|
||||
LOGGER.info("Selected the lab Info data: " + str((CONFIGURATION[testbed])))
|
||||
yield CONFIGURATION[testbed]
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def get_device_configuration(device, request):
|
||||
"""yields the selected device information from lab info file (configuration.py)"""
|
||||
@@ -391,6 +406,7 @@ def get_uci_show(fixtures_ver, get_apnos, get_configuration):
|
||||
uci_show = fixtures_ver.get_uci_show(get_apnos, get_configuration)
|
||||
yield uci_show
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def get_ap_version(fixtures_ver, get_apnos, get_configuration, cc_1):
|
||||
if not cc_1:
|
||||
@@ -399,6 +415,7 @@ def get_ap_version(fixtures_ver, get_apnos, get_configuration, cc_1):
|
||||
else:
|
||||
yield True
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def skip_lf(request):
|
||||
yield request.config.getoption("--skip-lanforge")
|
||||
@@ -418,6 +435,7 @@ def setup_controller(request, get_configuration, add_env_properties, fixtures_ve
|
||||
request.addfinalizer(fixtures_ver.disconnect)
|
||||
yield sdk_client
|
||||
|
||||
|
||||
# Prov Controller Fixture
|
||||
@pytest.fixture(scope="session")
|
||||
def setup_prov_controller(request, get_configuration, add_env_properties, fixtures_ver):
|
||||
@@ -719,18 +737,19 @@ def lf_tools(get_configuration, testbed, skip_lf, run_lf, get_ap_version, cc_1):
|
||||
""" Create a DUT on LANforge"""
|
||||
if not skip_lf:
|
||||
obj = ChamberView(lanforge_data=get_configuration["traffic_generator"]["details"],
|
||||
testbed=testbed, run_lf=run_lf, access_point_data=get_configuration["access_point"], cc_1=cc_1, ap_version=get_ap_version)
|
||||
testbed=testbed, run_lf=run_lf, access_point_data=get_configuration["access_point"],
|
||||
cc_1=cc_1, ap_version=get_ap_version)
|
||||
else:
|
||||
obj = False
|
||||
yield obj
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def lf_reports():
|
||||
obj = Report()
|
||||
yield obj
|
||||
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def lf_test(get_configuration, setup_influx, request, skip_lf, run_lf, skip_pcap):
|
||||
if not skip_lf:
|
||||
@@ -784,18 +803,22 @@ def add_allure_environment_property(request: SubRequest) -> Optional[Callable]:
|
||||
|
||||
|
||||
@fixture(scope='session')
|
||||
def add_env_properties(get_configuration, get_sdk_version, get_apnos, fixtures_ver, cc_1,
|
||||
def add_env_properties(request, get_configuration, get_sdk_version, get_apnos, fixtures_ver, cc_1,
|
||||
add_allure_environment_property: Callable) -> None:
|
||||
if request.config.getoption("--skip-env"):
|
||||
add_allure_environment_property('Cloud-Controller-SDK-URL', get_configuration["controller"]["url"])
|
||||
return
|
||||
if cc_1:
|
||||
for i in range(len(get_configuration["access_point"])):
|
||||
add_allure_environment_property(str('Access-Point-Model'+ str(i+1)), get_configuration["access_point"][i]["model"])
|
||||
add_allure_environment_property(str('Access-Point-Model' + str(i + 1)),
|
||||
get_configuration["access_point"][i]["model"])
|
||||
else:
|
||||
add_allure_environment_property('Access-Point-Model', get_configuration["access_point"][0]["model"])
|
||||
add_allure_environment_property('SDK-Version', get_sdk_version)
|
||||
try:
|
||||
if not cc_1:
|
||||
add_allure_environment_property('Access-Point-Firmware-Version',
|
||||
fixtures_ver.get_ap_version(get_apnos, get_configuration)[0].split("\n")[1])
|
||||
fixtures_ver.get_ap_version(get_apnos, get_configuration)[0].split("\n")[1])
|
||||
except Exception as e:
|
||||
print(e)
|
||||
pass
|
||||
@@ -930,6 +953,7 @@ def get_ap_config_slots(get_configuration):
|
||||
# print(slot)
|
||||
allure.attach(name="ap_slots", body=str(slot))
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def get_apnos_max_clients(get_apnos, get_configuration):
|
||||
all_logs = []
|
||||
@@ -943,6 +967,7 @@ def get_apnos_max_clients(get_apnos, get_configuration):
|
||||
pass
|
||||
yield all_logs
|
||||
|
||||
|
||||
@pytest.fixture(scope="function")
|
||||
def get_ap_channel(get_apnos, get_configuration):
|
||||
all_data = []
|
||||
@@ -975,30 +1000,31 @@ def get_ap_channel(get_apnos, get_configuration):
|
||||
print(all_data)
|
||||
yield all_data
|
||||
|
||||
|
||||
@pytest.fixture(scope="function")
|
||||
def disable_band5ghz(get_configuration):
|
||||
obj = CController(controller_data=get_configuration['controller'], ap_data=get_configuration['access_point'])
|
||||
shut= obj.ap_5ghz_shutdown()
|
||||
shut = obj.ap_5ghz_shutdown()
|
||||
print(shut)
|
||||
|
||||
|
||||
@pytest.fixture(scope="function")
|
||||
def disable_band2ghz(get_configuration):
|
||||
obj = CController(controller_data=get_configuration['controller'], ap_data=get_configuration['access_point'])
|
||||
shut = obj.ap_2ghz_shutdown()
|
||||
print(shut)
|
||||
|
||||
|
||||
@pytest.fixture(scope="function")
|
||||
def disable_band6ghz(get_configuration):
|
||||
obj = CController(controller_data=get_configuration['controller'], ap_data=get_configuration['access_point'])
|
||||
shut = obj.ap_6ghz_shutdown()
|
||||
print(shut)
|
||||
|
||||
|
||||
@pytest.fixture(scope="function")
|
||||
def enable_all_bands(get_configuration):
|
||||
obj = CController(controller_data=get_configuration['controller'], ap_data=get_configuration['access_point'])
|
||||
obj.no_ap_5ghz_shutdown()
|
||||
obj.no_ap_2ghz_shutdown()
|
||||
obj.no_ap_6ghz_shutdown()
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
"""
|
||||
|
||||
UCI Rest API Tests: Test Devices API
|
||||
|
||||
"""
|
||||
import pytest
|
||||
|
||||
|
||||
class TestUCIAUTHDEAUTH(object):
|
||||
"""
|
||||
pytest -m "uci_login or uci_logout" --ucentral
|
||||
"""
|
||||
|
||||
@pytest.mark.uci_login
|
||||
def test_get_all_devices(self, setup_controller):
|
||||
"""
|
||||
pytest -m "uci_login" --ucentral
|
||||
"""
|
||||
print(setup_controller.login_resp)
|
||||
assert setup_controller.login_resp.status_code == 200
|
||||
|
||||
@pytest.mark.uci_logout
|
||||
def test_get_device_by_serial(self, setup_controller):
|
||||
"""
|
||||
pytest -m "uci_logout" --ucentral
|
||||
"""
|
||||
resp = setup_controller.logout()
|
||||
print(resp)
|
||||
assert resp.status_code == 200
|
||||
@@ -4,16 +4,14 @@
|
||||
|
||||
"""
|
||||
|
||||
import string
|
||||
import random
|
||||
|
||||
import pytest
|
||||
import json
|
||||
import allure
|
||||
import pytest
|
||||
|
||||
|
||||
@pytest.mark.uc_sanity
|
||||
@allure.feature("SDK REST API")
|
||||
@pytest.mark.ow_sdk_load_tests
|
||||
@allure.parent_suite("OpenWifi SDK Tests")
|
||||
@allure.parent_suite("OpenWifi FMS Service Tests")
|
||||
class TestUcentralFMSService(object):
|
||||
|
||||
@pytest.mark.system_info_fms
|
||||
|
||||
@@ -4,118 +4,120 @@
|
||||
|
||||
"""
|
||||
|
||||
import string
|
||||
import json
|
||||
import random
|
||||
|
||||
import pytest
|
||||
import json
|
||||
import allure
|
||||
import pytest
|
||||
|
||||
|
||||
@pytest.mark.uc_sanity
|
||||
@pytest.mark.ow_sdk_tests
|
||||
@pytest.mark.ow_sanity_lf
|
||||
@pytest.mark.ow_sdk_load_tests
|
||||
@pytest.mark.owgw_api_tests
|
||||
@allure.feature("SDK REST API")
|
||||
@allure.parent_suite("OpenWifi SDK Tests")
|
||||
@allure.parent_suite("OpenWifi Gateway Service Tests")
|
||||
class TestUcentralGatewayService(object):
|
||||
"""
|
||||
"""
|
||||
configuration = {
|
||||
"uuid": 1,
|
||||
"radios": [
|
||||
{
|
||||
"band": "5G",
|
||||
"country": "CA",
|
||||
"channel-mode": "HE",
|
||||
"channel-width": 80
|
||||
}
|
||||
],
|
||||
"uuid": 1,
|
||||
"radios": [
|
||||
{
|
||||
"band": "5G",
|
||||
"country": "CA",
|
||||
"channel-mode": "HE",
|
||||
"channel-width": 80
|
||||
}
|
||||
],
|
||||
|
||||
"interfaces": [
|
||||
{
|
||||
"name": "WAN",
|
||||
"role": "upstream",
|
||||
"services": [ "lldp" ],
|
||||
"ethernet": [
|
||||
{
|
||||
"select-ports": [
|
||||
"WAN*"
|
||||
]
|
||||
}
|
||||
],
|
||||
"ipv4": {
|
||||
"addressing": "dynamic"
|
||||
},
|
||||
"ssids": [
|
||||
{
|
||||
"name": "OpenWifi",
|
||||
"wifi-bands": [
|
||||
"5G"
|
||||
],
|
||||
"bss-mode": "ap",
|
||||
"encryption": {
|
||||
"proto": "psk2",
|
||||
"key": "OpenWifi",
|
||||
"ieee80211w": "optional"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "LAN",
|
||||
"role": "downstream",
|
||||
"services": [ "ssh", "lldp" ],
|
||||
"ethernet": [
|
||||
{
|
||||
"select-ports": [
|
||||
"LAN*"
|
||||
]
|
||||
}
|
||||
],
|
||||
"ipv4": {
|
||||
"addressing": "static",
|
||||
"subnet": "192.168.1.1/24",
|
||||
"dhcp": {
|
||||
"lease-first": 10,
|
||||
"lease-count": 100,
|
||||
"lease-time": "6h"
|
||||
}
|
||||
},
|
||||
"ssids": [
|
||||
{
|
||||
"name": "OpenWifi",
|
||||
"wifi-bands": [
|
||||
"5G"
|
||||
],
|
||||
"bss-mode": "ap",
|
||||
"encryption": {
|
||||
"proto": "psk2",
|
||||
"key": "OpenWifi",
|
||||
"ieee80211w": "optional"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
}
|
||||
],
|
||||
"metrics": {
|
||||
"statistics": {
|
||||
"interval": 120,
|
||||
"types": [ "ssids", "lldp", "clients" ]
|
||||
},
|
||||
"health": {
|
||||
"interval": 120
|
||||
}
|
||||
},
|
||||
"services": {
|
||||
"lldp": {
|
||||
"describe": "2.x",
|
||||
"location": "universe"
|
||||
},
|
||||
"ssh": {
|
||||
"port": 22
|
||||
}
|
||||
}
|
||||
"interfaces": [
|
||||
{
|
||||
"name": "WAN",
|
||||
"role": "upstream",
|
||||
"services": ["lldp"],
|
||||
"ethernet": [
|
||||
{
|
||||
"select-ports": [
|
||||
"WAN*"
|
||||
]
|
||||
}
|
||||
],
|
||||
"ipv4": {
|
||||
"addressing": "dynamic"
|
||||
},
|
||||
"ssids": [
|
||||
{
|
||||
"name": "OpenWifi",
|
||||
"wifi-bands": [
|
||||
"5G"
|
||||
],
|
||||
"bss-mode": "ap",
|
||||
"encryption": {
|
||||
"proto": "psk2",
|
||||
"key": "OpenWifi",
|
||||
"ieee80211w": "optional"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "LAN",
|
||||
"role": "downstream",
|
||||
"services": ["ssh", "lldp"],
|
||||
"ethernet": [
|
||||
{
|
||||
"select-ports": [
|
||||
"LAN*"
|
||||
]
|
||||
}
|
||||
],
|
||||
"ipv4": {
|
||||
"addressing": "static",
|
||||
"subnet": "192.168.1.1/24",
|
||||
"dhcp": {
|
||||
"lease-first": 10,
|
||||
"lease-count": 100,
|
||||
"lease-time": "6h"
|
||||
}
|
||||
},
|
||||
"ssids": [
|
||||
{
|
||||
"name": "OpenWifi",
|
||||
"wifi-bands": [
|
||||
"5G"
|
||||
],
|
||||
"bss-mode": "ap",
|
||||
"encryption": {
|
||||
"proto": "psk2",
|
||||
"key": "OpenWifi",
|
||||
"ieee80211w": "optional"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
}
|
||||
],
|
||||
"metrics": {
|
||||
"statistics": {
|
||||
"interval": 120,
|
||||
"types": ["ssids", "lldp", "clients"]
|
||||
},
|
||||
"health": {
|
||||
"interval": 120
|
||||
}
|
||||
},
|
||||
"services": {
|
||||
"lldp": {
|
||||
"describe": "2.x",
|
||||
"location": "universe"
|
||||
},
|
||||
"ssh": {
|
||||
"port": 22
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@pytest.mark.sdk_restapi
|
||||
def test_gwservice_listdevices(self, setup_controller):
|
||||
@@ -136,8 +138,8 @@ class TestUcentralGatewayService(object):
|
||||
WIFI-3453
|
||||
"""
|
||||
device_mac = "02:00:00:%02x:%02x:%02x" % (random.randint(0, 255),
|
||||
random.randint(0, 255),
|
||||
random.randint(0, 255))
|
||||
random.randint(0, 255),
|
||||
random.randint(0, 255))
|
||||
device_name = device_mac.replace(":", "")
|
||||
# device_name = "deadbeef0011" + testbed.replace("-","")
|
||||
payload = {'serialNumber': device_name,
|
||||
@@ -165,13 +167,13 @@ class TestUcentralGatewayService(object):
|
||||
assert False
|
||||
|
||||
editing_payload = {
|
||||
"id": device_name,
|
||||
"notes": [
|
||||
{
|
||||
"note": "Testing through Automation"
|
||||
}
|
||||
]
|
||||
}
|
||||
"id": device_name,
|
||||
"notes": [
|
||||
{
|
||||
"note": "Testing through Automation"
|
||||
}
|
||||
]
|
||||
}
|
||||
print(json.dumps(editing_payload))
|
||||
resp = setup_controller.edit_device_on_gw(device_name, editing_payload)
|
||||
allure.attach(name="response: ", body=str(resp.json()))
|
||||
@@ -194,19 +196,19 @@ class TestUcentralGatewayService(object):
|
||||
if resp.status_code != 200:
|
||||
assert False
|
||||
|
||||
|
||||
@pytest.mark.system_info_gw
|
||||
def test_system_info_gw(self, setup_controller):
|
||||
system_info = setup_controller.get_system_gw()
|
||||
print(system_info.json())
|
||||
allure.attach(name="system info", body=str(system_info.json()),attachment_type=allure.attachment_type.JSON)
|
||||
allure.attach(name="system info", body=str(system_info.json()), attachment_type=allure.attachment_type.JSON)
|
||||
assert system_info.status_code == 200
|
||||
|
||||
@pytest.mark.gw_commands
|
||||
def test_gw_commands(self, setup_controller):
|
||||
system_info = setup_controller.get_commands()
|
||||
print(system_info.json())
|
||||
allure.attach(name="Gateway list of commands", body=str(system_info.json()), attachment_type=allure.attachment_type.JSON)
|
||||
allure.attach(name="Gateway list of commands", body=str(system_info.json()),
|
||||
attachment_type=allure.attachment_type.JSON)
|
||||
assert system_info.status_code == 200
|
||||
|
||||
@pytest.mark.gw_device_logs
|
||||
@@ -217,7 +219,7 @@ class TestUcentralGatewayService(object):
|
||||
device_name = get_configuration['access_point'][0]['serial']
|
||||
resp = setup_controller.get_device_logs(device_name)
|
||||
print(resp.json())
|
||||
allure.attach(name="Device Logs", body=str(resp.json()),attachment_type=allure.attachment_type.JSON)
|
||||
allure.attach(name="Device Logs", body=str(resp.json()), attachment_type=allure.attachment_type.JSON)
|
||||
assert resp.status_code == 200
|
||||
|
||||
@pytest.mark.gw_device_health_checks
|
||||
@@ -270,8 +272,8 @@ class TestUcentralGatewayService(object):
|
||||
"""
|
||||
device_name = get_configuration['access_point'][0]['serial']
|
||||
payload = {
|
||||
"serialNumber": device_name
|
||||
}
|
||||
"serialNumber": device_name
|
||||
}
|
||||
print(json.dumps(payload))
|
||||
resp = setup_controller.ping_device(device_name, payload)
|
||||
print(resp.json())
|
||||
@@ -284,15 +286,16 @@ class TestUcentralGatewayService(object):
|
||||
"""
|
||||
device_name = get_configuration['access_point'][0]['serial']
|
||||
payload = {
|
||||
"serialNumber": device_name,
|
||||
"when": 0,
|
||||
"duration": 1,
|
||||
"pattern": "on"
|
||||
}
|
||||
"serialNumber": device_name,
|
||||
"when": 0,
|
||||
"duration": 1,
|
||||
"pattern": "on"
|
||||
}
|
||||
print(json.dumps(payload))
|
||||
resp = setup_controller.led_blink_device(device_name, payload)
|
||||
print(resp.json())
|
||||
allure.attach(name="Device Blink led status", body=str(resp.json()), attachment_type=allure.attachment_type.JSON)
|
||||
allure.attach(name="Device Blink led status", body=str(resp.json()),
|
||||
attachment_type=allure.attachment_type.JSON)
|
||||
|
||||
@pytest.mark.gw_trace_device
|
||||
def test_gw_service_trace_device(self, setup_controller, get_configuration):
|
||||
@@ -301,13 +304,13 @@ class TestUcentralGatewayService(object):
|
||||
"""
|
||||
device_name = get_configuration['access_point'][0]['serial']
|
||||
payload = {
|
||||
"serialNumber": device_name,
|
||||
"when": 0,
|
||||
"duration": 1,
|
||||
"numberOfPackets": 0,
|
||||
"network": "string",
|
||||
"interface": "string"
|
||||
}
|
||||
"serialNumber": device_name,
|
||||
"when": 0,
|
||||
"duration": 1,
|
||||
"numberOfPackets": 0,
|
||||
"network": "string",
|
||||
"interface": "string"
|
||||
}
|
||||
print(json.dumps(payload))
|
||||
resp = setup_controller.trace_device(device_name, payload)
|
||||
print(resp.json())
|
||||
@@ -320,19 +323,20 @@ class TestUcentralGatewayService(object):
|
||||
"""
|
||||
device_name = get_configuration['access_point'][0]['serial']
|
||||
payload = {
|
||||
"serialNumber": device_name,
|
||||
"verbose": True,
|
||||
"activeScan": True,
|
||||
"selector": {
|
||||
"bands": [
|
||||
"2"
|
||||
]
|
||||
}
|
||||
}
|
||||
"serialNumber": device_name,
|
||||
"verbose": True,
|
||||
"activeScan": True,
|
||||
"selector": {
|
||||
"bands": [
|
||||
"2"
|
||||
]
|
||||
}
|
||||
}
|
||||
print(json.dumps(payload))
|
||||
resp = setup_controller.wifi_scan_device(device_name, payload)
|
||||
print(resp.json())
|
||||
allure.attach(name="Device Wifi scan status", body=str(resp.json()), attachment_type=allure.attachment_type.JSON)
|
||||
allure.attach(name="Device Wifi scan status", body=str(resp.json()),
|
||||
attachment_type=allure.attachment_type.JSON)
|
||||
|
||||
@pytest.mark.gw_request_msg_device
|
||||
def test_gw_service_request_msg_device(self, setup_controller, get_configuration):
|
||||
@@ -341,14 +345,15 @@ class TestUcentralGatewayService(object):
|
||||
"""
|
||||
device_name = get_configuration['access_point'][0]['serial']
|
||||
payload = {
|
||||
"serialNumber": device_name,
|
||||
"when": 0,
|
||||
"message": "state"
|
||||
}
|
||||
"serialNumber": device_name,
|
||||
"when": 0,
|
||||
"message": "state"
|
||||
}
|
||||
print(json.dumps(payload))
|
||||
resp = setup_controller.request_specific_msg_from_device(device_name, payload)
|
||||
print(resp.json())
|
||||
allure.attach(name="Device Request specific msg status", body=str(resp.json()), attachment_type=allure.attachment_type.JSON)
|
||||
allure.attach(name="Device Request specific msg status", body=str(resp.json()),
|
||||
attachment_type=allure.attachment_type.JSON)
|
||||
|
||||
@pytest.mark.gw_event_queue_device
|
||||
def test_gw_service_event_queue_device(self, setup_controller, get_configuration):
|
||||
@@ -357,15 +362,16 @@ class TestUcentralGatewayService(object):
|
||||
"""
|
||||
device_name = get_configuration['access_point'][0]['serial']
|
||||
payload = {
|
||||
"serialNumber": device_name,
|
||||
"types": [
|
||||
"dhcp"
|
||||
]
|
||||
}
|
||||
"serialNumber": device_name,
|
||||
"types": [
|
||||
"dhcp"
|
||||
]
|
||||
}
|
||||
print(json.dumps(payload))
|
||||
resp = setup_controller.event_queue(device_name, payload)
|
||||
print(resp.json())
|
||||
allure.attach(name="Device Request Event Queue status", body=str(resp.json()), attachment_type=allure.attachment_type.JSON)
|
||||
allure.attach(name="Device Request Event Queue status", body=str(resp.json()),
|
||||
attachment_type=allure.attachment_type.JSON)
|
||||
|
||||
@pytest.mark.gw_telemetry_device
|
||||
def test_gw_service_telemetry_device(self, setup_controller, get_configuration):
|
||||
@@ -374,19 +380,20 @@ class TestUcentralGatewayService(object):
|
||||
"""
|
||||
device_name = get_configuration['access_point'][0]['serial']
|
||||
payload = {
|
||||
"serialNumber": device_name,
|
||||
"interval": 0,
|
||||
"lifetime": 0,
|
||||
"kafka": False,
|
||||
"types": [
|
||||
"dhcp-snooping"
|
||||
],
|
||||
"uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
|
||||
}
|
||||
"serialNumber": device_name,
|
||||
"interval": 0,
|
||||
"lifetime": 0,
|
||||
"kafka": False,
|
||||
"types": [
|
||||
"dhcp-snooping"
|
||||
],
|
||||
"uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
|
||||
}
|
||||
print(json.dumps(payload))
|
||||
resp = setup_controller.telemetry(device_name, payload)
|
||||
print(resp.json())
|
||||
allure.attach(name="Device telemetry status", body=str(resp.json()), attachment_type=allure.attachment_type.JSON)
|
||||
allure.attach(name="Device telemetry status", body=str(resp.json()),
|
||||
attachment_type=allure.attachment_type.JSON)
|
||||
|
||||
@pytest.mark.gw_rtty
|
||||
def test_gw_service_get_rtty(self, setup_controller, get_configuration):
|
||||
|
||||
@@ -4,21 +4,22 @@
|
||||
|
||||
"""
|
||||
|
||||
import string
|
||||
import json
|
||||
import random
|
||||
|
||||
import pytest
|
||||
import json
|
||||
import allure
|
||||
import pytest
|
||||
|
||||
|
||||
@pytest.mark.ow_sanity_lf
|
||||
@pytest.mark.uc_sanity
|
||||
@pytest.mark.ow_sdk_tests
|
||||
@pytest.mark.ow_sdk_load_tests
|
||||
@pytest.mark.owprov_api_tests
|
||||
@allure.feature("SDK PROV REST API")
|
||||
@allure.parent_suite("OpenWifi SDK Tests")
|
||||
@allure.parent_suite("OpenWifi Provisioning Service Tests")
|
||||
class TestUcentralProvisionService(object):
|
||||
|
||||
|
||||
@pytest.mark.sdk_restapi
|
||||
@pytest.mark.prov_api
|
||||
def test_provservice_inventorylist(self, setup_prov_controller, get_configuration):
|
||||
@@ -28,7 +29,7 @@ class TestUcentralProvisionService(object):
|
||||
device_name = get_configuration['access_point'][0]['serial']
|
||||
resp = setup_prov_controller.get_inventory_by_device(device_name)
|
||||
print(resp.json())
|
||||
allure.attach(name="Inventory", body=str(resp.json()),attachment_type=allure.attachment_type.JSON)
|
||||
allure.attach(name="Inventory", body=str(resp.json()), attachment_type=allure.attachment_type.JSON)
|
||||
assert resp.status_code == 200
|
||||
|
||||
@pytest.mark.prov_api_test
|
||||
@@ -37,8 +38,8 @@ class TestUcentralProvisionService(object):
|
||||
Test the create device in provision Inventory
|
||||
"""
|
||||
device_mac = "02:00:00:%02x:%02x:%02x" % (random.randint(0, 255),
|
||||
random.randint(0, 255),
|
||||
random.randint(0, 255))
|
||||
random.randint(0, 255),
|
||||
random.randint(0, 255))
|
||||
device_name = device_mac.replace(":", "")
|
||||
# device_name = "deadbeef0011" + testbed.replace("-","")
|
||||
payload = {"serialNumber": device_name,
|
||||
@@ -77,15 +78,15 @@ class TestUcentralProvisionService(object):
|
||||
|
||||
# This is for Edititng the information fo device in Inventory
|
||||
editing_payload = {
|
||||
"description": "For testing API through automation after editing",
|
||||
"devClass": "any",
|
||||
"deviceType": "edgecore_eap101",
|
||||
"entity": "",
|
||||
"name": "Testing_to_add_device_through_automation",
|
||||
"notes": [],
|
||||
"rrm": "inherit",
|
||||
"venue": ""
|
||||
}
|
||||
"description": "For testing API through automation after editing",
|
||||
"devClass": "any",
|
||||
"deviceType": "edgecore_eap101",
|
||||
"entity": "",
|
||||
"name": "Testing_to_add_device_through_automation",
|
||||
"notes": [],
|
||||
"rrm": "inherit",
|
||||
"venue": ""
|
||||
}
|
||||
print(json.dumps(editing_payload))
|
||||
resp = setup_prov_controller.edit_device_from_inventory(device_name, editing_payload)
|
||||
allure.attach(name="response: ", body=str(resp.json()))
|
||||
@@ -121,10 +122,10 @@ class TestUcentralProvisionService(object):
|
||||
Test the create Entity in provision Inventory
|
||||
"""
|
||||
payload = {"name": "Testing_prov",
|
||||
"rrm": "inherit",
|
||||
"description": "For testing Purposes through Automation",
|
||||
"notes": [{"note": "For testing Purposes through Automation"}],
|
||||
"parent": "0000-0000-0000"
|
||||
"rrm": "inherit",
|
||||
"description": "For testing Purposes through Automation",
|
||||
"notes": [{"note": "For testing Purposes through Automation"}],
|
||||
"parent": "0000-0000-0000"
|
||||
}
|
||||
print(json.dumps(payload))
|
||||
resp = setup_prov_controller.add_entity(payload)
|
||||
@@ -145,14 +146,14 @@ class TestUcentralProvisionService(object):
|
||||
|
||||
# This to edit Entity
|
||||
editing_payload = {
|
||||
"description": "For testing Purposes through Automation after edit",
|
||||
"deviceConfiguration": [],
|
||||
"name": "Testing_prov",
|
||||
"notes": [],
|
||||
"rrm": "inherit",
|
||||
"sourceIP": [],
|
||||
"uuid": entity_id
|
||||
}
|
||||
"description": "For testing Purposes through Automation after edit",
|
||||
"deviceConfiguration": [],
|
||||
"name": "Testing_prov",
|
||||
"notes": [],
|
||||
"rrm": "inherit",
|
||||
"sourceIP": [],
|
||||
"uuid": entity_id
|
||||
}
|
||||
print(json.dumps(editing_payload))
|
||||
resp = setup_prov_controller.edit_entity(editing_payload, entity_id)
|
||||
allure.attach(name="response: ", body=str(resp.json()))
|
||||
@@ -196,24 +197,24 @@ class TestUcentralProvisionService(object):
|
||||
Test the create Contact in provision Inventory
|
||||
"""
|
||||
payload = {
|
||||
"name": "Prov-Testing-through-Automation",
|
||||
"type": "USER",
|
||||
"title": "Testing_contact",
|
||||
"salutation": "",
|
||||
"firstname": "ProvTesting",
|
||||
"lastname": "Through Automation",
|
||||
"initials": "",
|
||||
"visual": "",
|
||||
"phones": [],
|
||||
"mobiles": [],
|
||||
"primaryEmail": "tip@ucentral.com",
|
||||
"secondaryEmail": "",
|
||||
"accessPIN": "",
|
||||
"description": "",
|
||||
"initialNote": "",
|
||||
"entity": "0000-0000-0000",
|
||||
"notes": [{"note": ""}]
|
||||
}
|
||||
"name": "Prov-Testing-through-Automation",
|
||||
"type": "USER",
|
||||
"title": "Testing_contact",
|
||||
"salutation": "",
|
||||
"firstname": "ProvTesting",
|
||||
"lastname": "Through Automation",
|
||||
"initials": "",
|
||||
"visual": "",
|
||||
"phones": [],
|
||||
"mobiles": [],
|
||||
"primaryEmail": "tip@ucentral.com",
|
||||
"secondaryEmail": "",
|
||||
"accessPIN": "",
|
||||
"description": "",
|
||||
"initialNote": "",
|
||||
"entity": "0000-0000-0000",
|
||||
"notes": [{"note": ""}]
|
||||
}
|
||||
print(json.dumps(payload))
|
||||
resp = setup_prov_controller.add_contact(payload)
|
||||
allure.attach(name="response: ", body=str(resp.json()))
|
||||
@@ -233,22 +234,22 @@ class TestUcentralProvisionService(object):
|
||||
|
||||
# This to edit Entity
|
||||
editing_payload = {
|
||||
"accessPIN": "",
|
||||
"description": "",
|
||||
"entity": "0000-0000-0000",
|
||||
"firstname": "ProvTesting",
|
||||
"initials": "",
|
||||
"lastname": "Through Automation",
|
||||
"mobiles": [],
|
||||
"name": "Prov-Testing-Automation API's",
|
||||
"notes": [],
|
||||
"phones": [],
|
||||
"primaryEmail": "tip@ucentral.com",
|
||||
"salutation": "",
|
||||
"secondaryEmail": "",
|
||||
"title": "Testing_contact",
|
||||
"type": "USER"
|
||||
}
|
||||
"accessPIN": "",
|
||||
"description": "",
|
||||
"entity": "0000-0000-0000",
|
||||
"firstname": "ProvTesting",
|
||||
"initials": "",
|
||||
"lastname": "Through Automation",
|
||||
"mobiles": [],
|
||||
"name": "Prov-Testing-Automation API's",
|
||||
"notes": [],
|
||||
"phones": [],
|
||||
"primaryEmail": "tip@ucentral.com",
|
||||
"salutation": "",
|
||||
"secondaryEmail": "",
|
||||
"title": "Testing_contact",
|
||||
"type": "USER"
|
||||
}
|
||||
print(json.dumps(editing_payload))
|
||||
resp = setup_prov_controller.edit_contact(editing_payload, contact_id)
|
||||
allure.attach(name="response: ", body=str(resp.json()))
|
||||
@@ -285,22 +286,22 @@ class TestUcentralProvisionService(object):
|
||||
Test the create location in provision Inventory
|
||||
"""
|
||||
payload = {
|
||||
"name": "TIP",
|
||||
"type": "AUTO",
|
||||
"buildingName": "",
|
||||
"addressLines": ["Pedda Rushikonda"],
|
||||
"city": "Visakhapatnam",
|
||||
"state": "Andhra pradesh",
|
||||
"postal": "530045",
|
||||
"country": "IN",
|
||||
"phones": [],
|
||||
"mobiles": [],
|
||||
"geoCode": "",
|
||||
"description": "For Testing through Automation",
|
||||
"initialNote": "Testing purposes through Automation",
|
||||
"entity": "0000-0000-0000",
|
||||
"notes": [{"note": "Testing purposes"}]
|
||||
}
|
||||
"name": "TIP",
|
||||
"type": "AUTO",
|
||||
"buildingName": "",
|
||||
"addressLines": ["Pedda Rushikonda"],
|
||||
"city": "Visakhapatnam",
|
||||
"state": "Andhra pradesh",
|
||||
"postal": "530045",
|
||||
"country": "IN",
|
||||
"phones": [],
|
||||
"mobiles": [],
|
||||
"geoCode": "",
|
||||
"description": "For Testing through Automation",
|
||||
"initialNote": "Testing purposes through Automation",
|
||||
"entity": "0000-0000-0000",
|
||||
"notes": [{"note": "Testing purposes"}]
|
||||
}
|
||||
print(json.dumps(payload))
|
||||
resp = setup_prov_controller.add_location(payload)
|
||||
allure.attach(name="response: ", body=str(resp.json()))
|
||||
@@ -320,24 +321,24 @@ class TestUcentralProvisionService(object):
|
||||
|
||||
# This to edit Entity
|
||||
editing_payload = {
|
||||
"addressLines": [
|
||||
"Madhurawada",
|
||||
""
|
||||
],
|
||||
"buildingName": "",
|
||||
"city": "Visakhapatnam",
|
||||
"country": "IN",
|
||||
"description": "Candela Testing",
|
||||
"entity": "0000-0000-0000",
|
||||
"geoCode": "",
|
||||
"mobiles": [],
|
||||
"name": "Candela IND",
|
||||
"notes": [],
|
||||
"phones": [],
|
||||
"postal": "530048",
|
||||
"state": "Andhra Pradesh",
|
||||
"type": "SERVICE"
|
||||
}
|
||||
"addressLines": [
|
||||
"Madhurawada",
|
||||
""
|
||||
],
|
||||
"buildingName": "",
|
||||
"city": "Visakhapatnam",
|
||||
"country": "IN",
|
||||
"description": "Candela Testing",
|
||||
"entity": "0000-0000-0000",
|
||||
"geoCode": "",
|
||||
"mobiles": [],
|
||||
"name": "Candela IND",
|
||||
"notes": [],
|
||||
"phones": [],
|
||||
"postal": "530048",
|
||||
"state": "Andhra Pradesh",
|
||||
"type": "SERVICE"
|
||||
}
|
||||
print(json.dumps(editing_payload))
|
||||
resp = setup_prov_controller.edit_location(editing_payload, location_id)
|
||||
allure.attach(name="response: ", body=str(resp.json()))
|
||||
@@ -374,18 +375,18 @@ class TestUcentralProvisionService(object):
|
||||
Test the create venue in provision Inventory
|
||||
"""
|
||||
payload = {
|
||||
"description": "For testing Purposes",
|
||||
"entity": "6a657863-9940-4303-ac68-4cc10d3078ec",
|
||||
"location": "",
|
||||
"name": "Testing Prov",
|
||||
"notes": [
|
||||
{
|
||||
"note": "For testing Purposes"
|
||||
}
|
||||
],
|
||||
"parent": "",
|
||||
"rrm": "inherit"
|
||||
}
|
||||
"description": "For testing Purposes",
|
||||
"entity": "6a657863-9940-4303-ac68-4cc10d3078ec",
|
||||
"location": "",
|
||||
"name": "Testing Prov",
|
||||
"notes": [
|
||||
{
|
||||
"note": "For testing Purposes"
|
||||
}
|
||||
],
|
||||
"parent": "",
|
||||
"rrm": "inherit"
|
||||
}
|
||||
print(json.dumps(payload))
|
||||
resp = setup_prov_controller.add_venue(payload)
|
||||
allure.attach(name="response: ", body=str(resp.json()))
|
||||
@@ -405,13 +406,13 @@ class TestUcentralProvisionService(object):
|
||||
|
||||
# This to edit venue
|
||||
editing_payload = {
|
||||
"description": "For testing Purposes through Automation",
|
||||
"location": "",
|
||||
"name": "Testing Prov",
|
||||
"notes": [],
|
||||
"rrm": "inherit",
|
||||
"sourceIP": []
|
||||
}
|
||||
"description": "For testing Purposes through Automation",
|
||||
"location": "",
|
||||
"name": "Testing Prov",
|
||||
"notes": [],
|
||||
"rrm": "inherit",
|
||||
"sourceIP": []
|
||||
}
|
||||
print(json.dumps(editing_payload))
|
||||
resp = setup_prov_controller.edit_venue(editing_payload, venue_id)
|
||||
allure.attach(name="response: ", body=str(resp.json()))
|
||||
@@ -432,4 +433,4 @@ class TestUcentralProvisionService(object):
|
||||
body = resp.url + "," + str(resp.status_code) + ',' + resp.text
|
||||
allure.attach(name="Prov created venue-delete", body=body)
|
||||
if resp.status_code != 200:
|
||||
assert False
|
||||
assert False
|
||||
|
||||
@@ -10,8 +10,11 @@ import allure
|
||||
|
||||
@pytest.mark.uc_sanity
|
||||
@pytest.mark.ow_sanity_lf
|
||||
@pytest.mark.ow_sdk_tests
|
||||
@pytest.mark.ow_sdk_load_tests
|
||||
@pytest.mark.owsec_api_tests
|
||||
@allure.feature("SDK REST API")
|
||||
@allure.parent_suite("OpenWifi SDK Tests")
|
||||
@allure.parent_suite("OpenWifi Security Service Tests")
|
||||
class TestUcentralSecService(object):
|
||||
"""
|
||||
Test the oauth endpoint
|
||||
|
||||
154
tests/e2e/basic/test_e2e_sdk_ap_tests.py
Normal file
154
tests/e2e/basic/test_e2e_sdk_ap_tests.py
Normal file
@@ -0,0 +1,154 @@
|
||||
import sys
|
||||
import time
|
||||
from datetime import datetime
|
||||
|
||||
import allure
|
||||
import pytest
|
||||
|
||||
setup_params = [
|
||||
{
|
||||
"mode": "BRIDGE",
|
||||
"ssids": [
|
||||
{"ssid_name": "ssid_psk_2g", "appliedRadios": ["2G"], "security_key": "something", "security": "psk"},
|
||||
{"ssid_name": "ssid_psk_5g", "appliedRadios": ["5G"], "security_key": "something", "security": "psk"}],
|
||||
"radius": False
|
||||
},
|
||||
|
||||
{
|
||||
"mode": "BRIDGE",
|
||||
"ssids": [
|
||||
{"ssid_name": "ssid_psk2_2g", "appliedRadios": ["2G"], "security_key": "something", "security": "psk2"},
|
||||
{"ssid_name": "ssid_psk2_5g", "appliedRadios": ["5G"], "security_key": "something", "security": "psk2"}],
|
||||
"radius": False
|
||||
},
|
||||
|
||||
{
|
||||
"mode": "BRIDGE",
|
||||
"ssids": [
|
||||
{"ssid_name": "ssid_sae_2g", "appliedRadios": ["2G"], "security_key": "something", "security": "sae"},
|
||||
{"ssid_name": "ssid_sae_5g", "appliedRadios": ["5G"], "security_key": "something", "security": "sae"}],
|
||||
"radius": False
|
||||
},
|
||||
|
||||
{
|
||||
"mode": "BRIDGE",
|
||||
"ssids": [
|
||||
{"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"], "security_key": "something", "security": "none"},
|
||||
{"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"], "security_key": "something", "security": "none"}],
|
||||
"radius": False
|
||||
},
|
||||
|
||||
{
|
||||
"mode": "BRIDGE",
|
||||
"ssids": [
|
||||
{"ssid_name": "ssid_wpa2_eap_2g", "appliedRadios": ["2G"], "security_key": "something", "security": "wpa2"},
|
||||
{"ssid_name": "ssid_wpa2_eap_5g", "appliedRadios": ["5G"], "security_key": "something",
|
||||
"security": "wpa2"}],
|
||||
"radius": True
|
||||
},
|
||||
|
||||
{
|
||||
"mode": "BRIDGE",
|
||||
"ssids": [
|
||||
{"ssid_name": "ssid_wpa3_eap_2g", "appliedRadios": ["2G"], "security_key": "something", "security": "wpa3"},
|
||||
{"ssid_name": "ssid_wpa3_eap_5g", "appliedRadios": ["5G"], "security_key": "something",
|
||||
"security": "wpa3"}],
|
||||
"radius": True
|
||||
},
|
||||
|
||||
{
|
||||
"mode": "NAT",
|
||||
"ssids": [
|
||||
{"ssid_name": "ssid_psk_2g", "appliedRadios": ["2G"], "security_key": "something", "security": "psk"},
|
||||
{"ssid_name": "ssid_psk_5g", "appliedRadios": ["5G"], "security_key": "something", "security": "psk"}],
|
||||
"radius": False
|
||||
},
|
||||
|
||||
{
|
||||
"mode": "NAT",
|
||||
"ssids": [
|
||||
{"ssid_name": "ssid_psk2_2g", "appliedRadios": ["2G"], "security_key": "something", "security": "psk2"},
|
||||
{"ssid_name": "ssid_psk2_5g", "appliedRadios": ["5G"], "security_key": "something", "security": "psk2"}],
|
||||
"radius": False
|
||||
},
|
||||
|
||||
{
|
||||
"mode": "NAT",
|
||||
"ssids": [
|
||||
{"ssid_name": "ssid_sae_2g", "appliedRadios": ["2G"], "security_key": "something", "security": "sae"},
|
||||
{"ssid_name": "ssid_sae_5g", "appliedRadios": ["5G"], "security_key": "something", "security": "sae"}],
|
||||
"radius": False
|
||||
},
|
||||
|
||||
{
|
||||
"mode": "NAT",
|
||||
"ssids": [
|
||||
{"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"], "security_key": "something", "security": "none"},
|
||||
{"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"], "security_key": "something", "security": "none"}],
|
||||
"radius": False
|
||||
},
|
||||
|
||||
{
|
||||
"mode": "NAT",
|
||||
"ssids": [
|
||||
{"ssid_name": "ssid_wpa2_eap_2g", "appliedRadios": ["2G"], "security_key": "something", "security": "wpa2"},
|
||||
{"ssid_name": "ssid_wpa2_eap_5g", "appliedRadios": ["5G"], "security_key": "something",
|
||||
"security": "wpa2"}],
|
||||
"radius": True
|
||||
},
|
||||
|
||||
{
|
||||
"mode": "NAT",
|
||||
"ssids": [
|
||||
{"ssid_name": "ssid_wpa3_eap_2g", "appliedRadios": ["2G"], "security_key": "something", "security": "wpa3"},
|
||||
{"ssid_name": "ssid_wpa3_eap_5g", "appliedRadios": ["5G"], "security_key": "something",
|
||||
"security": "wpa3"}],
|
||||
"radius": True
|
||||
},
|
||||
|
||||
]
|
||||
|
||||
|
||||
@pytest.mark.ow_config_load_test
|
||||
@pytest.mark.ow_sdk_load_tests
|
||||
@allure.parent_suite("OpenWifi SDK E2E Tests")
|
||||
@allure.parent_suite("OpenWifi Gateway E2E Configuration Test")
|
||||
class TestBulkConfigTest(object):
|
||||
|
||||
@allure.sub_suite("Back to Back config Apply test on single AP")
|
||||
def test_config_apply_test(self, setup_controller, instantiate_profile, get_configuration, radius_info,
|
||||
radius_accounting_info):
|
||||
"""
|
||||
Test the system endpoints to verify list of services present
|
||||
WIFI-3449
|
||||
"""
|
||||
PASS = []
|
||||
SERIAL = get_configuration["access_point"][0]["serial"]
|
||||
for config in setup_params:
|
||||
profile_obj = instantiate_profile(sdk_client=setup_controller)
|
||||
profile_obj.set_mode(config["mode"])
|
||||
profile_obj.set_radio_config()
|
||||
radius = config["radius"]
|
||||
for ssid in config["ssids"]:
|
||||
if radius:
|
||||
profile_obj.add_ssid(ssid_data=ssid, radius=radius, radius_auth_data=radius_info,
|
||||
radius_accounting_data=radius_accounting_info)
|
||||
else:
|
||||
profile_obj.add_ssid(ssid_data=ssid)
|
||||
status = profile_obj.push_config(serial_number=SERIAL)
|
||||
if status.status_code != 200:
|
||||
allure.attach("Configure command Failed: ", SERIAL, " Time: " + str(datetime.utcnow()))
|
||||
print(status.status_code + ":\t" + status.json())
|
||||
allure.attach(name=status.status_code, body=status.json())
|
||||
print("Configure command success: ", SERIAL, " Time: " + str(datetime.utcnow()))
|
||||
PASS.append(False)
|
||||
if status.status_code == 200:
|
||||
print(status.status_code + ":\t" + status.json())
|
||||
allure.attach(name=status.status_code, body=status.json())
|
||||
allure.attach("Configure command success: ", SERIAL, " Time: " + str(datetime.utcnow()))
|
||||
print("Configure command success: ", SERIAL, " Time: " + str(datetime.utcnow()))
|
||||
PASS.append(True)
|
||||
print("Sleeping 30 Sec before Next Config")
|
||||
time.sleep(30)
|
||||
|
||||
assert False not in PASS
|
||||
@@ -52,7 +52,7 @@ class Fixtures_2x:
|
||||
if not run_lf:
|
||||
try:
|
||||
self.controller_obj = Controller(controller_data=self.lab_info["controller"])
|
||||
self.prov_controller_obj = ProvUtils(controller_data=self.lab_info["controller"])
|
||||
self.prov_controller_obj = ProvUtils(sdk_client=self.controller_obj)
|
||||
self.fw_client = FMSUtils(sdk_client=self.controller_obj)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
|
||||
Reference in New Issue
Block a user