From 5f4652d76b56e82fe12e85d4ef51ae4bebc88358 Mon Sep 17 00:00:00 2001 From: bhargavi-ct Date: Wed, 1 Oct 2025 13:15:34 +0530 Subject: [PATCH] Wifi 15117 (#1072) * Modify ASB Test Cases for Cybertan AP Models Signed-off-by: bhargavi-ct * Update script to handle output after remove restrictions Signed-off-by: bhargavi-ct --------- Signed-off-by: bhargavi-ct Co-authored-by: bhargavi-ct --- libs/tip_2x/ap_lib.py | 182 ++++++++++++++++-- .../ucentral_gateway/test_gatewayservice.py | 17 +- tests/test_connectivity.py | 3 +- 3 files changed, 177 insertions(+), 25 deletions(-) diff --git a/libs/tip_2x/ap_lib.py b/libs/tip_2x/ap_lib.py index 851aa03e8..2961dfcfa 100644 --- a/libs/tip_2x/ap_lib.py +++ b/libs/tip_2x/ap_lib.py @@ -617,13 +617,85 @@ class APLIBS: # Please wait 1min after doing factory reset return output - def remove_restrictions(self): - self.run_generic_command(cmd="rm /certificates/restrictions.json", - idx=0, print_log=True, - attach_allure=False) - self.run_generic_command(cmd="rm /etc/ucentral/restrictions.json", - idx=0, print_log=True, - attach_allure=False) + def remove_restrictions(self, ap_model): + if "sonicfi_rap" in ap_model: + logging.info(f"Yes it is cybertan AP:") + output = self.run_generic_command(cmd="cd /certificates && fw_setenv cert_part 0", + idx=0, print_log=True, + attach_allure=False) + logging.info(f"output of fw_setenv cert_part 0: {output}") + output = self.run_generic_command(cmd="rm -f /certificates/restrictions.json", + idx=0, print_log=True, + attach_allure=False) + logging.info(f"output of removing restrictions: {output}") + output = self.run_generic_command(cmd="fw_setenv store_certs_disabled 0", + idx=0, print_log=True, + attach_allure=False) + logging.info(f"output of fw_setenv store_certs_disabled 0: {output}") + output = self.run_generic_command(cmd="cd /certificates && store_certs", + idx=0, print_log=True, + attach_allure=False) + logging.info(f"output of store_certs: {output}") + + output = self.run_generic_command(cmd="cd /certificates && fw_setenv cert_part 1", + idx=0, print_log=True, + attach_allure=False) + logging.info(f"output of fw_setenv cert_part 0: {output}") + output = self.run_generic_command(cmd="rm -f /certificates/restrictions.json", + idx=0, print_log=True, + attach_allure=False) + logging.info(f"output of removing restrictions: {output}") + output = self.run_generic_command(cmd="fw_setenv store_certs_disabled 0", + idx=0, print_log=True, + attach_allure=False) + logging.info(f"output of fw_setenv store_certs_disabled 0: {output}") + output = self.run_generic_command(cmd="cd /certificates && store_certs", + idx=0, print_log=True, + attach_allure=False) + logging.info(f"output of store_certs: {output}") + + # Verify the restriction file is removed from both partitions + output = self.run_generic_command(cmd="cd /certificates && fw_setenv cert_part 0", + idx=0, print_log=True, + attach_allure=False) + logging.info(f"output of fw_setenv cert_part 0: {output}") + output = self.run_generic_command( + cmd='[ -f /certificates/restrictions.json ] && echo "True" || echo "False"', + idx=0, + print_log=True, + attach_allure=False, + expected_attachment_type=allure.attachment_type.TEXT) + logging.info(f"Check for restrictions file in partition 0: {output}") + result = output.strip().splitlines()[-1] + if result == "True": + logging.info("Unable to remove restrictions file from partition 0") + #pytest.fail("Unable to remove restrictions file from partition 0") + + output = self.run_generic_command(cmd="cd /certificates && fw_setenv cert_part 1", + idx=0, print_log=True, + attach_allure=False) + logging.info(f"output of fw_setenv cert_part 0: {output}") + output = self.run_generic_command( + cmd='[ -f /certificates/restrictions.json ] && echo "True" || echo "False"', + idx=0, + print_log=True, + attach_allure=False, + expected_attachment_type=allure.attachment_type.TEXT) + logging.info(f"Check for restrictions file in partition 1: {output}") + result = output.strip().splitlines()[-1] + if result == "True" : + logging.info("Unable to remove restrictions file from partition 1") + #pytest.fail("Unable to remove restrictions file from partition 1") + + else: + self.run_generic_command(cmd="rm /certificates/restrictions.json", + idx=0, print_log=True, + attach_allure=False) + self.run_generic_command(cmd="rm /etc/ucentral/restrictions.json", + idx=0, print_log=True, + attach_allure=False) + + self.factory_reset(print_log=False) time.sleep(120) output = self.run_generic_command(cmd='[ -f /etc/ucentral/restrictions.json ] && echo "True" || echo "False"', @@ -633,20 +705,92 @@ class APLIBS: expected_attachment_type=allure.attachment_type.TEXT) return output - def add_restrictions(self, restrictions_file, developer_mode): + def add_restrictions(self, restrictions_file, developer_mode, ap_model): self.factory_reset(print_log=False) time.sleep(200) - output = self.run_generic_command(cmd=developer_mode, - idx=0, - print_log=True, - attach_allure=False, - expected_attachment_type=allure.attachment_type.TEXT) - output = self.run_generic_command(cmd=restrictions_file, - idx=0, - print_log=True, - attach_allure=False, - expected_attachment_type=allure.attachment_type.TEXT, - restrictions=True) + + if "sonicfi_rap" in ap_model: + logging.info(f"Yes it is cybertan AP:") + restrictions_file = 'echo \"{\\"country\\":[\\"US\\", \\"CA\\"],\\"dfs\\": true,\\"rtty\\": true,\\"tty\\": ' \ + 'true,\\"developer\\": true,\\"sysupgrade\\": true,\\"commands\\": true,\\"key_info\\": {' \ + '\\"vendor\\": \\"dummy\\",\\"algo\\": \\"static\\"}}\" > /certificates/restrictions.json ' \ + '&& echo "Partition 0 done"' + restrictions_file1 = 'echo \"{\\"country\\":[\\"US\\", \\"CA\\"],\\"dfs\\": true,\\"rtty\\": true,\\"tty\\": ' \ + 'true,\\"developer\\": true,\\"sysupgrade\\": true,\\"commands\\": true,\\"key_info\\": {' \ + '\\"vendor\\": \\"dummy\\",\\"algo\\": \\"static\\"}}\" > /certificates/restrictions.json ' \ + '&& echo "Partition 1 done"' + output = self.run_generic_command(cmd=developer_mode, + idx=0, + print_log=True, + attach_allure=False, + expected_attachment_type=allure.attachment_type.TEXT) + logging.info(f"output of developer_mode::{output}") + output = self.run_generic_command(cmd="fw_setenv cert_part 0", + idx=0, + print_log=True, + attach_allure=False, + expected_attachment_type=allure.attachment_type.TEXT) + logging.info(f"output of fw_setenv cert_part 0::{output}") + output = self.run_generic_command(cmd=restrictions_file, + idx=0, + print_log=True, + attach_allure=False, + expected_attachment_type=allure.attachment_type.TEXT, + restrictions=True) + logging.info(f"output of adding restrictions_file::{output}") + output = self.run_generic_command(cmd="fw_setenv store_certs_disabled 0", + idx=0, + print_log=True, + attach_allure=False, + expected_attachment_type=allure.attachment_type.TEXT) + logging.info(f"output of fw_setenv store_certs_disabled 0::{output}") + cmd_output = self.run_generic_command(cmd="cd /certificates && store_certs", + idx=0, + print_log=True, + attach_allure=False, + expected_attachment_type=allure.attachment_type.TEXT, + restrictions=True) + logging.info(f"output of store_certs::{cmd_output}") + output = self.run_generic_command(cmd="fw_setenv cert_part 1", + idx=0, + print_log=True, + attach_allure=False, + expected_attachment_type=allure.attachment_type.TEXT) + logging.info(f"output of fw_setenv cert_part 1::{output}") + output = self.run_generic_command(cmd=restrictions_file1, + idx=0, + print_log=True, + attach_allure=False, + expected_attachment_type=allure.attachment_type.TEXT, + restrictions=True) + logging.info(f"output of adding restrictions_file1::{output}") + cmd_output = self.run_generic_command(cmd="fw_setenv store_certs_disabled 0", + idx=0, + print_log=True, + attach_allure=False, + expected_attachment_type=allure.attachment_type.TEXT) + logging.info(f"output of fw_setenv store_certs_disabled 0::{cmd_output}") + cmd_output = self.run_generic_command(cmd="cd /certificates && store_certs", + idx=0, + print_log=True, + attach_allure=False, + expected_attachment_type=allure.attachment_type.TEXT, + restrictions=True) + logging.info(f"output of store_certs::{cmd_output}") + + else: + output = self.run_generic_command(cmd=developer_mode, + idx=0, + print_log=True, + attach_allure=False, + expected_attachment_type=allure.attachment_type.TEXT) + output = self.run_generic_command(cmd=restrictions_file, + idx=0, + print_log=True, + attach_allure=False, + expected_attachment_type=allure.attachment_type.TEXT, + restrictions=True) + self.factory_reset(print_log=False) time.sleep(300) return output diff --git a/tests/controller_tests/ucentral_gateway/test_gatewayservice.py b/tests/controller_tests/ucentral_gateway/test_gatewayservice.py index 578b0cfc4..d0c94da49 100644 --- a/tests/controller_tests/ucentral_gateway/test_gatewayservice.py +++ b/tests/controller_tests/ucentral_gateway/test_gatewayservice.py @@ -1041,6 +1041,7 @@ class TestUcentralGatewayService(object): @pytest.mark.asb_tests def test_asb_on_non_restricted_ap(self, get_target_object, get_testbed_details): device_name = get_testbed_details['device_under_tests'][0]['identifier'] + ap_model = get_testbed_details['device_under_tests'][0]['model'] payload = { "serialNumber": device_name, "timeout": 30, @@ -1060,7 +1061,7 @@ class TestUcentralGatewayService(object): assert resp.status_code == 200 else: logging.info("AP is restricted, Removing Restrictions") - output = get_target_object.get_dut_library_object().remove_restrictions() + output = get_target_object.get_dut_library_object().remove_restrictions(ap_model=ap_model) resp = resp = get_target_object.controller_library_object.check_restrictions(device_name) if not resp: logging.info("Removed Restrictions") @@ -1078,6 +1079,7 @@ class TestUcentralGatewayService(object): @pytest.mark.asb_tests def test_asb_on_restricted_ap(self, get_target_object, get_testbed_details): device_name = get_testbed_details['device_under_tests'][0]['identifier'] + ap_model = get_testbed_details['device_under_tests'][0]['model'] payload = { "serialNumber": device_name, "timeout": 30, @@ -1094,18 +1096,23 @@ class TestUcentralGatewayService(object): '\\"vendor\\": \\"dummy\\",\\"algo\\": \\"static\\"}}\" > /certificates/restrictions.json ' \ '&& echo \"True\"' developer_mode = "fw_setenv developer 0" + + output = get_target_object.get_dut_library_object().add_restrictions(restrictions_file=restrictions_file, - developer_mode=developer_mode) - resp = resp = get_target_object.controller_library_object.check_restrictions(device_name) + developer_mode=developer_mode, ap_model=ap_model) + logging.info(f"output of adding restrictions:{output}") + resp = get_target_object.controller_library_object.check_restrictions(device_name) + logging.info(f"response of check_restrictions:{resp} ") if resp: logging.info("From GW it's confirmed that AP is restricted now") uuid = get_target_object.controller_library_object.asb_script(device_name, payload) resp = get_target_object.controller_library_object.get_file(device_name, uuid) assert resp.status_code == 200 else: + logging.info("Unable to add restrictions to the AP") assert False - output = get_target_object.get_dut_library_object().remove_restrictions() - resp = resp = get_target_object.controller_library_object.check_restrictions(device_name) + output = get_target_object.get_dut_library_object().remove_restrictions(ap_model=ap_model) + resp = get_target_object.controller_library_object.check_restrictions(device_name) if resp: logging.info("Unable to remove restrictions in the AP") assert False diff --git a/tests/test_connectivity.py b/tests/test_connectivity.py index c74f97372..e8c972d70 100644 --- a/tests/test_connectivity.py +++ b/tests/test_connectivity.py @@ -275,13 +275,14 @@ class TestResources(object): @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-12318", name="12318") def test_check_restrictions(self, get_target_object, get_testbed_details): device_name = get_testbed_details['device_under_tests'][0]['identifier'] + ap_model = get_testbed_details['device_under_tests'][0]['model'] resp = resp = get_target_object.controller_library_object.check_restrictions(device_name) if not resp: logging.info("AP is not restricted") assert True, "AP is not in restricted mode we can continue testing" else: logging.info("AP is restricted, Removing Restrictions") - output = get_target_object.get_dut_library_object().remove_restrictions() + output = get_target_object.get_dut_library_object().remove_restrictions(ap_model=ap_model) resp = resp = get_target_object.controller_library_object.check_restrictions(device_name) if not resp: logging.info("Removed Restrictions")